Lisp 在闭合多段线上绘制多边形

Lisp 在闭合多段线上绘制多边形,lisp,autocad,autolisp,Lisp,Autocad,Autolisp,我试图用我拙劣的英语技巧来描述这个问题: 我的dwg文件中有闭合块,这些块由许多连接在一起的多段线组成,但它们不是一体(集成),我只需要一个lisp在该块上绘制多边形并创建一体块。有办法吗? thnx假设: 当你说“连接”时,你的意思是他们的末端相触 当你说“uni body”时,实际上是指AutoCAD意义上的“joined” 然后尝试以下操作: (defun convert_block_to_polyline (block / old_entlast new_entlast curr p

我试图用我拙劣的英语技巧来描述这个问题:
我的dwg文件中有闭合块,这些块由许多连接在一起的多段线组成,但它们不是一体(集成),我只需要一个lisp在该块上绘制多边形并创建一体块。有办法吗? thnx

假设:

  • 当你说“连接”时,你的意思是他们的末端相触
  • 当你说“uni body”时,实际上是指AutoCAD意义上的“joined”
然后尝试以下操作:

(defun convert_block_to_polyline (block / old_entlast new_entlast curr polylines_set)
  (setq old_entlast (entlast))
  (command "explode" block)
  (setq new_entlast (entlast))
  (setq
    curr (entnext old_entlast)
    polylines_set (ssadd)
    )
  (while (entnext curr)
    (ssadd curr polylines_set)
    (setq curr (entnext curr))
    )
  (command "join" (entlast) polylines_set "")
  (princ)
)
此函数假定:

  • 您不想保留原始块,如果这样做,那么在分解之前创建一个副本,然后将其粘贴到同一位置就是一个简单的问题
  • 块仅由可包含在“连接”命令中的对象(直线、多段线等)组成