明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3561|回复: 20

求助能否把N条直线的长度按图纸比例写在各直线上方,谢谢!

  [复制链接]
发表于 2011-1-4 14:10:31 | 显示全部楼层 |阅读模式
求助能否把N条直线的长度按图纸比例写在各直线上方,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-1-6 09:15:16 | 显示全部楼层
版主的程序如果再考虑文字角度与线平行就完满了
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2011-1-4 14:15:43 | 显示全部楼层
搜索本论坛后,找到有个相似的,只能显示但不能写入,请求各位大侠能否给修改一下,谢谢!
(defun c:tl()
(setq tleng 0)
(setq s (ssget))
(setq n (sslength s))
(setq index (- n 1))
(repeat n
(vl-load-com)
(setq ent (ssname s index))
(setq index (- index 1))
(setq curve-obj (vlax-ename->vla-object ent))
(setq leng (vlax-curve-getDistAtParam
curve-obj
(vlax-curve-getEndParam curve-obj)
)
)
(setq tleng (+ tleng leng))
(princ leng)
(princ "\n")
)
(setq prscreemtext (strcat "\n总共计算" (itoa n) "个对象,总长度为 " (rtos tleng 2 3)))
(princ prscreemtext)
(princ)
)
发表于 2011-1-4 15:25:04 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-1-4 21:36 编辑

  1. (defun c:tt(/ ss i k scale en dist dist1 dist2 pt pt0 pt1 ang)
  2.   (initget 1)
  3.   (setq scale (getreal "\n比例尺 1:"))
  4.   (initget 1)
  5.   (setq h (getreal "\n字高:"))
  6.   
  7.   (setq ss (ssget '((0 . "*polyline"))))
  8.   (if ss
  9.     (progn
  10.       (setq i 0)
  11.       (repeat (sslength ss)
  12.       (setq en (ssname ss i)
  13.             k 1
  14.             dist0 0
  15.             PT0 (vlax-curve-getStartPoint EN ))
  16.         (repeat (fix (vlax-curve-getEndParam en))
  17.           (setq dist1 (vlax-curve-getDistAtParam en k)
  18.                 PT1 (vlax-curve-getPointAtParam EN k)
  19.                 ANG (ANGLE PT0 PT1)
  20.                 dist (- dist1 dist0)
  21.                 dist (/ dist scale)
  22.                 dist0 dist1
  23.                 PT0 PT1
  24.                 PT (POLAR (vlax-curve-getPointAtParam EN (- k 0.5)) (+ ANG (/ PI 2)) (* 2 H))
  25.                 )
  26.           (entmake (list '(0 . "text") (cons 1 (rtos dist 2 0)) (cons 10 pt) (cons 40 h)))
  27.           (setq k (1+ k))
  28.           )
  29.         (setq i (1+ i))
  30.         )
  31.       
  32.       )
  33.     )
  34.   )
发表于 2011-1-5 01:20:12 | 显示全部楼层
线段标注边长程序
注意:在使用时,可根椐需要设置当前标注样式即可。如此贴中可将标注样式中尺寸线、界线去掉后即可达到要求。

以下为此程序演示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

如果是圆弧线标注的是弦长  发表于 2011-1-6 21:47
发表于 2011-1-5 08:36:58 | 显示全部楼层
版主的程序很好,描图时很有用。
(entmake (list '(0 . "text") (cons 1 (rtos dist 2 0)) (cons 10 pt) (cons 40 h)))
改成
(entmake (list '(0 . "text") (cons 1 (rtos dist 2 2)) (cons 10 pt) (cons 40 h)))
就可以显示小数了。

点评

不错!  发表于 2011-12-24 09:13
发表于 2011-1-5 09:00:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2011-1-6 09:09:29 | 显示全部楼层
支持程序优化,支持源码
 楼主| 发表于 2011-1-6 09:16:32 | 显示全部楼层
感谢Gu_xl 版主,但是出来的数字有点乱,见附图,能否调整?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2011-1-6 09:57:21 | 显示全部楼层
如果把"LINE" "直线",("ARC" "圆弧"),("CIRCLE" "圆"),("LWPOLYLINE" "多段线"),("ELLIPSE" "椭圆"),("SPLINE" "样条线")都能写入,那就更完美了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:24 , Processed in 0.207180 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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