нарисовать многоугольник над замкнутыми полилиниями - PullRequest
1 голос
/ 11 сентября 2011

Я стараюсь хорошо описать эту проблему с моими скромными навыками английского:
у меня есть закрытые блоки в моем файле DWG, эти блоки состоят из множества полилиний, которые объединены, но они не являются едиными (интегрированными), все, что я хочу, - это шрифт, чтобы нарисовать многоугольник над этим блоком и создать единое тело блок. есть ли способ обойти? Thnx

1 Ответ

3 голосов
/ 13 сентября 2011

Предполагая, что:

  • когда вы говорите "присоединился", вы имеете в виду, что их концы соприкасаются,
  • когда вы говорите «единое тело», вы на самом деле имеете в виду «присоединенный» в смысле 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)
)

Эта функция предполагает:

  • Вы не хотите сохранять исходный блок, если вы делаете это, то это простой вопрос создания копии до ее разнесения и последующей вставки в то же место.
  • Блок состоит исключительно из объектов, которые могут быть включены в команду соединения (линии, полилинии и т. Д.)
...