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

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

DIMINSPECTマクロについて
【使用AutoCAD】AutoCAD 2015

【質問】
-DIMINSPECT(検査寸法)コマンドを使い、ラベル、検査率なしで
普通の寸法を丸型の検査寸法に修正することはできますか?

DIMINSPECT(検査寸法)を使い、ラベル、検査率なしで選択した寸法を検査寸法にするマクロを用いて作ろうと思っています。
通常のダイアログボックスからはチェックボックスを外せばラベル、検査率なしで検査寸法にできるのですが、
-DIMINSPECTを使うと、検査率を入れないと確定できず、どうしても検査率が入ってしまいます。

検査率を入れずに検査寸法にする、または後から検査率を削除するなどのマクロは作成できるのでしょうか?
  • 森山
  • 2018/03/27 (Tue) 21:27:00
Re: DIMINSPECTマクロについて
試してみましたが
検査率自体のシステム変数が見当たらないですねー

ダイアログでやるしかないかもです。
  • とってぃ
  • 2018/03/28 (Wed) 09:25:42
Re: DIMINSPECTマクロについて
Lispならできそうなので。
-------------------------------------------------------------
(defun c:DelIR (/ ss i ename xdata x_exdata x_old x_new)
(prompt "\n検査寸法を選択:> ")
(if (setq ss (ssget '((0 . "DIMENSION"))))
(progn
(setq i 0)
(repeat (sslength ss)
(setq ename (ssname ss i))
(setq xdata (entget ename (list "*")))
(setq x_exdata (assoc -3 xdata))
(setq x_exdata (cdr (assoc "ACAD_DSTYLE_DIMINSPECT" (cdr x_exdata))))

(if (assoc 1000 x_exdata)
(progn
(setq x_old (car (cdr (member '(1070 . 394) x_exdata))))
(setq x_new (cons 1070 (- (cdr x_old) 32)))
(setq x_exdata (subst (cons 1000 "") (assoc 1000 x_exdata) x_exdata))
(setq x_exdata (subst x_new x_old x_exdata))

(setq x_exdata (cons "ACAD_DSTYLE_DIMINSPECT" x_exdata))
(setq x_exdata (list -3 x_exdata))
(setq xdata (subst x_exdata (assoc -3 xdata) xdata))
(entmod xdata)
)
)
(setq i (1+ i))
)
)
)
(princ)
)
  • LUNE
  • 2018/03/28 (Wed) 15:44:53
Re: DIMINSPECTマクロについて
もう一つ。-DIMINSPECTと同じ入力方法で、検査率の入力なしバージョン。
-------------------------------------------------------------------------
(defun c:NIRD (/ ss fm ff lb lf i ename edata xdata)
(prompt "\n検査寸法を追加する寸法オブジェクトを選択:> ")
(if (setq ss (ssget '((0 . "DIMENSION"))))
(progn
(initget "R A N")
(or
(setq fm (getkword "形状のオプションを入力 [丸型(R)/角型(A)/なし(N)] <丸型>:"))
(setq fm "R")
)
(cond
((= fm "R") (setq ff 1))
((= fm "A") (setq ff 2))
( T (setq ff 4))
)
(setq lb (getstring "ラベル データを入力 または <なし>:"))
(if (= lb "")
(setq lf 0)
(setq lf 16)
)

(setq i 0)
(repeat (sslength ss)
(setq ename (ssname ss i))
(setq edata (entget ename))
(if (= lf 0)
(progn
(setq xdata (list '(1070 . 396) '(1000 . "") '(1070 . 394) (cons '1070 ff) '(1070 . 393) '(1070 . 1)))
)
(progn
(setq xdata (list '(1070 . 396) '(1000 . "") '(1070 . 395) (cons '1000 lb) '(1070 . 394) (cons '1070 (+ ff lf)) '(1070 . 393) '(1070 . 1)))
)
)

(setq xdata (cons "ACAD_DSTYLE_DIMINSPECT" xdata))
(setq xdata (list -3 xdata))
(setq edata (append edata (list xdata)))
(entmod edata)

(setq i (1+ i))
)
)
)
(princ)
)


  • LUNE
  • 2018/03/28 (Wed) 17:18:55
Re: DIMINSPECTマクロについて
最初の分の説明が足りてませんね。すみません。
検査率が入力された寸法オブジェクトを選択し、一括で検査率を削除するものです。
  • LUNE
  • 2018/03/28 (Wed) 17:36:51
Re: DIMINSPECTマクロについて
お二方とも、早速のお返事ありがとうございます。

やはりマクロでは無理なんですね。

Lispはまだ勉強不足で使えていないため、Lispでの方法は考えていませんでした。
わざわざ時間を割いて作っていただきありがとうございます!
早速導入してみたいと思います。

ありがとうございました!
  • 森山
  • 2018/03/28 (Wed) 22:33:58

返信フォーム






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