こんな感じでしょうか。
(defun c:ptcd ( / ss ent sscnt cnt pt_cnt pt_list o_list)
(prompt "\nポリラインを選択:")
(setq ss (ssget '((0 . "*POLYLINE"))))
(setq cnt 0)
(setq pt_list "")
(setq sscnt (sslength ss))
(repeat sscnt
(setq ent (entget (ssname ss cnt)))
(setq pt_cnt (cdr (assoc 90 ent))) ;頂点数カウント
(repeat pt_cnt
(setq o_list (trans (cdr (assoc 10 ent)) 0 1)) ;頂点のリスト
(setq pt_list (strcat pt_list "\n" "X= " (rtos (car o_list)) " ,Y= " (rtos (cadr o_list)) " ,Z= " (rtos (caddr o_list))));テキスト化
(setq ent (cdr (member (assoc 10 ent) ent)))
)
(setq cnt (+ 1 cnt))
(setq pt_list (strcat pt_list "\n"))
)
;クリップボードにコピー
(vl-load-com)
(setq html (vlax-create-object "htmlfile"))
(vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" pt_list)
(vlax-release-object html)|;
)
- LUNE
- 2024/04/12 (Fri) 16:43:41