Quicker与CAD/3DMAX/SU之间的交互终于打通啦

经验创意 · 91 次浏览
冰雷木子 创建于 6小时9分钟前

 

🌐Quicker与CAD/3DMAX/SU交互

📊项目背景

在日常工作中,需要频繁运行CAD、SketchUp、3ds Max等设计软件。使用Quicker进行自动化操作时发现以下问题:

Quicker自带的CAD模块在多开CAD进程时会出现冲突,无法向前台CAD发送命令,只能依赖发送文字或模拟输入

3ds Max缺乏类似的专用模块, 之前开发的强制鼠标点击迷你侦听器方案不够稳定和易用

1 📝 第一稿方案

考虑使用Quicker在指定位置不断生成TXT文件,由CAD/SU/3ds Max程序不断读取该TXT文件实现指令输入效果。

2 🚀 最终优化方案

CAD/SU/3dsMax 在启动时,通过加载各自的 脚本解释器插件(Lisp/Ruby/Python),实例化了一个 UDP Socket 服务端,并绑定到特定的不同本地端口(如 19251)。Quicker 作为 UDP 客户端,通过C#将用户指令封装为 字节流 数据包。利用 UDP 协议的无连接特性,Quicker 直接向 Localhost (127.0.0.1) 的目标端口发送数据报文,实现毫秒级的指令投递,无需建立握手连接。3D 软件端的监听器接收到报文后,进行 解码,随后调用宿主语言的 运行时反射机制(如 Ruby 的 eval()、Python 的 exec()),将字符串指令实时转化为内存中的可执行操作,驱动宿主程序的 API 做出响应。

⚙️动作指路

1 📡 动作地址

2 🔄使用方法

各链接下均有详细介绍,目前想法是把这几个动作作为一个桥梁,在quicker用不同的参数传参到这些动作运行不同的功能。
在处理很复杂的插件的时候,子程序中也有不传参运行的办法,后续会更新哈。

💻其他软件

感兴趣的小伙伴可以自己动手试试其他软件,我大致问了下,应该也是支持的,比如桌子家的其他软件和SolidWorks等。

冰雷木子 最后更新于 2025/12/25

回复内容
CL 5小时41分钟前
#1

很棒的方案!
我之前也考虑过类似的方式,不过都没时间开始学习这方面的知识😂

冰雷木子 回复 CL 4小时28分钟前 :

是的,我尝试问了一下,应该其他大部分的软件都可以类似这样操作,内置一个自启动插件就行

回复主贴