この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

配置された点どうしを線で結ぶリスプ
よろしくお願いいたします。
auto cad 2025 を使用しています。仕事柄、点を結ぶ作業があります。点の配列に規則性はありません。点を全体選択して、上下と左右の点間を線で結べるようなリスプ又は
macroの作成をお願いします。
  • sot
  • 2025/05/16 (Fri) 15:38:49
Re: 配置された点どうしを線で結ぶリスプ
[点を全体選択して]は複雑な処理が必要です。
条件によってはAIに学習させなければ出来ないレベル。

  • さかな
  • 2025/05/17 (Sat) 06:15:06
Re: 配置された点どうしを線で結ぶリスプ
さかな様
ご連絡ありがとうございます。
提示いただいた方法でのリスプ作成が可能でしたら、ぜひお願いいたします。
よろしくお願いいたします。
  • sot
  • 2025/05/17 (Sat) 20:44:40
Re: 配置された点どうしを線で結ぶリスプ
lispを起動したら、前回投稿画像の「1回目選択」「2回目選択」で縦方向の線が書かれます。
もう一度lispを起動して、「3回目選択」をするのですが、一旦何も選択せずにEntarを押してください。
すると、線の方向設定が横方向に切り替わりますので、
改めて、「3回目選択」「4回目選択」で横方向の線が書かれます。

(defun C:CONNECT_POINTS ( / T_nil sort_option LIST_A LIST_B num_lines)
(vl-load-com)

(defun GET_SORTED_POINTS (ss sort_option / i ent pt point_list)
(setq i 0)
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq pt (cdr (assoc 10 (entget ent))))
(setq point_list (cons pt point_list))
(setq i (1+ i))
)
(if (= sort_option "X")
(setq point_list (vl-sort point_list '(lambda (p1 p2) (< (car p1) (car p2)))))
(setq point_list (vl-sort point_list '(lambda (p1 p2) (< (cadr p1) (cadr p2)))))
)
point_list
)

(setq T_nil T)
(setq sort_option "X")
(while T_nil
(alert (strcat "1グループ目の点を選択してください\n※現在の方向設定=[" (if (eq sort_option "X") "縦線" "横線") "]\n (OKを押した後、Enterで方向変更)"))
(setq ss (ssget '((0 . "POINT"))))
(if ss
(setq T_nil nil)
(if (eq sort_option "X") (setq sort_option "Y") (setq sort_option "X"))
)
)

(setq LIST_A (GET_SORTED_POINTS ss sort_option))

(setq T_nil T)
(while T_nil
(alert "2グループ目の点を選択してください")
(setq ss (ssget '((0 . "POINT"))))
(if ss (setq T_nil nil))
)

(setq LIST_B (GET_SORTED_POINTS ss sort_option))

(setq num_lines (min (length LIST_A) (length LIST_B)))
(setq i 0)
(command "undo" "be")
(repeat num_lines
(command "line" "non" (nth i LIST_A) "non" (nth i LIST_B) "")
(setq i (1+ i))
)
(command "undo" "e")
(princ)
)

  • さかな
  • 2025/05/18 (Sun) 07:50:32
Re: 配置された点どうしを線で結ぶリスプ
さかな様
意図したとおりに動作いたしました。大変お世話をおかけし、ありがとうございました。
  • sot
  • 2025/05/19 (Mon) 06:45:15

返信フォーム






プレビュー (投稿前に内容を確認)