明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1651|回复: 5

如何将文本写入闭合多段线内部?

[复制链接]
发表于 2005-1-5 20:47:00 | 显示全部楼层 |阅读模式
如何将闭合多段线的标高值写在闭合多段线内部?


只要文本的插入点是在闭合多段线里面,任何地方都可以!


这个插入点要怎么找呢?


帮帮忙!
发表于 2005-5-26 14:56:00 | 显示全部楼层
昏了,直接点进去标注不就可以了,这还用问啊,你是不是没有表达清楚啊,你到底是什么意思?
发表于 2005-5-26 19:49:00 | 显示全部楼层
楼主的意思是要程序自动找出一个在封闭pline内的点,这样岂不是省很多事情
发表于 2005-5-26 19:55:00 | 显示全部楼层
有一个建议,找出pline内最大内接加圆,其圆心即是最佳标注位置
发表于 2005-5-27 11:24:00 | 显示全部楼层
我这里倒是有一个原创的程序,大概可以帮到你!! 这是一个将一条闭合多段线的每段线的长度标到内部的程序,你试一试吧. (defun c:ccbz(/ s1 mm nn lin len i pp1 pp2 lon ang pp3 pp4 en th bb j ik2 hi1 len
lin1 lin2 xx1 xx2 xx3 num yy1 yy2 yy3 right lift up down lin3 dow)
(setq ik2 "Standard")
(setq hi1 4.0)
(prompt "请选择一条闭合线:")
(setq s1(ssget ":s"))
(setq mm (entget (ssname s1 0)))
(foreach nn mm
(if (or (= 10 (car nn)) (= 11 (car nn)))
(progn
(setq lin (cons (cdr nn) lin))
(setq lin1 (cons (cadr nn) lin1))
(setq lin2 (cons (caddr nn) lin2))
)
)
)
(setq num (length lin1))
(setq i 0)
(setq xx1 (nth i lin1))
(setq xx2 xx1)
(setq yy1 (nth i lin2))
(setq yy2 yy1)
(while (> num (+ i 1))
(setq xx3 (nth (+ i 1) lin1))
(if (> xx3 xx1)
(setq xx1 xx3))
(if (< xx3 xx2)
(setq xx2 xx3))
(setq yy3 (nth (+ i 1) lin2))

(if (> yy3 yy1)
(setq yy1 yy3))
(if (< yy3 yy2)
(setq yy2 yy3))
(setq i (1+ i))
)
(setq right (itoa (vl-position xx1 lin1)))
(setq lift (itoa (vl-position xx2 lin1)))
(setq up (itoa (vl-position yy1 lin2)))
(setq down (itoa (vl-position yy2 lin2)))
(setq lin3 (list right lift up down))
(setq lin3 (acad_strlsort lin3))
(setq dow (vl-position down lin3))
(if (= dow 3)
(setq j 0)
(setq j (+ dow 1))
)
(if (= (nth j lin3) right)
(setq lin (reverse lin))
)
(setq len (length lin))
(setq i 0)
(while (> len 1)
(setq pp1 (nth i lin))
(setq pp2 (nth (+ i 1) lin))
(setq lon (distance pp1 pp2))
(setq ang (* (/ (angle pp1 pp2) pi) 180))
(if (and (<= ang 270) (> ang 90))
(setq ang (+ ang 180))
)
(setq pp3 (polar pp1 (angle pp1 pp2) (/ lon 2)))
(setq pp4 (polar pp3 (- (angle pp1 pp2) (/ pi 2)) hi1))
(command "_.text" "s" ik2 "j" "m" pp4 hi1 ang (rtos lon 2 2))
(setq len (- len 1))
(setq i (+ i 1))

)

)
发表于 2005-5-27 13:12:00 | 显示全部楼层
楼上的判断顺时、针逆时针的方法倒是可以借鉴
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 11:52 , Processed in 0.176587 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表