truncを使って切り捨てているので、切り捨てる最初の桁が小数点第1位になるように調整する必要があります。
(truncは小数点以下を切り捨てる関数)
例えば、123.456789㎡という面積の場合、AutoCAD内ではmm単位なので、オブジェクトの持つ面積の値は123456789です。
m単位とするには、×0.000001する必要があります。
・小数点以下第3位を切り捨てて、第2位まで表示 の場合
小数点以下第2位を1の位にする→0.000001×100なので、*0.0001した値をtruncする (123456789*0.0001=12345.6789 → 12345)
100倍したので、変換係数を0.01(1/100)とする (12345→123.45)
精度を0.01にする(pr2)
・小数点以下第4位を切り捨てて、第3位表示 の場合
小数点以下第3位を1の位にする→0.000001×1000なので、*0.001した値をtruncする (123456789*0.001=123456.789 → 123456)
1000倍したので、変換係数を0.001(1/1000)とする (123456→123.456)
精度を0.001にする(pr3)
ということで、以下の通りとなります。
(setq fstr (strcat
"\%\<\\AcExpr (trunc("
"\%\<\\AcObjProp Object(\%\<\\_ObjId "
obid "\>\%).Area \\f \"%lu2%pr2\"\>\%"
"*0.001))
\\f \"%lu2%pr3%ps[,㎡]%ct8[0.001]\"
\>\%"
)
)
- LUNE
- 2025/07/25 (Fri) 11:25:19