autocad2007的copy自身就是多次拷贝,就是你不用输入m就是多次拷贝,但在二次开发中一定要用m
下面的lisp程序是用于拷贝
(defun c:ccp1 ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" p1 )
(while (setq p2 (getpoint))
(command p2)
)
)
在上面的程序中应没输入"m"虽然copy在命令下是多次拷贝的在程序中给它了多次拷贝的条件,但只能拷贝一次。
(defun c:ccp ()
(prompt "选择要拷贝的目标:")
(setq en (ssget))
(prompt "输入基点:")
(setq p1 (getpoint))
(command "copy" en "" "m" p1 )
(while (setq p2 (getpoint))
(command p2)
)
(command "")
)
在程序ccp中在输入p1前加了"m" (command "copy" en "" "m" p1 )它就是多次拷贝
下面是一个循环只要p2有值它就要去拷贝,当你在(setq p2 (getpoint))输入回车,这时p2是空值,程序就退出。
依次选中封闭图形,用命令:list查询
网上有面积标注插件,可以下载
或者将下面的lisp代码复制到记事本里,保存为:面积标注lsp
在cad里加载后,用car运行插件
(defun c:car ( / o1 ipt opp parea)
(setq clyer(getvar"clayer"))
(command "layer" "m" "范围线" "")
(command "layer" "c" "2" "范围线" "")
(command "color" "bylayer")
(setq ipt (getpoint "\n 选择内部点: "))
(command "-Boundary" ipt"" "")
(setq o1 (entlast))
(redraw o1 3)
(command "area" "O" "L")
(setq opp (getvar "area"))
(initget 1)
(setq parea(getpoint"\n 选择面积标注位置"))
(command "layer" "m" "area text" "")
(command "layer" "c" "81" "area text" "")
(command "color" "bylayer")
(initget 1)
(command "text" parea "1"0 (rtos opp 2 3)) "这个三是位数"
(setq elast(entlast))
(command "scale" elast"" parea)
(setvar"clayer"clyer)
)
我这里有一个程序,可以解决你的问题,只要把需要替换的所有DWG文件放入某一个文件夹里边,然后执行程序这个小程序,设置一下替换的关键字,它就会自动替换所有的文件了,你可以把文件发过来,我帮你做好后发回去
以上就是关于CAD LISP 小程序 求高手!全部的内容,包括:CAD LISP 小程序 求高手!、如何快速查询CAD多个封闭图形的面积,可以标注面积吗不是用AA命令!!!有小程序吗、CAD中批量替换多个DWG文件属性块里面的文字有什么插件或者方法可以搞定的吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)