[求助] 两个属性块的关联
本帖最后由 作者 于 2010-8-24 23:37:25 编辑 <br /><br /> <p><font face="Verdana">各位前辈们,小弟现在又遇到了一个问题,特来求教</font></p><p><font face="Verdana"> 将图则指标与控制指标 依据地块编码进行绑定</font></p>
<p>恳请赐教,谢谢~同时在此向Z版上次的帮助表示感谢</p>
<p> </p>
<p> 哪位前辈可以提供一点思路啊~</p>
<p>或者提示我该优先学习那方面的知识~</p>
<p>现在主要面临两个问题,一个是从模型空间大量的控制指标块中(500多个块)搜索到需要的数据,</p>
<p>另一个是找到数据后如何在布局空间中绑定</p>
<p>我不是KO啊,</p>
<p>湘源除了没啥用之外功能还是蛮强大的,呵呵</p>
<p>由于湘源使用的是长沙市的制图标准,我们单位使用的是国家标准,不论在图层、道路交角、道路断面、用地性质分类上都存在非常大的区别,软件的功能非常强大,但是苦于一点都用不上,所以非常的郁闷,还希望各位前辈帮忙多多指教</p>
<p> </p>
<p> </p>
<p><font face="Verdana"></font> </p>
<p>控制指标 图则指标</p>
<p>地块编号 = 地块编号(绑定依据)</p>
<p><font face="Verdana">用地性质 = 用地性质</font></p>
<p><font face="Verdana">用地面积 = 用地面积</font></p>
<p><font face="Verdana">容积率 = 容积率</font></p>
<p>…… ……</p><font face="Verdana">
<p><br/></p></font> 哎呀~石沉大海啦 <p> 哪位前辈可以提供一点思路啊~</p>
<p>或者提示我该优先学习那方面的知识~</p>
<p>现在主要面临两个问题,一个是从模型空间大量的控制指标块中(500多个块)搜索到需要的数据,</p>
<p>另一个是找到数据后如何在布局空间中绑定</p>
<p>我不是KO啊,</p>
<p>湘源除了没啥用之外功能还是蛮强大的,呵呵</p>
<p>由于湘源使用的是长沙市的制图标准,我们单位使用的是国家标准,不论在图层、道路交角、道路断面、用地性质分类上都存在非常大的区别,软件的功能非常强大,但是苦于一点都用不上,所以非常的郁闷,还希望各位前辈帮忙多多指教</p> 软件的功能非常强大 <p>可惜就是没用,所用的标准不一样,我们用国家标准的,就只能望洋兴叹了,</p> <p>简单的</p> 恳请赐教~ <p>表达不够清楚</p> <p>前辈,将问题最简化就是</p>
<p>如何将一个属性块中 属性的值 赋给另一个属性块对应的属性的值</p>
<p>谢谢~</p>
<p> </p>
<p> </p> 给你两个函数,gxl-BLK-GetAttValue 读取块属性值,gxl-BLK-VxSetAtts 设置块属性值
;;;===================================================================
;;;gxl-BLK-GetAttValue 从插入数据中返回指定属性标记的值
;|功能
从插入数据中返回指定属性标记的值
参数
Ent:一个Insert图元。AttTag:一个代表属性标记名称的字符中。
示例
(gxl-BLK-GetAttValue Ent "ID")
注意
以上例子将从Ent的图元数据范围返回属性标记为“ID”的图元数据,或如果属性标记未找到时返回空(nil)。
请留意:Ent必须是一个有效的插入图块(或属性)图元数据列表。
|;
;;;===================================================================
(defun gxl-BLK-GetAttValue (Obj AttTag / AttList)
(if (= (type obj) 'ENAME)
(setq obj (vlax-ename->vla-object Obj))
)
(setq AttList
(mapcar
'(lambda (Att)
(cons (vla-get-TagString Att)
(vla-get-TextString Att)
)
)
(vlax-invoke Obj "GetAttributes")
)
);setq
(cdr (assoc AttTag AttList))
)
;;;===================================================================
;;;gxl-BLK-SetAtts 设置块中属性
;|VxSetAtts - Sets?attribute values to block
函数名: gxl-BLK-VxSetAtts
功能: 设置块中属性
Copyright: ?000 MENZI ENGINEERING GmbH, Switzerland
参数 [类型]:
Obj = Object
Lst = 点表 '(("Tag1" . "Val1")...)
返回值[类型]: nil
|;
;;;===================================================================
(defun gxl-BLK-VxSetAtts (Obj Lst / AttVal)
(if (= (type obj) 'ENAME)
(setq obj (vlax-ename->vla-object Obj))
)
(mapcar
'(lambda (Att)
(if (setq AttVal (cdr (assoc (vla-get-TagString Att) Lst)))
(vla-put-TextString Att AttVal)
)
)
(vlax-invoke Obj "GetAttributes")
)
(vla-update Obj)
(princ)
)
页:
[1]
2