zxjing 发表于 2010-8-17 15:51:00

[求助] 两个属性块的关联

本帖最后由 作者 于 2010-8-24 23:37:25 编辑 <br /><br /> <p><font face="Verdana">各位前辈们,小弟现在又遇到了一个问题,特来求教</font></p>
<p><font face="Verdana">&nbsp;将图则指标与控制指标 依据地块编码进行绑定</font></p>
<p>恳请赐教,谢谢~同时在此向Z版上次的帮助表示感谢</p>
<p>&nbsp;</p>
<p>&nbsp;哪位前辈可以提供一点思路啊~</p>
<p>或者提示我该优先学习那方面的知识~</p>
<p>现在主要面临两个问题,一个是从模型空间大量的控制指标块中(500多个块)搜索到需要的数据,</p>
<p>另一个是找到数据后如何在布局空间中绑定</p>
<p>我不是KO啊,</p>
<p>湘源除了没啥用之外功能还是蛮强大的,呵呵</p>
<p>由于湘源使用的是长沙市的制图标准,我们单位使用的是国家标准,不论在图层、道路交角、道路断面、用地性质分类上都存在非常大的区别,软件的功能非常强大,但是苦于一点都用不上,所以非常的郁闷,还希望各位前辈帮忙多多指教</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font face="Verdana"></font>&nbsp;</p>
<p>控制指标&nbsp;&nbsp;&nbsp; 图则指标</p>
<p>地块编号 = 地块编号(绑定依据)</p>
<p><font face="Verdana">用地性质&nbsp;= 用地性质</font></p>
<p><font face="Verdana">用地面积&nbsp;= 用地面积</font></p>
<p><font face="Verdana">容积率&nbsp;&nbsp;&nbsp; =&nbsp;容积率</font></p>
<p>……&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ……</p><font face="Verdana">
<p><br/></p></font>

zxjing 发表于 2010-8-21 12:18:00

哎呀~石沉大海啦

zxjing 发表于 2010-8-24 23:36:00

<p>&nbsp;哪位前辈可以提供一点思路啊~</p>
<p>或者提示我该优先学习那方面的知识~</p>
<p>现在主要面临两个问题,一个是从模型空间大量的控制指标块中(500多个块)搜索到需要的数据,</p>
<p>另一个是找到数据后如何在布局空间中绑定</p>
<p>我不是KO啊,</p>
<p>湘源除了没啥用之外功能还是蛮强大的,呵呵</p>
<p>由于湘源使用的是长沙市的制图标准,我们单位使用的是国家标准,不论在图层、道路交角、道路断面、用地性质分类上都存在非常大的区别,软件的功能非常强大,但是苦于一点都用不上,所以非常的郁闷,还希望各位前辈帮忙多多指教</p>

cxjzxh 发表于 2010-9-3 15:55:00

软件的功能非常强大

zxjing 发表于 2010-9-6 12:12:00

<p>可惜就是没用,所用的标准不一样,我们用国家标准的,就只能望洋兴叹了,</p>

caiqs 发表于 2010-9-14 20:19:00

<p>简单的</p>

zxjing 发表于 2010-9-17 12:13:00

恳请赐教~

caiqs 发表于 2010-9-18 13:05:00

<p>表达不够清楚</p>

zxjing 发表于 2010-9-20 12:47:00

<p>前辈,将问题最简化就是</p>
<p>如何将一个属性块中 属性的值 赋给另一个属性块对应的属性的值</p>
<p>谢谢~</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

Gu_xl 发表于 2010-9-20 21:30:00

给你两个函数,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
查看完整版本: [求助] 两个属性块的关联