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

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

寸法の向きを変える方法はありますか?
ワールド座標の寸法を回転したビューで表示すると寸法の上下、左右がひっくり返ります。
描き直さずに変更する方法はありますか?
  • コードレス(札鉄鋼)
  • 2025/06/18 (Wed) 11:57:58
Re: 寸法の向きを変える方法はありますか?
寸法を選択→オブジェクトプロパティ管理で、文字項目の中の文字の方向を「右から左」、垂直方向の寸法位置を「下側」でどうでしょう?
  • LUNE
  • 2025/06/18 (Wed) 12:02:04
Re: 寸法の向きを変える方法はありますか?
LUNE様、ご提案ありがとうございます。
修正したい寸法とそっくりの寸法スタイルを作り、「右から左」、「下側」にして、MAします。
なんとかなりそうです。
  • コードレス(札鉄鋼)
  • 2025/06/18 (Wed) 13:15:15
Re: 寸法の向きを変える方法はありますか?
ビューポートの中で寸法を選択すると、そのビューポートのUCSに合わせて
グループコード51番を変更するLISPです。

(defun c:Test ( / sel i ent edata ucs_x ucs_angle)
(setq sel (ssget '((0 . "DIMENSION"))))
(if sel
(progn
(setq i 0)
(repeat (sslength sel)
(setq ent (ssname sel i))
(setq edata (entget ent))
(setq ucs_x (getvar "UCSXDIR"))
(setq ucs_angle (atan (cadr ucs_x) (car ucs_x)))
(setq edata (subst (cons 51 ucs_angle) (assoc 51 edata) edata))
(entmod edata)
(entupd ent)
(setq i (1+ i))
)
(princ "\n選択した寸法の寸法値の位置を現在のUCSに変更しました。")
)
(princ "\n寸法オブジェクトが選択されませんでした。")
)
(princ)
)
  • Hamu
  • 2025/06/18 (Wed) 14:37:16
Re: 寸法の向きを変える方法はありますか?
Lispはよくわからんのですが、、うまく行きません。登録しても、、・・コマンドありません。と出ます。名前が悪いのか? ViewUCSDim.lspとしましたが、、
  • コードレス(札鉄鋼)
  • 2025/06/18 (Wed) 22:53:32
Re: 寸法の向きを変える方法はありますか?
1行目の
(defun c:Test ( / sel i ent edata ucs_x ucs_angle)



(defun c:ViewUCSDim ( / sel i ent edata ucs_x ucs_angle)

に書き換えて再度ロードしてください。(スタートアップ登録しているなら再起動でも良いです)

これで、ViewUCSDimと入力すれば実行できます。
目的のビューポートの中に入った状態でViewUCSDimを入力してください。
実行後にビューポートに入った場合、うまく処理できないかもしれません。

もし、メモ帳で作成しているなら、文字のエンコードはANSI(Shift JIS)にして保存して下さい。
最近のAUTOCADではユニコードでも大丈夫ですが、昔のAUTOCADや互換CADではANSIじゃないとエラーが出ます。
  • Hamu
  • 2025/06/19 (Thu) 08:42:06
Re: 寸法の向きを変える方法はありますか?
AutoCAD2024を使ってます。スタートアップ登録しています。1行目はご指示に従い書き換えました。
動作はしているようですが、寸法位置、向きは変化なしです。現在のUCSに従った寸法値の形になりません。

コマンド: ViewUCSDim
オブジェクトを選択: 認識された数: 1
オブジェクトを選択:
選択した寸法の寸法値の位置を現在のUCSに変更しました。
コマンド:

どこが悪いのか、使い方でしょうか?
  • コードレス(札鉄鋼)
  • 2025/06/19 (Thu) 22:41:54
Re: 寸法の向きを変える方法はありますか?
使い方は間違っていないと思います。

寸法が私の想定している物とは違うのかもしれません。

私が試したものは、
モデル空間に長さ寸法と平行寸法を色々な向きに書き、
レイアウトにビューポートを作り、そのビューポート内のUCSをZ軸で180度回転後、PLANで現在のUCSに合わせる。
この状態で、そのLISPを使いました。

これ以外の状態ではダメなのかもしれません。
お役に立てずスミマセン。
  • Hamu
  • 2025/06/20 (Fri) 06:46:49
Re: 寸法の向きを変える方法はありますか?
お世話になります。検証いただきました「UCSをZ軸回転180度」では正しく動作します。
自分が目的としているのは、90度ずつ回転した3つのUCSでの寸法の向きを変更することです。
・・・平面図を中心として、4方向に展開図を配置し、それぞれに寸法を記入します。
180度回転ではOKですし、タテ方向の寸法もOKですので、うまくUCSを変更すると全てOKかもです。
色々と試してみます。ありがとうございました。
  • コードレス(札鉄鋼)
  • 2025/06/23 (Mon) 07:04:54
Re: 寸法の向きを変える方法はありますか?
グループコード50番も関係してそうです。
元のUCS+現在のUCS+各寸法の回転角度から50番の値を算出する?(違うかもしれません)

その計算公式を考えると頭がパンクしそう。
元のUCSがWCSであるなら、少しは計算が楽になるとは思いますが、それでも難しそうなので断念します。
  • Hamu
  • 2025/06/23 (Mon) 08:27:02
Re: 寸法の向きを変える方法はありますか?
法則と理論はよくわかりませんが、UCSを適宜、回転すると提示いただいたLISPで目的の寸法値方向に変更できました。
文章ですと、、うまく伝えられないので、作図したDWGのキャプチャーを添付します。どうもでした。。
  • コードレス(札鉄鋼)
  • 2025/06/23 (Mon) 23:10:02
Re: 寸法の向きを変える方法はありますか?
LISPは全然わからないので、マクロで作ってみました。

^C^C_Dimoverride;DIMTAD;4;DIMTXTDIRECTION;1;;\

最後の \ の後にスペースはありません。単数または複数の寸法を選択し Enter で動作します。

元に戻すには、PGPファイルに DIMOVERRIDE を短縮名 DIO にて登録して呼び出すのが簡単です。
ダイナミック入力のデフォルトで 「クリア」が出てきます。そいつをクリックしてから寸法を選択するだけです。
  • コードレス(札鉄鋼)
  • 2025/06/29 (Sun) 00:04:07
Re: 寸法の向きを変える方法はありますか?
1つ前の投稿を訂正します。作っていただいたLISPを使うときの、「UCSのZ軸回転」の回転方向が左右の図で逆でした。
お詫びして、新たなキャプチャー図を添付します。
  • コードレス(札鉄鋼)
  • 2025/06/29 (Sun) 08:57:49
Re: 寸法の向きを変える方法はありますか?
1つ前の、自分のマクロの使い方の補足をします。

マクロ発行→寸法選択(単数・複数・窓選択可)→Enter で動作します。
注意点・・現在のUCS、ワールドに関係なく、選択した全ての寸法値の位置を「下側」「右から左」に変更(上書き)します。
なので、変更したくない寸法値は選択しないで下さい。間違って変更した場合は DIO から C で上書きをクリアして下さい。

また、新しい寸法スタイルも優先スタイルも作りません。現在の寸法スタイルも変更はしません。プロパティ管理での操作をまとめて動作させているだけです。
  • コードレス(札鉄鋼)
  • 2025/06/29 (Sun) 09:21:19
Re: 寸法の向きを変える方法はありますか?
またまた訂正します。
PGPファイルには デフォルトで DIMOVERRIDE は短縮名 DOV にて登録されていました。こっちを使います。または使ってますね、みなさん。
  • コードレス(札鉄鋼)
  • 2025/06/30 (Mon) 11:30:00

返信フォーム






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