去年刚开始参加工作时,结合公司的现状,自己写了一段AutoLisp程序。功能很简单,适用环境可能不广,但是对我来说已经很够用了,所以部门的很多同事经过我的介绍后也都在使用。以后有空可能会将代码写得更强壮一点。
问题情景描述:从proe中将3D导出为dwg的工程图格式,然后到AutoCAD的模型空间进行1:1的等比例标注。根据实物的尺寸不同,相应的标注比例、默认的文字大小、全局线性比例等都要进行调整,每次都进行手工调整岂不是很麻烦?
解决办法:可以根据与导出模型大小搭配的图框的缩放比例来自动调整相关参数。比如,我的3D实物比较大,那导出的工程图尺寸也会比较大,相对应的公司图框也会比较大。那么,根据图框的放大比例,通过lisp语言来实现自动调整相关参数。
使用条件:
1、图框是块,不允许炸开;
2、图框X方向与Y方向的放大缩小比例一样;
(defun c:gyr () ;定义全局函数gyr
(setvar "cmdecho" 0)
(if (setq ss (ssget "X" '((0 . "INSERT") (2 . "guyiren_company"))))
;将guyiren_company替换为相应的图框名字
(progn
(setq ent (entget (ssname ss 0))
sx (cdr (assoc 41 ent)) ;x方向比例大小为sx
;sy (cdr (assoc 42 ent)) ;y方向比例大小为sy