找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 643|回复: 7

[求助]:等分弧长如何自动标注?

[复制链接]
发表于 2004-7-30 08:14:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如题,直线画多了,遇到弧线就傻眼了。谢谢指点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-7-30 08:23:58 | 显示全部楼层
先不说"自动", 如果手工你如何标注?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-30 08:33:11 | 显示全部楼层
如果是手动标注弧长我的步骤是:先使用DIV(等分)命令,等分出所需的段数,再有LIST命令测量出它们的长度,再用标注角度标上角度,然后把角度的数值改为弧长便可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-7-30 08:40:42 | 显示全部楼层
谢谢楼上朋友,也只好用这个办法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-30 09:05:29 | 显示全部楼层
最初由 龙啸天  发布
[B]如果是手动标注弧长我的步骤是:先使用DIV(等分)命令,等分出所需的段数,再有LIST命令测量出它们的长度,再用标注角度标上角度,然后把角度的数值改为弧长便可 [/B]


好办法,谢谢楼主!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-30 09:39:35 | 显示全部楼层
最初由 龙啸天  发布
[B]如果是手动标注弧长我的步骤是:先使用DIV(等分)命令,等分出所需的段数,再有LIST命令测量出它们的长度,再用标注角度标上角度,然后把角度的数值改为弧长便可 [/B]

却实是一个非常好的办法,我就是想不到,谢了,这应该加分嘛*-*2 *-*2 *-*2
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-30 10:53:17 | 显示全部楼层
自动标注等分弧长:
请参考:
[php]
(defun c:test ()
  (setq cur (entsel)
         pd (cadr cur)
        cur (car cur))
  (setvar "pdmode" 2)
  (setq  dn (getint "Enter the number of segments: "))
  (setq  p0 (getpoint "pick the point of Notes: "))
  (setq   l (vlax-curve-getdistatparam cur (vlax-curve-getendparam cur)))
  (vl-cmdf "divide" cur dn)
  (vl-cmdf "dimangular" pd "t" (strcat (itoa dn) "x" (rtos (/ l dn) 2 2)) p0 "exit")
)
[/php]
1. 准确地说 只是"半自动"---因为不知道原始数据;
2. 如果是非圆曲线可以LEADER 替代DIMANGULAR;
3. 该标注样式符合所在公司标准, 不知是否符合国内标准---这就是让楼主手动标注的原由.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-7-30 11:00:39 | 显示全部楼层

  1.   (defun c:hcbz  (/ DIM DIST DIST1 DIST2 EN END ENOBJ OSM P1 P2)
  2.   (vl-load-com)
  3.   (defun new-err  (s)
  4.     (setvar "OSMode" osm)
  5.     (setq *ERROR* old-err)
  6.     )
  7.   (setq        new-err        *ERROR*
  8.         *ERROR*        old-err)
  9.   (setq en (car (entsel "\n选择需标注的线:")))
  10.   (setq osm (getvar "OSMode"))
  11.   (setvar "OSMode" 544)
  12.   (setq enobj (vlax-ename->vla-object en))

  13.   (setq p1 (getpoint "\n选择第一点:"))
  14.   (while (not (vlax-curve-getDistAtPoint enobj p1))
  15.     (setq p1 (getpoint "\n第一点不在线上,重新选择第一点:"))
  16.     )
  17.   (setq dist1 (vlax-curve-getDistAtPoint enobj p1))

  18.   (setq p2 (getpoint "\n选择第二点:"))
  19.   (while (not (vlax-curve-getDistAtPoint enobj p2))
  20.     (setq p2 (getpoint "\n第二点不在线上,重新选择第二点:"))
  21.     )
  22.   (setq dist2 (vlax-curve-getDistAtPoint enobj p2))
  23.   (setq dist (rtos (abs (- dist1 dist2))))
  24.   (command "_dimlinear" p1 p2 pause)
  25.   (setq dim (entlast))
  26.   (setq end (entget dim))
  27.   (setq end (subst (cons 1 dist) (assoc 1 end) end))
  28.   (entmod end)
  29.   (setvar "OSMode" osm)
  30.   (setq *ERROR* old-err)
  31.   (princ)
  32.   )  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-14 04:23 , Processed in 0.416152 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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