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

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

クリップボードのテキストを1行ずつ書き込みたい LISPで
テキストで
---------------
あああああ
abc
1234
---------------
をコピー(クリップボード格納)したものを図面上の
選択座標にTEXTで「あああああ」
選択座標から(Y座標-指定値)の位置に「abc」
さらに直前の座標から(Y座標-指定値)の位置にに「1234」
のように書き込みたい。
元のテキストの行数は変動あり。
"指定値"は 文字高×1.2 のように考えています。

このようなLISPコードを作って頂けないでしょうか。
  • Lispかじり
  • 2024/11/26 (Tue) 22:45:52
Re: クリップボードのテキストを1行ずつ書き込みたい LISPで
こんなんじゃない! かもですが、

(defun C:test ( / pt pt1 ent th tt)
(if (not (setq th (getreal "\n文字高さ:"))) (setq th 2.5))
(if (setq pt (getpoint))
(progn
(command "pasteclip" "non" pt)
(setq ent (entget (entlast)))
(if (= (cdr (assoc 0 ent)) "MTEXT")
(progn
(setq ent (subst (cons 40 th) (assoc 40 ent) ent))
(setq pt1 (list (car pt) (+ (cadr pt) th) (caddr pt)))
(setq ent (subst (cons 10 pt1) (assoc 10 ent) ent))
(setq tt (* 1.2 0.6))
(setq ent (subst (cons 44 tt) (assoc 44 ent) ent))
(entmod ent)
)
)
)
)
(princ)
)
  • 通りすがりの人
  • 2024/11/27 (Wed) 16:21:11

返信フォーム






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