我还有梦想 发表于 2015-6-2 17:05:15

各位老师看看。

由于工作的原因,需要在每个画好的闭合区域内有温室字样,如果一个一个复制粘贴的话,速度跟不上来。求方法。

ymcui 发表于 2015-6-2 17:21:11

(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:22:17

本帖最后由 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:31

再上个图               

我还有梦想 发表于 2015-6-2 17:32:29

谢谢大神。我运行一下。

我还有梦想 发表于 2015-6-2 17:33:29

ymcui 发表于 2015-6-2 17:27 static/image/common/back.gif
再上个图

大神,这个是带属性的么(跟随图层的)?

我还有梦想 发表于 2015-6-2 17:37:19

ymcui 发表于 2015-6-2 17:21 static/image/common/back.gif


老师,参数类型错误: lselsetp nil。

ymcui 发表于 2015-6-3 08:09:41

(defun mid (p1 p2) (mapcar '* '(0.5 0.5 0.5) (mapcar '+ p1 p2)))

我还有梦想 发表于 2015-6-3 12:14:17

ymcui 发表于 2015-6-3 08:09 static/image/common/back.gif


老师,给个完整的,谢谢老师。

ymcui 发表于 2015-6-3 13:49:09

(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
查看完整版本: 各位老师看看。