各位老师看看。
由于工作的原因,需要在每个画好的闭合区域内有温室字样,如果一个一个复制粘贴的话,速度跟不上来。求方法。(defun c:tt ()
(setvar "cmdecho" 0)
(setq ss (ssget":s" '((0 . "LWPOLYLINE"))))
(repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i)))
box (ebox e)
P1 (car Box)
P2 (cadr Box)
P3 (mid p1 p2)
)
(vl-cmdf "-text" "j" "M" p3 5 0 "温室")
)
(setvar "cmdecho" 1)
(PRINC)
) 本帖最后由 ymcui 于 2015-6-2 17:24 编辑
(defun ebox (e / pa pb)
(Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
(setq pa (trans (vlax-safearray->list pa) 0 1)
pb (trans (vlax-safearray->list pb) 0 1)
)
(list pa pb)
)
这个是在网上找的.记不起是在那里找的了. 再上个图 谢谢大神。我运行一下。 ymcui 发表于 2015-6-2 17:27 static/image/common/back.gif
再上个图
大神,这个是带属性的么(跟随图层的)? ymcui 发表于 2015-6-2 17:21 static/image/common/back.gif
老师,参数类型错误: lselsetp nil。 (defun mid (p1 p2) (mapcar '* '(0.5 0.5 0.5) (mapcar '+ p1 p2))) ymcui 发表于 2015-6-3 08:09 static/image/common/back.gif
老师,给个完整的,谢谢老师。 (defun c:tt ()
(setvar "cmdecho" 0)
(defun ebox (e / pa pb)
(Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
(setq pa (trans (vlax-safearray->list pa) 0 1)
pb (trans (vlax-safearray->list pb) 0 1)
)
(list pa pb)
)
(setq ss (ssget":s" '((0 . "LWPOLYLINE"))))
(repeat (setq i (sslength ss))
(setq e (ssname ss (setq i (1- i)))
box (ebox e)
P3 (mapcar '* '(0.5 0.5 0.5)(mapcar '+ (car Box) (cadr Box)))
)
(vl-cmdf "-text" "j" "M" p3 5 0 "温室")
)
(setvar "cmdecho" 1)
(PRINC)
)
页:
[1]
2