比加尔,
非常感谢。
您的代码是进一步增强想法的灵感来源。从中,我做了两个口吃。一个将拾取的文本中的房屋编号输入到属性中,另一个将拾取的文本中的街道名称输入到属性中。为此,不需要电缆材料属性。
我更改了你的代码,删除了我认为过多的代码。请不要笑。可能需要减少一些,但我不太理解,所以我只是让它对我有用,如下所示:
1、门牌号
- (vl-load-com)
- (defun c:Han ( / cableno stname blkobj)
- (while (/= nil (setq Hnum (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nSelect House number pick nothing to exit"))))))
- (setq blkobj (vlax-ename->vla-object (car (entsel "\nPick House block"))))
- (foreach att (vlax-invoke blkobj 'getattributes)
-
- (if (= "ADDRESS_NUMBER" (vla-get-tagstring att))
- (vla-put-textstring att Hnum)
- ) ; end if
-
- ) ; foreach
-
- ) ;while
- (princ) ; exit neatly
- ) ; Defun
- (c:house) ;for testing remove after
- Now
- 2. street name
- Code:
- (vl-load-com)
- (defun c:hsn ( / cableno stname blkobj)
- (while (/= nil (setq Hnum (vla-get-textstring (vlax-ename->vla-object (car (entsel "\nSelect House number pick nothing to exit"))))))
- (setq blkobj (vlax-ename->vla-object (car (entsel "\nPick House block"))))
- (foreach att (vlax-invoke blkobj 'getattributes)
-
- (if (= "STREET_NAME" (vla-get-tagstring att))
- (vla-put-textstring att Hnum)
- ) ; end if
-
- ) ; foreach
-
- ) ;while
- (princ) ; exit neatly
- ) ; Defun
- (c:house) ;for testing remove after
拜托,你能为我再做一件事吗。制作第二个代码(街道地址)如下:
首先,我选择带有街道名称的文本,然后命令继续执行,我不需要再为街道名称选择源输入,只需要能够将其粘贴到多个块属性中。类似于MATCH属性的工作方式。您拾取源,然后所有单击都将相同的特性“粘贴”到不同的对象(在本例中为块)。
再一次,tnx! |