1

私はこの問題を謙虚な英語のスキルでうまく説明しようとしています:
dwgファイルにブロックを閉じました。これらのブロックは結合された多くのポリラインで構成されていますが、ユニボディ(統合)ではありません。必要なのはLispだけです。このブロック上にポリゴンを描画し、ユニボディブロックを作成します。回避策はありますか?thnx

4

1 に答える 1

3

仮定して:

  • あなたが「参加した」と言うとき、あなたは彼らの終わりが触れていることを意味します、
  • 「ユニボディ」とは、実際には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)
)

この関数は次のことを前提としています。

  • 元のブロックを保持する必要はありません。保持する場合は、展開する前にコピーを作成し、後で同じ場所に貼り付けるという簡単な質問です。
  • ブロックは、結合コマンドに含めることができるオブジェクト(ライン、ポリラインなど)のみで構成されています。
于 2011-09-13T13:01:53.300 に答える