clh521 发表于 2016-4-6 14:38:26

如何获得标注对像的精度? 我查看了标注对像定义数据,没有找到控制其精度的组码。

本帖最后由 clh521 于 2016-4-7 11:08 编辑

如何获得标注对像的精度? 我查看了标注对像定义数据,没有找到控制其精度的组码。

我需要的是选择一个标注,就得到这个标注值的精度。
   例如:标注值是10.1,就得到1;标注值10.15,就得到2;标注值10.159,就得到3。
也就是选择一个标注后,就得到这个标注值的小数点后面有多少位数。


Gu_xl 发表于 2016-4-6 16:55:41

(vla-get-AltUnitsPrecision (vlax-ename->vla-object(car(entsel))))

clh521 发表于 2016-4-6 18:50:13

Gu_xl 发表于 2016-4-6 16:55 static/image/common/back.gif
(vla-get-AltUnitsPrecision (vlax-ename->vla-object(car(entsel))))

好像结果不对呢?我是需要求出一个标注 的值的小数点后面有几位数。比如:3.11其精度为0.00;10.1其精度为0.0

1993063 发表于 2016-4-6 21:40:11

查询消除尾数0的变量应该是可以解决问题

clh521 发表于 2016-4-7 10:15:22

变量只能得到全局标注的精度。但我图面上有些标注小数点后只有两位数,有的又是一位数,消除尾数0的变量只能得到同一个结果

clh521 发表于 2016-4-7 10:15:56

1993063 发表于 2016-4-6 21:40 static/image/common/back.gif
查询消除尾数0的变量应该是可以解决问题


变量只能得到全局标注的精度。但我图面上有些标注小数点后只有两位数,有的又是一位数,消除尾数0的变量只能得到同一个结果

clh521 发表于 2016-4-7 10:18:39

1993063 发表于 2016-4-6 21:40 static/image/common/back.gif
查询消除尾数0的变量应该是可以解决问题


变量只能得到全局标注的精度。但我图面上有些标注小数点后只有两位数,有的又是一位数,消除尾数0的变量只能得到同一个结果

chg 发表于 2016-4-7 10:52:11

(defun c:dp (/ int ent da70 old-cmdecho old-ortho old-osmode)
(setvar "cmdecho" 0)
(setq int (getint "\n输入标注精度 <0> :"))
(setq ent (ssget '((0 . "DIMENSION"))))
(if (null int)
    (command "_.dimoverride" "dimadec" 0 "dimdec" 0 "" ent "")
    (command "_.dimoverride" "dimadec" int "dimdec" int "" ent "")
    )
(princ)
)

clh521 发表于 2016-4-7 11:08:07

chg 发表于 2016-4-7 10:52 static/image/common/back.gif
(defun c:dp (/ int ent da70 old-cmdecho old-ortho old-osmode)
(setvar "cmdecho" 0)
(setq int ( ...

谢谢,不过你这个是改变了精度,而不是取得精度。

我需要的是选择一个标注,就得到这个标注值的精度。
   例如:标注值是10.1,就得到1;标注值10.15,就得到2;标注值10.159,就得到3。
也就是选择一个标注后,就得到这个标注值的小数点后面有多少位数。

clh521 发表于 2016-4-8 10:14:00

Gu_xl版主的方法只是得到替代标注的精度位数,看来没办法了
页: [1] 2
查看完整版本: 如何获得标注对像的精度? 我查看了标注对像定义数据,没有找到控制其精度的组码。