satishrajdev 发表于 2022-7-6 06:47:53

如何获取多属性

大家好,
 
我有一个属性块,它有两个标签
 
标签1=X
标签2=Y
 
我使用以下代码获取属性值,但此代码仅给出1个属性值:-
        (setq obj (vlax-ename->vla-object theEntity))

(foreach a (vlax-invoke obj 'getattributes)
(setq tag_val (vlax-get a 'TagString))
(setq att_val (vlax-get a 'TextString))
 
 
有谁能帮我编辑这段代码以获得单个属性块的多个值吗
 
有关更多信息,请参阅图形文件中的图形文件
 
X=10,y=3
 
我想得到那个属性值&最后加上它
 
i、 e.10+3=13
 
 
 
提前感谢
测验图纸

pBe 发表于 2022-7-6 06:56:41

(setq sum 0 obj (vlax-ename->vla-object theEntity))
(foreach a (vlax-invoke obj 'getattributes)
        (setq sum (+ (atoi (vlax-get a 'TextString)) sum))
)

 

 
(apply '+ (mapcar '(lambda (a)
        (atoi (vlax-get a 'TextString)))
                  (vlax-invoke obj 'getattributes)))

satishrajdev 发表于 2022-7-6 07:04:54

非常感谢你的帮助
 
关于其他信息,我想知道如果我想用Y值除以10
 
i、 e.10+(3/10)=10.3
 
对于这一点,代码将如何更改?????

pBe 发表于 2022-7-6 07:12:41

 
(Defun c:demo ()
(setq theEntity (Car (entsel)))
(setq obj (vlax-ename->vla-object theEntity))
(setq data (mapcar '(lambda (a) (list (vlax-get a 'TagString) (atoi (vlax-get a 'TextString))))
                  (vlax-invoke obj 'getattributes)
            )
)
(+ (cadr (assoc "X" data)) (/ (cadr (assoc "Y" data)) 10.0))
)

satishrajdev 发表于 2022-7-6 07:23:30

杰出的
 
这就是我想要的
 
非常感谢你。。。。pBE:)

satishrajdev 发表于 2022-7-6 07:29:39

再次提出一个问题,
 
我已将上述lisp修改为:-
 
(Defun c:demo ()
(if (and
        (setq dta (ssget'((0 . "INSERT") (66 . 1))))
       )
(repeat (setq i (sslength dta))
(setq theEntity (ssname dta (setq i (1- i))))
(setq obj (vlax-ename->vla-object theEntity))
(setq data (mapcar '(lambda (a) (list (vlax-get a 'TagString) (atoi (vlax-get a 'TextString))))
                  (vlax-invoke obj 'getattributes)
            )
)
(setq att (+ (cadr (assoc "X" data)) (/ (cadr (assoc "Y" data)) 10.0)))
   (princ att)
)))
 
但当我选择一个属性时,它会提供两次属性值
e、 g.如果我选择10.3(属性块),则返回10.310.3
plz参考上图
 
谢谢

pBe 发表于 2022-7-6 07:37:19

(普林斯)
):

satishrajdev 发表于 2022-7-6 07:42:05

现在人们开始知道,即使是很小的代码也会让你恼火,我没有意识到。。。
 
我的编码知识与日俱增
 
多亏了你们,你们真的让事情变得简单了

pBe 发表于 2022-7-6 07:51:47

 
你会到达那里的satishrajdev,练习。。。实践实践
页: [1]
查看完整版本: 如何获取多属性