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

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

属性取得して作図
2018Rです。
選択したオブジェクト画層を現在層に指定の
画層だけでなく l
プロパティコピーと同じ属性取得もできるように
出来ますでしょうか。l


  • チアキ
  • 2021/11/08 (Mon) 12:47:52
Re: 属性取得して作図
マクロでは出来ないと思います。

LISPならできます。

LISPを作るのが面倒なので、他のサイトから見つけてきました。
https://studio-jo.net/cad/tools/Jo_var_ch.htm
ちょっと古いけど動くかな?

上のサイトでダウンロードできるファイルは、「.fas」って拡張子ですけど、
LISPファイルと同じ要領で読み込んで使用できると思います。

このファイルが動かない場合は、別の場所で探してみましょう。
同じ様なプログラムがアッチコッチで公開されてるんじゃないですかね?
  • Lon
  • 2021/11/08 (Mon) 13:25:38
Re: Re: 属性取得して作図
Lon様
バッチリ動きました!
fasというのもあるんですね。
奥が深すぎます。
手数が少なく作図出来るようになりました。
ありがとうございます。
今後とも宜しくお願い致します。
  • チアキ
  • 2021/11/10 (Wed) 21:06:30
Re: 属性取得して作図
(defun c:d-getprop ( / ) ;-------------------- 全属性取得 --------------------
 (setq elist (entget (nth 0 (entsel))))     ;単一指示
 (setvar "clayer" (cdr (assoc 8 elist)))    ;画層名
 (if (= (cdr (assoc 6 elist)) nil)       ;線種名
  (setvar "celtype" "bylayer")
  (setvar "celtype" (cdr (assoc 6 elist))))
 (if (= (cdr (assoc 62 elist)) nil)       ;色番号
  (setvar "cecolor" "bylayer")
  (setvar "cecolor" (itoa (cdr (assoc 62 elist)))))
 (if (= (cdr (assoc 48 elist)) nil)       ;線種尺度
  (setvar "celtscale" 1)
  (setvar "celtscale" (cdr (assoc 48 elist))))
 (if (= (cdr (assoc 370 elist)) nil)      ;線の太さ
  (setvar "celweight" -1)           ;bylayer
  (setvar "celweight" (cdr (assoc 370 elist))))
 (princ)
)

作成していたので、公開します。

上記は見栄えの為に全角スペースを使っています。
コピペは下記を使って下さい。

(defun c:d-getprop ( / ) ;-------------------- 全属性取得 --------------------
(setq elist (entget (nth 0 (entsel)))) ;単一指示
(setvar "clayer" (cdr (assoc 8 elist))) ;画層名
(if (= (cdr (assoc 6 elist)) nil) ;線種名
(setvar "celtype" "bylayer")
(setvar "celtype" (cdr (assoc 6 elist))))
(if (= (cdr (assoc 62 elist)) nil) ;色番号
(setvar "cecolor" "bylayer")
(setvar "cecolor" (itoa (cdr (assoc 62 elist)))))
(if (= (cdr (assoc 48 elist)) nil) ;線種尺度
(setvar "celtscale" 1)
(setvar "celtscale" (cdr (assoc 48 elist))))
(if (= (cdr (assoc 370 elist)) nil) ;線の太さ
(setvar "celweight" -1) ;bylayer
(setvar "celweight" (cdr (assoc 370 elist))))
(princ)
)

  • Den
  • 2021/11/11 (Thu) 09:25:53

返信フォーム






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