筱筝 发表于 2012-5-8 12:36:45

如何在块参照 提取图层 块名 批量赋实物扩展属性

附上图会说得比较清楚
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/985189596/QQ/WinTemp/RichOle/Z01[{_Z(PTCGXPAF`4X37GY.jpg
说明我现有的图形的特点:1、 图层有很多个 如BLSS,JMD,SXS等 ,这些图层里面的对象都是没有扩展属性的 2、同一个图层的对象块名是不一样的,如BLSS图层中 的名称有164400_1   164400_2164400_i等,其中块名的特点是 它是由 “实体编码”+“_”+“数字”组成的。其他图层的块名也是由相应的实体编码加上数字组成的。
希望程序达到的效果:可以把每个图层的块名都提取出来,然后把块名前面的实体编码部分截取。然后写入扩展属性中。能让原本没有扩展属性的对象在我们加载程序后,可以实现 鼠标一点就可以看到它的属性file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/985189596/QQ/WinTemp/RichOle/U9MAMT(WX9I)EUG{ZEWVG`I.jpg
其实就是扩展属性怎么写入。
希望各位前辈能够帮帮忙,autolisp这个月开始接触,不熟悉,不知道怎么编
可以QQ联系或这是值直接回帖,先谢过了。


zyhandw 发表于 2012-5-8 14:06:43

看来又是一测绘同行,建议还是直接把你的dwg附件上来,大家再帮你!

筱筝 发表于 2012-5-8 15:18:30

zyhandw 发表于 2012-5-8 14:06 static/image/common/back.gif
看来又是一测绘同行,建议还是直接把你的dwg附件上来,大家再帮你!

呵呵,我的确是学测绘的,现在附上dwg附件,希望大家能够给与帮助

筱筝 发表于 2012-5-8 16:28:23

自己顶一下

zyhandw 发表于 2012-5-8 17:27:54

这个应该好办,以扩展属性为south为例,简单写了一下,用下面的程序试试:(defun c:test()
(regapp "south")
(setq sscnt 0)
(prompt "\n请选择要赋属性的块:")
(if (setq ins_all (ssget (list '(0 . "insert"))))
   (repeat (sslength ins_all)
    (setq ss_ins_name (ssname ins_all sscnt))
    (setq ss_ins_att (entget ss_ins_name (list "*")))
    (setq ins_name (cdr (assoc '2 ss_ins_att)))
    (setq ins_code (substr ins_name 1 (vl-string-position (ascii "_") ins_name)))
    (setq ins_code_lst (list '-3 (list "south" (cons 1000 ins_code))))
    (setq ss_ins_att (reverse (append (list ins_code_lst) (reverse ss_ins_att))))
    (entmod ss_ins_att)
    (setq sscnt (1+ sscnt))
   )
)
)

筱筝 发表于 2012-5-8 18:27:02

zyhandw 发表于 2012-5-8 17:27 static/image/common/back.gif
这个应该好办,以扩展属性为south为例,简单写了一下,用下面的程序试试:

感谢,不过我试了一下,当选择需要赋属性的块的时候只能选择一个对象,然后要一个一个的赋属性。这好像和手动赋属性没有差别。我想做的是在同一个图层的所有对象能够一次性的赋属性。不知道我说的清不清楚,请见谅。

筱筝 发表于 2012-5-8 22:15:09

求帮助呀,急急……

zyhandw 发表于 2012-5-9 14:05:39



怎么可能呢?可以拉框选取啊,上面是操作图

筱筝 发表于 2012-5-9 15:52:58

zyhandw 发表于 2012-5-9 14:05 static/image/common/back.gif
怎么可能呢?可以拉框选取啊,上面是操作图

真的很感谢,是我自己不会操作,现在会了,再次感谢

筱筝 发表于 2012-5-22 14:57:18

zyhandw 发表于 2012-5-8 17:27 static/image/common/back.gif
这个应该好办,以扩展属性为south为例,简单写了一下,用下面的程序试试:

你好,不知道能不能在赋扩展属性的同时改变图层的颜色呢,比如把图层 “JMD”的颜色改为品红。因为现在的图的颜色都是白色的,不好区分。
页: [1] 2
查看完整版本: 如何在块参照 提取图层 块名 批量赋实物扩展属性