使用Divide com的点
如何将通过DIVIDE命令获得的实体的第一个、最后一个和所有其他点放入列表中? AutoCAD 2000之前的版本?我们谈得怎么样?第一个猜测。。。。。数据提取命令。许多选项可用。可以输出为两种或更多文件格式,具体取决于所使用的AutoCAD版本。
第二猜测。。。。。LIST命令。使用此选项将为您提供每个点的X、Y和Z坐标。复制/粘贴文本窗口(F2)中显示的信息。
>>>>>>>>>>>>>>>
第一个答案:我不知道如何更好地解释它,我问如何形成一个包含点列表的变量。
第二个答案:没有办法使用复制/粘贴到数百个点。
额外的回答:AutoCad是R14,但我认为它对AutoLisp没有任何影响(在这种特定情况下)。谢谢你的帮助。
>>>>>>>>>>>>>>> 我想我错过了你问“如何形成变量”的部分。也许你应该先在AutoLISP论坛上发布。这是学生问题论坛(帮助完成家庭作业和作业)。
现在,您需要一个lisp例程来提取点信息。是这样吗?你在寻找什么确切的信息?
在这里可以找到一个可能的解决方案。。。http://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/extract-point-data-calling-all-lisp-gurus/td-p/885377
另一个可能的解决方案可以在这里找到。。。http://www.cadtutor.net/forum/showthread.php?9628-导出点
我相信,如果您尝试的话,您可以找到其他自定义lisp例程来完成相同的任务。 听起来这是一个Lisp程序的问题。我相信Cunha希望使用AutoLISP从使用Divide的点创建一个列表。此线程可能需要移动到适当的论坛。我会标记它,这样海报可以得到帮助。 我认为ReMark的链接应该会有所帮助,但如果需要进一步的帮助,我已经将这个问题转移到AutoLisp部分:http://www.cadtutor.net/forum/forumdisplay.php?21-AutoLISP Visual LISP amp DCL 在调用DIVIDE之前,首先记录最后一个实体(包括顺序):
(defun c:div (/ le ss pl)
;;;RECORD THE LAST ENTITY
(setq le (entlast))
(while (entnext le)
(setq le (entnext le)))
;Then DIVIDE
(setvar "CMDECHO" 1)
(command "_.DIVIDE")
(while (> (getvar "CMDACTIVE") 0)
(command pause))
;;;Gather the POINT or INSERT Entities created by DIVIDE
(if (setq le (entnext le))
(progn
(setq pl nil
ss (ssadd))
(while le
(setq pl (cons (cdr (assoc 10 (entget le))) pl))
(ssadd le ss)
(setq le (entnext le)))
(setq pl (reverse pl))))
;;;PICKSET ss ( to ERASE or whatever )
;;;POINT LIST pl
(prin1 pl))
因为DIVIDE创建点实体,pl中的所有列表都是WCS。不包括错误陷阱-大卫 另一种方法是使用lisp创建点,而不是以这种方式分割。您可以一次创建一个对象,包括一条线。比较接近的代码是“沿pline的链测长度”,您必须修改它以创建点或只是制作点列表。在此处搜索。
大卫;错误:错误的参数类型:lentyp nil? 谢谢BigAl,修复! Nice david可以使用它制作一个对象列表,比如在多次偏移期间。
页:
[1]
2