作为一只熟练的画图狗,在安装完CAD后,第一件事必须是工具-自定义-编辑程序参数(acad.pgp),修改自己熟悉的快捷命令,然后保存重启CAD,开始愉快地画图……
acad.pgp文件
定义外部命令
除了设置CAD自带命令的快捷命令外,acad.pgp还有一个相对不为人知的功能,就是定义外部命令(External Commands)。外部命令可以调用其他应用程序,例如Windows系统命令、打开应用程序等,定义的具体方法如下所示:
command,[executable/shell request],bit flag[,[*]prompt[,return_code]]
command——即要在CAD中定义的快捷命令名;
executable/shell request——输入命令名时发送到操作系统的字符串(这个字符串其实就是要执行的外部命令,可以在cmd中先尝试是否可行)
bit flag——所需的位码参数。按任意组合相加这些整数值以得到所需结果:
bit flag |
结果 |
0 |
启动应用程序并等待结束 |
1 |
不等待应用程序结束 |
2 |
以最小化模式运行应用程序 |
4 |
“隐藏”地运行应用程序 |
8 |
将参数字符串括在引号中 |
prompt——可选参数,它指定在程序的命令提示下显示的提示。
return_code——可选参数,暂时可以忽略。
操作实例
比如说打开Excel记录些数据,acad.pgp文件中添加一行:
EXCEL, start "" "C:Program FilesMicrosoft OfficerootOffice16EXCEL.EXE", 1
在CAD命令行中输入“EXCEL”就好了:
比如说刷个知乎摸个鱼:
ZHIHU, explorer "https://www.zhihu.com", 1
同样的,输入”ZHIHU“
再比如说关机下班:
SHUTDOWN, shutdown /s /t 0,1
当然还可以是其他命令,大家可以尝试一下~
CAD中运行Python
Python由于简单易学加上能很方便的在程序间传递数据,本身就很适合用来二次开发,可惜AutoCAD官方不支持。网上有不少关于Python二次开发AutoCAD的资料,但基本上都是从外部调用CAD的,也就是每次都要在CAD外面跑一遍脚本才可以运行,无法像AutoLisp、VB、C#等一样直接在CAD中通过快捷命令运行。借助上文介绍的方法,可以”假装“实现在CAD中运行Python。
1.以在CAD中选择两个点画直线为例,我们可以建立一个pyline.py文件,代码如下所示:
from pyautocad import Autocad, APoint
def pyline():
acad = Autocad(create_if_not_exists=False)
try:
p1 = acad.doc.Utility.getpoint(APoint(0, 0), "PyLine:请输入第一个点")
p2 = acad.doc.Utility.getpoint(APoint(p1), "PyLine:请输入第二个点")
acad.model.addline(APoint(p1), APoint(p2))
except:
print("Error")
if __name__ == "__main__":
pyline()
2.由于直接运行pyline.py文件,会有黑框弹出,将原pyline.py文件重命名为pyline.pyw。
3.在acad.pgp文件中添加一行:
PYL, start "" "C:...pyline.pyw", 4
其中PYL代表AutoCAD中的快捷命令;C:…pyline.pyw为具体路径,最后一个参数要填4或者5,否则仍然会有黑框产生。
4.在AutoCAD命令行中输入PYL,就可以绘制直线啦!
当然,这种方法本质上还是Python从外部调用CAD,所以电脑上必须得安装有Python以及相应的包才行。
我们非解构一直关注建筑艺术与结构技术的有机融合。我们在做好设计的同时,一直关注数字化、智能化等前沿技术在建筑设计行业中的运用,这些年一直在坚持探索和实践。
非常欢迎优秀的你来加入我们,一起来跨界,做一名推动行业发展的斜杠青年。
这几年,对参数化设计感兴趣的朋友越来越多,我们的参数化设计交流群也已经发展到了5群,欢迎更多的朋友加入,相互交流学习。
添加我们“转自:非解构-公众号”微信,
加入参数化设计交流群。
不了解我们的可以来补课了