找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2210|回复: 13

[日积月累]:对垂直、水平标注按间距分列/行对齐(附件更新)

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-5-27 06:39:15 | 显示全部楼层 |阅读模式

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

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

×
应一位网友所写的标注对齐程序。

注意:测试请下载附件,以下代码不能直接使用!!

  1. (defun c:AlDim (/ ss ssl i e el p dl tf dist)
  2.   (if (and (setq ss (ssget '((0 . "dimension") (70 . 32))))
  3.            (setq dist (getdist "\n输入间距: "))
  4.       )
  5.     (progn
  6.       (command ".undo" "be")
  7.       (setq ssl        (sslength ss)
  8.             i        -1
  9.       )
  10.       (repeat ssl
  11.         (setq e         (ssname ss (setq i (1+ i)))
  12.               el (entget e)
  13.               p         (cdr (assoc 10 el))
  14.               dl (cons (list p e) dl)
  15.         )
  16.         (if
  17.           (and (not tf) (equal (cdr (assoc 50 el)) (/ pi 2.) 1e-6)) ;_ver
  18.            (setq tf t)
  19.         )
  20.       )
  21.       (if tf
  22.         (setq dl ([URL=http://www.xdcad.net/forum/showthread.php?postid=1609825#post1609825][color=blue][u]ea:sort_entity[/u][/color][/URL]  dl 1 4 dist)) ;_ver
  23.         (setq dl ([URL=http://www.xdcad.net/forum/showthread.php?postid=1609825#post1609825][color=blue][u]ea:sort_entity[/u][/color][/URL]  dl 0 1 dist))
  24.       )
  25.       (setq p (caaar dl))
  26.       (foreach x dl
  27.         (foreach d x
  28.           (setq el (entget (cadr d)))
  29.           (entmod (subst (cons 10
  30.                                (if tf
  31.                                  (list (car p) (cadar d))
  32.                                  (list (caar d) (cadr p))
  33.                                )
  34.                          )
  35.                          (assoc 10 el)
  36.                          el
  37.                   )
  38.           )
  39.         )
  40.         (setq p        (if tf
  41.                   (mapcar '+ (list dist 0. 0.) p)
  42.                   (mapcar '- p (list 0. (- dist) 0.))
  43.                 )
  44.         )
  45.       )
  46.       (command ".undo" "end")
  47.     )
  48.   )
  49.   (princ)
  50. )
  51. (princ "\nStart command with AlDim , eachy [[url]www.xdcad.net[/url]]!")
  52. (princ)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-5-27 09:23:15 | 显示全部楼层
个人觉得没有aeo斑竹的具有相同功能的程序好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2006-5-27 09:32:09 | 显示全部楼层
这里有一个
http://www.xdcad.net/forum/showthread.php?s=&threadid=51960
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2006-5-27 17:01:07 | 显示全部楼层
最初由 xbx7920 发布
[B]个人觉得没有aeo斑竹的具有相同功能的程序好。 [/B]


一直想写一个圆弧标注对齐的,就是没时间.

圆弧标注要移动一下位置很麻烦,比直线的麻烦的多.

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2006-5-28 07:22:39 | 显示全部楼层
最初由 aeo 发布
[B]

一直想写一个圆弧标注对齐的,就是没时间.

圆弧标注要移动一下位置很麻烦,比直线的麻烦的多.

不知谁写了... [/B]

  1. (defun c:aladim        (/ ss ssl i e el typ r dis pc dl)
  2.   (if
  3.     (and (setq ss (ssget '((0 . "dimension") (100 . "*AngularDimension"))))
  4.          (setq dis (getdist "\n间距: "))
  5.     )
  6.      (progn
  7.        (setq ssl (sslength ss)
  8.              i         -1
  9.        )
  10.        (repeat ssl
  11.          (setq e   (ssname ss (setq i (1+ i)))
  12.                el  (entget e)
  13.                typ (cdr (assoc 100 (reverse el)))
  14.          )
  15.          (if (wcmatch typ "*2*")
  16.            (setq pcen (inters (cdr (assoc 10 el))
  17.                               (cdr (assoc 15 el))
  18.                               (cdr (assoc 14 el))
  19.                               (cdr (assoc 13 el))
  20.                               nil
  21.                       )
  22.                  r    (distance pcen (cdr (assoc 16 el)))
  23.            )
  24.            (setq pcen (cdr (assoc 15 el))
  25.                  r    (distance pcen (cdr (assoc 10 el)))
  26.            )
  27.          )
  28.          (setq dl (cons (list r pcen e) dl))
  29.        )
  30.        (setq dl ([url=http://www.xdcad.net/forum/showthread.php?postid=1609825#post1609825][color=blue][u]ea:sort_entity[/u][/color][/url] dl nil nil dis))
  31.        (setq pc        (cadaar dl)
  32.              r        (caaar dl)
  33.              dl        (mapcar '(lambda (x) (mapcar 'last x)) dl)
  34.        )
  35.        (foreach        a dl
  36.          (foreach d a
  37.            (setq el (entget d)
  38.                  p  (cdr (assoc 11 el))
  39.            )
  40.            (entmod (subst (cons 11 (polar pc (angle pc p) r))
  41.                           (assoc 11 el)
  42.                           el
  43.                    )
  44.            )
  45.          )
  46.        )
  47.        (setq r (+ r dis))
  48.      )
  49.   )
  50.   (princ)
  51. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-28 20:54:12 | 显示全部楼层

Re: [日积月累]:对垂直、水平标注按间距分列/行对齐(附件更新)

最初由 eachy 发布
[B]应一位网友所写的标注对齐程序。

注意:测试请下载附件,以下代码不能直接使用!!
[CODE]
(defun c:AlDim (/ ss ssl i e el p dl tf dist)
  (if (and (setq ss (ssget '((0 . "dimension"... [/B]


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

使用道具 举报

发表于 2006-5-29 22:11:19 | 显示全部楼层
ea的程序有个问题(不知道是不是编程思路本来就是这样),假设输入的间距是800,而如果两行尺寸之间的距离不足800,那么程序就将两行标注对齐。
是不是应该加一个开关,询问究竟是要将多行标注全部对齐,还是调整标注的间距?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2006-5-29 22:52:50 | 显示全部楼层
最初由 l19811102 发布
[B]ea的程序有个问题(不知道是不是编程思路本来就是这样),假设输入的间距是800,而如果两行尺寸之间的距离不足800,那么程序就将两行标注对齐。
是不是应该加一个开关,询问究竟是要将多行标注全部对齐,还是调整标... [/B]

查看 ea:sort_entity 的说明文件,将dis修改为一个合适的值或者在图中指定
  1. (ea:sort_entity dl nil nil [color=blue][B]dis[/B][/color]))
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-26 10:42:45 | 显示全部楼层
非常感谢楼主提供.......楼主,能帮俺写一个能标注当一个角度大于180度的程序吗????
万分感激!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 1489个

财富等级: 财源广进

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

使用道具 举报

发表于 2009-12-31 15:34:01 | 显示全部楼层
有了爱心币,下了两次都没有东西,快查查啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 00:31 , Processed in 0.263929 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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