本帖最后由 Gu_xl 于 2014-8-7 18:46 编辑
最近开始使用鸿业市政管线软件进行设计,发现一个比较强大的功能,鸿业定义的管线具有管径和标高属性,而且将管线复制到其他图纸里,使用鸿业打开,可以识别该管线属性。
对于这个问题感觉比较奇怪,在复制管线的时候并没有其他配置文件,为何复制到其他图纸里可以显示出该管线管径和标高等属性,难道该管线多段线带有自定义属性,百思不得其解啊,请高手帮忙解答啊。
另外,可以自己实现带有属性的多段线吗?
感谢"h008 "提醒使用字典给多段线添加属性,查了一下资料,写了一个给多段线添加并获取属性的函数,比较简单,大家不要吐槽啊。看看还有没有什么其他更好的方法来实现。
代码如下: - ;;;设置管线属性
- (defun c:setAttr ()
- (princ "\n >>>拾取曲线: ")
- (setq ent (ssget '((0 . "*LINE,ARC,ELLIPSE"))) ) ;选择集
- (setq i 0)
- (repeat (sslength ent)
- (setq gxPipe(ssname ent i))
- (VLAX-LData-Put gxPipe "gc" "PVC") ;gc:管材
- (VLAX-LData-Put gxPipe "gj" "110") ;gj:管径
- (setq i (1+ i))
- )
- (princ)
- )
- ;;;获得管线属性
- (defun c:getAttr ()
- (setq gxPipe (Car (EntSel "\n请选择检看属性线: ")))
- (setq gxPipe (VLAX-Ename->VLA-Object gxPipe)
- attr1 (VLAX-LData-Get gxPipe "gc")
- attr2 (VLAX-LData-Get gxPipe "gj")
- )
- (princ (strcat "\n管材:" attr1 "\t管径:" attr2))
- (princ)
- )
- (princ)
- (princ "\n添加属性:setAttr\t获得属性:getAttr\n")
鸿业定义的管线属性如下:
|