明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1722|回复: 4

如何将多义线边长标注在边上,面积标注在多边形内

[复制链接]
发表于 2009-6-20 23:06:00 | 显示全部楼层 |阅读模式
如何将多义线边长标注在边上要居中,面积标注在多边形内,也要居中。谢谢~~
发表于 2009-6-20 23:12:00 | 显示全部楼层

1.多段线只能说“段”长,段是直线段还是弧线段

2.“标注居中”是什么概念?

3.面积标注用(vla-get-area(vlax-ename->vla-object(car(entsel)))),

  文字居中是范围居中还是质心居中要说清楚

 楼主| 发表于 2009-6-20 23:19:00 | 显示全部楼层

确切说是lwpolyline,不用包括弧线;

边长标注居中就是先找到线段的中心然后平移到边长的边上,然后标注数字;

面积标注就是找到面积区域的重心作为标注的中心。

谢谢~~

发表于 2009-6-20 23:55:00 | 显示全部楼层
  1. ;;大概意思是这样吧,自行再修改
  2. (defun c:tt (/ pl pt pp p1 p2 an di pm aa pc)
  3.   (setq pl (entsel "\n选择lwpolyline: "))
  4.   (mapcar 'set '(pl pt) pl)
  5.   (setq pt (vlax-curve-getClosestPointTo pl pt)
  6.         pp (fix (vlax-curve-getParamAtPoint pl pt))
  7.         p1 (vlax-curve-getPointAtParam pl pp)
  8.         p2 (vlax-curve-getPointAtParam pl (1+ pp))
  9.         an (/ (* (angle p1 p2) 180.0) pi)
  10.         di (distance p1 p2)
  11.         pm (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2)
  12.         pl (vlax-ename->vla-object pl)
  13.         aa (vla-get-area pl)
  14.   )
  15.   (command "_.text" "_j" "_mc" "_non" pm "" an (rtos di 2 2))
  16.   (vla-getboundingbox pl 'p1 'p2)
  17.   (mapcar 'set '(p1 p2) (mapcar 'vlax-safearray->list (list p1 p2)))
  18.   (setq pc (mapcar '(lambda (x y) (/ (+ x y) 2.)) p1 p2))
  19.   (command "_.text" "_j" "_mc" "_non" pc "" an (rtos aa 2 2) "")
  20.   (princ)
  21. )

点评

编写的不错啊,不过只能标注1条线长,;思路可取了  发表于 2013-2-4 16:18

评分

参与人数 1金钱 +5 收起 理由
zhangzl + 5

查看全部评分

发表于 2014-1-16 21:51:58 | 显示全部楼层
caoyin 发表于 2009-6-20 23:55

请提供完整代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 15:58 , Processed in 0.165718 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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