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

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

ビューポートの標準尺度を取得について
いつもお世話になります。
AutoCAD 2026について教えて下さい。
レイアウト空間上のビューポートの尺度をAutoLISPで取得を頑張っています。
ネットで調べていて
以下のコードにたどり着いたのですが
本来の取得した尺度と本来の標準尺度に相違があります。
コードは以下の通りです。
***************************************************
(vl-load-com)
(defun c:TEST()

(prompt "\nビューポートを選択してください:")
(setq ss (ssget ":S" '((0 . "VIEWPORT")))) ; VIEWPORTのみを選択
(if ss
(progn
(setq ent (ssname ss 0))
(setq vobj (vlax-ename->vla-object ent))
; 標準尺度を取得
(setq scale (vla-get-standardscale vobj))
(setq syakudo (itoa scale))
(princ (strcat "\n標準尺度: " "1/" syakudo))
)
(princ "\nビューポートが選択されませんでした。")
)
(princ)
)
***************************************************
どこがおかしいのでしょうか。
私の頭がおかしいのは、ごもっともです。
  • しんちゃん
  • 2026/02/20 (Fri) 17:45:06
Re: ビューポートの標準尺度を取得について
>本来の取得した尺度と本来の標準尺度
の意味が判らないのですが、

ビューポートのグループコードの41番と45番を比較。
(41番の数値:45番の数値 が ビューポートの尺度)


  • Hamu
  • 2026/02/20 (Fri) 17:59:26
Re: ビューポートの標準尺度を取得について
>本来の取得した尺度と本来の標準尺度に相違があります。
ごめんなさい。
「(setq scale (vla-get-standardscale vobj))で取得した尺度とオブジェクトプロパティの標準尺度が違っている」
の間違えです。
  • しんちゃん
  • 2026/02/21 (Sat) 08:48:44
Re: ビューポートの標準尺度を取得について
Hamuさんご指摘通リコーディングしたらできました。
ありがとうございます。
  • しんちゃん
  • 2026/02/23 (Mon) 19:23:27
Re: ビューポートの標準尺度を取得について
こちらの、2/18にあるhmsilvaさんのコード
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/viewport-scale/td-p/5830592

(rtos (/ 1 (vla-get-CustomScale (vlax-ename->vla-object (car (entsel))))) 2 0)

だと正しい数値が返るのでは?

vla-get-standardscale ではなく、vla-get-CustomScale を使うのではないでしょうか。


  • LUNE
  • 2026/02/24 (Tue) 16:25:10
Re: ビューポートの標準尺度を取得について
LUNEさんお返事ありがとうございます。
気づきませんで申し訳ありません。
  • しんちゃん
  • 2026/03/07 (Sat) 10:40:24

返信フォーム






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