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

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

連続寸法でスタイルの交互使用
こんにちは。ご相談いたします。寸法スタイルを二つ作成し、連続寸法を実行し、そのスタイルを交互に採用しながら記入する。という動作が可能なリスプの作成をお願いします。
  • tot
  • 2025/11/03 (Mon) 11:02:10
Re: 連続寸法でスタイルの交互使用
新しく長さ寸法を書き、それに直列寸法を追加していく動作です。
既に記入されている寸法に対して行いたい時は、改変が必要です。

(defun c:ChangeDimStyle (/ style_name1 style_name2 LastEnt ent Conv)
(setq style_name1 "すたいる1");すたいる1 を 使用するスタイル名に変更
(setq style_name2 "すたいる2");すたいる2 を 使用するスタイル名に変更

(setq LastEnt (entlast))
(command "dimlinear")
(while (eq LastEnt (entlast)) (command pause))

(setq ent (entget (entlast)))
(setq Conv (if (eq (cdr (assoc 3 ent)) style_name1) T nil))

(while T
(command "dimcontinue" pause "" "")
(setq ent (entget (entlast)))
(setq ent (subst (cons 3 (if Conv style_name2 style_name1)) (assoc 3 ent) ent))
(entmod ent)
(command "REDRAW")
(setq Conv (if Conv nil T))
)
)
  • Hamu
  • 2025/11/04 (Tue) 11:39:54
Re: 連続寸法でスタイルの交互使用
Hamu様
お忙しい中ありがとうございます。
一つ気が付いたことを申し上げます。リスプ実行後、はじめと二番目はそのままのスタイル・三番目から最後までスタイルが変化。この内容で合っていますでしょうか。
もしよろしければ、初めはすたいる1・二番目はすたいる2・後は交互に変化・という風になりますか。お願いばかりで恐縮でございますが、お力添えをよろしくお願いいたします。
  • tot
  • 2025/11/04 (Tue) 14:08:23
Re: 連続寸法でスタイルの交互使用
初めはすたいる1・二番目はすたいる2
になっているつもりです。私のCADではそうなります。

すたいる1、すたいる2に記入しているスタイル名と、寸法スタイル名で、
大文字・小文字の違いが有るときに、そんな挙動になります。
大文字・小文字の違いを無視するには、下記の様に変更して下さい。

(setq Conv (if (eq (cdr (assoc 3 ent)) style_name1) T nil))
の部分を
(setq Conv (if (eq (strcase (cdr (assoc 3 ent))) (strcase style_name1)) T nil))
に変更
  • Hamu
  • 2025/11/04 (Tue) 16:57:54
Re: 連続寸法でスタイルの交互使用
Hamu様

ありがとうございます。ご指摘の部分を見直しロードいたしましたところ。希望通りの動作を確認致しました。
本当にありがとうございました。
  • tot
  • 2025/11/05 (Wed) 06:20:01

返信フォーム






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