乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 8|回复: 8

[编程交流] 如何获取多属性

[复制链接]

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-6 06:47:53 | 显示全部楼层 |阅读模式
大家好,
 
我有一个属性块,它有两个标签
 
标签1=X
标签2=Y
 
我使用以下代码获取属性值,但此代码仅给出1个属性值:-
  1.         (setq obj (vlax-ename->vla-object theEntity))
  2. (foreach a (vlax-invoke obj 'getattributes)
  3. (setq tag_val (vlax-get a 'TagString))
  4. (setq att_val (vlax-get a 'TextString))

 
 
有谁能帮我编辑这段代码以获得单个属性块的多个值吗
 
有关更多信息,请参阅图形文件中的图形文件
 
X=10,y=3
 
我想得到那个属性值&最后加上它
 
i、 e.10+3=13
 
 
 
提前感谢
测验图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 06:56:41 | 显示全部楼层
  1. (setq sum 0 obj (vlax-ename->vla-object theEntity))
  2. (foreach a (vlax-invoke obj 'getattributes)
  3.         (setq sum (+ (atoi (vlax-get a 'TextString)) sum))
  4. )

 

 
  1. (apply '+ (mapcar '(lambda (a)
  2.         (atoi (vlax-get a 'TextString)))
  3.                     (vlax-invoke obj 'getattributes)))
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-6 07:04:54 | 显示全部楼层
非常感谢你的帮助
 
关于其他信息,我想知道如果我想用Y值除以10
 
i、 e.10+(3/10)=10.3
 
对于这一点,代码将如何更改?????
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:12:41 | 显示全部楼层
 
  1. (Defun c:demo ()
  2. (setq theEntity (Car (entsel)))
  3. (setq obj (vlax-ename->vla-object theEntity))
  4. (setq data (mapcar '(lambda (a) (list (vlax-get a 'TagString) (atoi (vlax-get a 'TextString))))
  5.                     (vlax-invoke obj 'getattributes)
  6.             )
  7. )
  8. (+ (cadr (assoc "X" data)) (/ (cadr (assoc "Y" data)) 10.0))
  9. )
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-6 07:23:30 | 显示全部楼层
杰出的
 
这就是我想要的
 
非常感谢你。。。。pBE:)
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-6 07:29:39 | 显示全部楼层
再次提出一个问题,
 
我已将上述lisp修改为:-
 
  1. (Defun c:demo ()
  2.   (if (and
  3.         (setq dta (ssget  '((0 . "INSERT") (66 . 1))))
  4.        )
  5. (repeat (setq i (sslength dta))
  6. (setq theEntity (ssname dta (setq i (1- i))))
  7. (setq obj (vlax-ename->vla-object theEntity))
  8. (setq data (mapcar '(lambda (a) (list (vlax-get a 'TagString) (atoi (vlax-get a 'TextString))))
  9.                     (vlax-invoke obj 'getattributes)
  10.             )
  11. )
  12. (setq att (+ (cadr (assoc "X" data)) (/ (cadr (assoc "Y" data)) 10.0)))
  13.    (princ att)
  14. )))

 
但当我选择一个属性时,它会提供两次属性值
e、 g.如果我选择10.3(属性块),则返回10.310.3
plz参考上图
 
谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:37:19 | 显示全部楼层
(普林斯)
):
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-6 07:42:05 | 显示全部楼层
现在人们开始知道,即使是很小的代码也会让你恼火,我没有意识到。。。
 
我的编码知识与日俱增
 
多亏了你们,你们真的让事情变得简单了
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 07:51:47 | 显示全部楼层
 
你会到达那里的satishrajdev,练习。。。实践实践
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 14:48 , Processed in 0.377065 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表