Lisp复制
嘿,我想写一些像这样的东西:复制图层WA1上的多段线
(右侧15000份)
然后添加以选择复制的对象(最好作为列表)
每次复制后都会变换区域。
我试着用“ssget”X做点什么,但不知怎么的,这并没有成功
帮助:) 15000份副本,无疑可能会使Autocad程序崩溃。 15000份肯定很多。这些是闭合多段线吗?我问你是因为你提到要改造它们(15000份?)进入区域。
你在画什么?你能举一个例子来说明你想从什么开始,以及你想让成品看起来像什么吗?每个示例一个就足够了。谢谢 可能写得不好。
这是向15000个单元的右移
(setq en(ssget“_x”)
(列表
(cons 0“LW多段线”)
(cons 8(strcat“WARSTWA1”“*”))
)
)
(命令“.u copy“en”“m”“0,0,0”“50000,0,0”“E”) 15000件?公制还是英制?
移动中的移动?看起来您使用的是“复制”命令,而不是“移动”命令。
对不起,我还是没听懂。
那么使用区域呢?这从哪里来? 可能是这样的。。。。
(setq ss (ssget "_x" '((0 . "LWPOLYLINE")(cons 8 (strcat "XXX" "*")))))
(command "_.copy" ss "" '(0. 0. 0.) (polar '(0. 0. 0.) 0.0 15000.))
语言问题:)
是的,我想这样做:
我强调xxx层上的所有多段线。
我有一个变量列表(选定的多段线)。
每个元素的副本右侧15000 mm。
复制的项变换区域并添加到列表(变量)。
此列表中的每个项目都按顺序垂直于模型拉伸(挤出)(solid 3d)500 mm 这
(defun c:test ( / doc spc ss n r ) (vl-load-com)
;; Example by Lee Mac 2010www.lee-mac.com
(setq spc
(vlax-get-property (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(if (= 1 (getvar 'CVPORT)) 'PaperSpace 'ModelSpace)
)
)
(if (ssget "_X" '((0 . "LWPOLYLINE") (8 . "XXX*")))
(progn
(vlax-for o (setq ss (vla-get-ActiveSelectionSet doc))
(vla-move (setq n (vla-copy o))
(vlax-3D-point '(0. 0. 0.)) (vlax-3D-point '(15000. 0. 0.))
)
(vla-put-closed n :vlax-true)
(vla-AddExtrudedSolid spc (car (setq r (vlax-invoke spc 'AddRegion (list n)))) 500. 0.)
(vla-delete n)
(mapcar 'vla-delete r)
)
(vla-delete ss)
)
(princ "\n** No LWPolylines Found **")
)
(princ)
) 谢谢,就这样。这里有很多,“vla”。您必须进行一点培训才能理解代码。非常感谢你。也许还有一个问题:
什么命令可以添加或剪切三维实体 添加到已创建形状的列表中。
我的意思是以后可以诉诸变量的某个地方。
例如,对象X旋转90度
成立后该地区如何搬迁
页:
[1]
2