yhly555 发表于 2016-10-24 11:41:04

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

如题,(cdr (assoc -1 (entget (car (entsel))))),取行 <图元名: 7ef7db18>,如何得到后面的“7ef7db18”字符串?谢谢!

ll_j 发表于 2016-10-24 17:01:37

yhly555 发表于 2016-10-24 15:46
转换为十进制。

实体名的是一个完整的对象,是系统自动赋予的,即使显示出一长串字母,也是不可分的,主要是,分开后就没有任何意义了。
实体名是“动态”的,每次系统会自动赋予实体一个实体名,不会保存,环境变化后,可能会变成另一个名字,这也是对这串字符操作没有意义的另一方面。
如果想操作唯一的实体名,应该提取组码5,就是句柄,也被俗称“头”,这是每一个实体(包括非实体)唯一的。

自贡黄明儒 发表于 2016-10-25 08:47:44

yhly555 发表于 2016-10-25 01:41
组码5是字柄,在这里我并不是需要一个唯一的识别码,我只是需要一个字符串,且这个字符串不当图元来使用 ...

(setq str (VL-PRINC-TO-STRING (cdr(assoc -1 (entget(car(entsel)))))))
(setq str (VL-STRING-LEFT-TRIM "<Entity name: " str))
(setq str (VL-STRING-right-TRIM ">" str))

yhly555 发表于 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

你得到后想做什么呢?

yhly555 发表于 2016-10-24 15:43:37

转换为十进制。

yhly555 发表于 2016-10-24 15:46:16

自贡黄明儒 发表于 2016-10-24 13:24
你得到后想做什么呢?

转换为十进制。

434939575 发表于 2016-10-24 17:30:58

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

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

       )

yhly555 发表于 2016-10-24 17:47:37

自贡黄明儒 发表于 2016-10-24 13:24
你得到后想做什么呢?

转换为十进制,用于拆离图像参照。

yhly555 发表于 2016-10-24 17:49:47

ll_j 发表于 2016-10-24 17:01
实体名的是一个完整的对象,是系统自动赋予的,即使显示出一长串字母,也是不可分的,主要是,分开后就没 ...

我只是想将得到的那字符串转换为十进制,以便于拆离图像参照。

Andyhon 发表于 2016-10-24 18:02:56

猜您需飘的是组码5
i.e. <Entity name: 7ee72d18>) (5 . "36")
页: [1] 2
查看完整版本: 如何取行 <图元名: 7ef7db18>后面的“7ef7db18”字符串?