
AUTOCAD中的 lisp命令修改,是关于自动识别图框比例的一个lisp文件,加载后,发现 识别的比例太小!怎么改
;;"DIMS"将当前"DIMSCALE"值设定为所选图框比例(defunc:L209(/ss)(setvar"cmdecho"0)(setqss(entsel"\n请选...
;; "DIMS" 将当前"DIMSCALE"值设定为所选图框比例
(defun c:L209(/ ss)
(setvar "cmdecho" 0)
(setq ss (entsel"\n请选取对应图框:"))
(if (= ss nil)
(progn(setq laynew (getvar "clayer"))(setq sc1 (getvar "dimscale")))
(progn
(setq en (entget (car SS)))
(if(or (= (cdr (assoc 2 en)) "A3") (= (cdr (assoc 2 en)) "A4"))
(setq sc1 (cdr (assoc 41 en)) lay (cdr (assoc 8 en)))
)
(setq lay1 (substr lay 1 2))
(if (= lay "FORM")(setq laynew "dim")(setq laynew (strcat lay1 "dim")))
)
)
(setvar "clayer" laynew)
(setvar "dimscale" sc1)
) 展开
(defun c:L209(/ ss)
(setvar "cmdecho" 0)
(setq ss (entsel"\n请选取对应图框:"))
(if (= ss nil)
(progn(setq laynew (getvar "clayer"))(setq sc1 (getvar "dimscale")))
(progn
(setq en (entget (car SS)))
(if(or (= (cdr (assoc 2 en)) "A3") (= (cdr (assoc 2 en)) "A4"))
(setq sc1 (cdr (assoc 41 en)) lay (cdr (assoc 8 en)))
)
(setq lay1 (substr lay 1 2))
(if (= lay "FORM")(setq laynew "dim")(setq laynew (strcat lay1 "dim")))
)
)
(setvar "clayer" laynew)
(setvar "dimscale" sc1)
) 展开
3个回答
展开全部
我个人的体会,程序不要写得太复杂。尽可能简化一些。
比如上面这个例子。
如果只是要更改某些对象的线型比例,可以在创建那些对象之前,加一句代码,设置相应的线型比例。创建完成后,马上改回来。就可以了。我平常就是这样做的。
另外,读了上面的程序,entsel读取的是一个单一对象的值,楼主提供的程序里,好像是选择了一个块吧?
比如上面这个例子。
如果只是要更改某些对象的线型比例,可以在创建那些对象之前,加一句代码,设置相应的线型比例。创建完成后,马上改回来。就可以了。我平常就是这样做的。
另外,读了上面的程序,entsel读取的是一个单一对象的值,楼主提供的程序里,好像是选择了一个块吧?
更多追问追答
追问
是啊, 插入的图框 是一个块, 并且 要有固定的成 我放在FORM层下!
追答
能说说你到底想要什么样的结果吗?
展开全部
这个lisp不是一个独立的程序,它还要和别的图框文件同时使用才行的,而那个图框文伯已经定义好了标注的比例,这个lisp只是把对应的图框比例设为当前标注样式而已
追问
哦 您的意思是 我只要调整图框比例就可以了吗? 真是那样的话 就太感谢了!~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
autocad加载lisp文件后,命令行输入的并不是文件名,而是文件里(defun c:***())语句“c: ”后的文字!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |