如何将多义线边长标注在边上,面积标注在多边形内
如何将多义线边长标注在边上要居中,面积标注在多边形内,也要居中。谢谢~~ <p>1.多段线只能说“段”长,段是直线段还是弧线段</p><p>2.“标注居中”是什么概念?</p><p>3.面积标注用(vla-get-area(vlax-ename->vla-object(car(entsel)))),</p><p> 文字居中是范围居中还是质心居中要说清楚</p> <p>确切说是lwpolyline,不用包括弧线;</p><p>边长标注居中就是先找到线段的中心然后平移到边长的边上,然后标注数字;</p><p>面积标注就是找到面积区域的重心作为标注的中心。</p><p>谢谢~~</p>;;大概意思是这样吧,自行再修改
(defun c:tt (/ pl pt pp p1 p2 an di pm aa pc)
(setq pl (entsel "\n选择lwpolyline: "))
(mapcar 'set '(pl pt) pl)
(setq pt (vlax-curve-getClosestPointTo pl pt)
pp (fix (vlax-curve-getParamAtPoint pl pt))
p1 (vlax-curve-getPointAtParam pl pp)
p2 (vlax-curve-getPointAtParam pl (1+ pp))
an (/ (* (angle p1 p2) 180.0) pi)
di (distance p1 p2)
pm (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2)
pl (vlax-ename->vla-object pl)
aa (vla-get-area pl)
)
(command "_.text" "_j" "_mc" "_non" pm "" an (rtos di 2 2))
(vla-getboundingbox pl 'p1 'p2)
(mapcar 'set '(p1 p2) (mapcar 'vlax-safearray->list (list p1 p2)))
(setq pc (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2))
(command "_.text" "_j" "_mc" "_non" pc "" an (rtos aa 2 2) "")
(princ)
) caoyin 发表于 2009-6-20 23:55 static/image/common/back.gif
请提供完整代码
页:
[1]