在闭合折线上绘制多边形

时间:2011-09-11 07:53:50

标签: lisp autocad autolisp

我试着用我谦逊的英语技巧来描述这个问题:
我在我的dwg文件上关闭了块,这些块由许多连接在一起的折线组成,但它们不是单体(集成),我想要的只是一个lisp在这个块上绘制一个多边形并创建一个单体块。有什么办法吗? 日Thnx

1 个答案:

答案 0 :(得分:3)

假设:

  • 当你说“加入”时,你的意思是他们的目的正在接触,
  • 当你说“uni-body”时,你实际上是指在AutoCAD意义上“加入”,

然后尝试以下方法:

(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)
)

此功能假定:

  • 你不想保留原始的块,如果你这么做就是一个简单的问题,即在你爆炸之前创建一个副本,然后将它粘贴在同一个地方。
  • 该块仅由可包含在连接命令中的对象组成(线,折线等)。