明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3422|回复: 17

[提问] 如何取行 <图元名: 7ef7db18>后面的“7ef7db18”字符串?

[复制链接]
发表于 2016-10-24 11:41:04 | 显示全部楼层 |阅读模式
如题,(cdr (assoc -1 (entget (car (entsel))))),取行 <图元名: 7ef7db18>,如何得到后面的“7ef7db18”字符串?谢谢!

发表于 2016-10-24 17:01:37 | 显示全部楼层

实体名的是一个完整的对象,是系统自动赋予的,即使显示出一长串字母,也是不可分的,主要是,分开后就没有任何意义了。
实体名是“动态”的,每次系统会自动赋予实体一个实体名,不会保存,环境变化后,可能会变成另一个名字,这也是对这串字符操作没有意义的另一方面。
如果想操作唯一的实体名,应该提取组码5,就是句柄,也被俗称“头”,这是每一个实体(包括非实体)唯一的。
发表于 2016-10-25 08:47:44 | 显示全部楼层
yhly555 发表于 2016-10-25 01:41
组码5是字柄,在这里我并不是需要一个唯一的识别码,我只是需要一个字符串,且这个字符串不当图元来使用 ...

  1. (setq str (VL-PRINC-TO-STRING (cdr(assoc -1 (entget(car(entsel)))))))
  2. (setq str (VL-STRING-LEFT-TRIM "<Entity name: " str))
  3. (setq str (VL-STRING-right-TRIM ">" str))
 楼主| 发表于 2016-10-24 17:52:40 | 显示全部楼层
434939575 发表于 2016-10-24 17:30
(substr (substr  "" 9) 1

         (1-(strlen(substr  "" 9)))

这样应该是不行的,因这这个获取到的图元名,不是我们给定的字符串,所以用这个命令操作会提示错误,
刚开始我就是这样操作的,但都是提示错误。
发表于 2016-10-24 13:24:48 | 显示全部楼层
你得到后想做什么呢?
 楼主| 发表于 2016-10-24 15:43:37 | 显示全部楼层
转换为十进制。
 楼主| 发表于 2016-10-24 15:46:16 | 显示全部楼层
自贡黄明儒 发表于 2016-10-24 13:24
你得到后想做什么呢?

转换为十进制。
发表于 2016-10-24 17:30:58 | 显示全部楼层
(substr (substr  "<图元名: 7ef7db18>" 9) 1

         (1-(strlen(substr  "<图元名: 7ef7db18>" 9)))

         )
 楼主| 发表于 2016-10-24 17:47:37 | 显示全部楼层
自贡黄明儒 发表于 2016-10-24 13:24
你得到后想做什么呢?

转换为十进制,用于拆离图像参照。
 楼主| 发表于 2016-10-24 17:49:47 | 显示全部楼层
ll_j 发表于 2016-10-24 17:01
实体名的是一个完整的对象,是系统自动赋予的,即使显示出一长串字母,也是不可分的,主要是,分开后就没 ...

我只是想将得到的那字符串转换为十进制,以便于拆离图像参照。
发表于 2016-10-24 18:02:56 | 显示全部楼层
猜您需飘的是组码5
i.e. <Entity name: 7ee72d18>) (5 . "36")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 12:04 , Processed in 0.210942 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表