找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4210|回复: 42

[求助] [求助]:有哪个大侠也搞个单独的尺寸断开及合并程序,让小弟也学习学习!

[复制链接]
发表于 2003-12-9 18:03:27 | 显示全部楼层 |阅读模式

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

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

×
带一小弟一程吧!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-12-9 20:53:04 | 显示全部楼层
试试吧~
2003.12.11.08.53(LM):6楼  Qlin 斑竹提出的错误已经修改,同时,断开程序自动调整尺寸界线的长度相等,看起来会比较整齐。

  1.   [FONT=courier new]
  2. ;_长度型标注断开 by wkai
  3. ;_2003.12.11.08.53(LM)
  4. ;_2003.12.09.20.48
  5. (defun c:db (/ e e1 e2 p1 p2 pt_lst ep1 ep2 p_mid pt3 ty_dm)
  6.   (vl-load-com)
  7.   (while (not e) (setq e (car (entsel))))
  8.   (setq e1 (entget e))
  9.   (if (/= "DIMENSION" (cdr (assoc 0 e1)))
  10.     (princ "\n你选择的不是尺寸标注!")
  11.     (progn
  12.       (redraw e 3)
  13.       (setq pt3 (getpoint "\n 断开点<等分>:"))
  14.       (redraw e 4)
  15.       (setq ty_dm (cdr (assoc 70 e1)))
  16.       (if (or (= ty_dm 32) (= ty_dm 33))
  17.         (progn
  18.           (setq ep1 (cdr (assoc 13 e1)))
  19.           (setq ep2 (cdr (assoc 14 e1)))
  20.           (if pt3
  21.             (setq p_mid pt3)
  22.             (setq p_mid        (list (/ (+ (car ep1) (car ep2)) 2)
  23.                               (/ (+ (cadr ep1) (cadr ep2)) 2)
  24.                               )
  25.                   )
  26.             )
  27.           (if (= ty_dm 33)
  28.             (setq p_mid
  29.                    (inters p_mid
  30.                            (polar p_mid (+ (angle ep1 ep2) (/ pi 2)) 1000)
  31.                            ep1
  32.                            ep2
  33.                            nil
  34.                            )
  35.                   )
  36.             )
  37.           (if (= ty_dm 32)
  38.             (setq p_mid
  39.                         (inters        p_mid
  40.                                 (polar p_mid (+ (cdr (assoc 50 e1)) (/ pi 2)) 1000)
  41.                                 ep1
  42.                                 (polar ep1 (cdr (assoc 50 e1)) 1000)
  43.                                 nil
  44.                                 )
  45.                   ep2
  46.                         (inters        ep2
  47.                                 (polar ep2 (+ (cdr (assoc 50 e1)) (/ pi 2)) 1000)
  48.                                 ep1
  49.                                 (polar ep1 (cdr (assoc 50 e1)) 1000)
  50.                                 nil
  51.                                 )
  52.                   )
  53.             )
  54.           (command "copy" e "" "0,0,0" "@")
  55.           (setq e2 (entget (entlast)))
  56.           (if (equal (car ep1) (car ep2) 0.0001)
  57.             (setq pt_lst
  58.                    (vl-sort (list ep1 ep2 p_mid)
  59.                             '(lambda (s1 s2) (< (cadr s1) (cadr s2)))
  60.                             )
  61.                   )
  62.             (setq
  63.               pt_lst
  64.                (vl-sort        (list ep1 ep2 p_mid)
  65.                         '(lambda (s1 s2) (< (car s1) (car s2)))
  66.                         )
  67.               )
  68.             )
  69.           (setq
  70.             e1 (subst (cons 13 (nth 0 pt_lst)) (assoc 13 e1) e1)
  71.             )
  72.           (setq
  73.             e1 (subst (cons 14 (nth 1 pt_lst)) (assoc 14 e1) e1)
  74.             )
  75.           (setq        e2 (subst (cons 13 (nth 1 pt_lst))
  76.                           (assoc 13 e2)
  77.                           e2
  78.                           )
  79.                 )
  80.           (setq        e2 (subst (cons 14 (nth 2 pt_lst))
  81.                           (assoc 14 e2)
  82.                           e2
  83.                           )
  84.                 )

  85.           (entmod e1)
  86.           (entmod e2)
  87.           )
  88.         )
  89.       )
  90.     )
  91.   )


  92. ;_长度型标注合并  by wkai
  93. ;_2003.12.09.20.48
  94. (defun c:dj (/ ent1 ent2 e1 e2 e1p1 e1p2 e2p1 e2p2 pt_lst)
  95.   (vl-load-com)
  96.   (if (setq e1 (car (entsel)))
  97.     (setq ent1 (entget e1))
  98.     )
  99.   (redraw e1 3)
  100.   (if (setq e2 (car (entsel)))
  101.     (setq ent2 (entget e2))
  102.     )
  103.   (redraw e2 3)
  104.   (if (or (/= "DIMENSION" (cdr (assoc 0 ent1)))
  105.           (/= "DIMENSION" (cdr (assoc 0 ent2)))
  106.           )
  107.     (princ "\n请选择尺寸标注!")
  108.     (progn
  109.       (redraw e1 4)
  110.       (redraw e2 4)
  111.       (setq e1p1 (cdr (assoc 13 ent1))
  112.             e1p2 (cdr (assoc 14 ent1))
  113.             e2p1 (cdr (assoc 13 ent2))
  114.             e2p2 (cdr (assoc 14 ent2))
  115.             )
  116.       (if (= 33 (cdr (assoc 70 ent1)))
  117.         (progn
  118.           (setq
  119.             e2p1
  120.              (inters e2p1
  121.                      (polar e2p1 (+ (angle e1p1 e1p2) (/ pi 2)) 1000)
  122.                      e1p1
  123.                      e1p2
  124.                      nil
  125.                      )
  126.             )
  127.           (setq
  128.             e2p2
  129.              (inters e2p2
  130.                      (polar e2p2 (+ (angle e1p1 e1p2) (/ pi 2)) 1000)
  131.                      e1p1
  132.                      e1p2
  133.                      nil
  134.                      )
  135.             )
  136.           )
  137.         )
  138.       (setq pt_lst (list e1p1 e1p2 e2p1 e2p2))
  139.       (if (equal (car (nth 0 pt_lst)) (car (nth 1 pt_lst)) 0.0001)
  140.         (setq pt_lst
  141.                (vl-sort        pt_lst
  142.                         '(lambda (s1 s2) (< (cadr s1) (cadr s2)))
  143.                         )
  144.               )
  145.         (setq
  146.           pt_lst
  147.            (vl-sort pt_lst
  148.                     '(lambda (s1 s2) (< (car s1) (car s2)))
  149.                     )
  150.           )
  151.         )
  152.       (setq ent1 (subst (cons 13 (nth 0 pt_lst)) (assoc 13 ent1) ent1))
  153.       (setq ent1 (subst        (cons 14 (nth (- (length pt_lst) 1) pt_lst))
  154.                         (assoc 14 ent1)
  155.                         ent1
  156.                         )
  157.             )
  158.       (entmod ent1)
  159.       (entdel e2)
  160.       )
  161.     )
  162.   )

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

使用道具 举报

发表于 2003-12-10 12:26:13 | 显示全部楼层
不是用于机械方面的吧?
能否解释一下, 什么是"尺寸标注的断开和合并", 一般用于什么情况下?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-12-10 17:04:17 | 显示全部楼层
其實在你可以下載免費迷你建筑工具,免費迷你建筑工具里面用這個功能的.在明經通道里有。http://www.mjtd.com
http://www.mjtd.com/download/tools/maicy/a14.zip。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-11 01:38:26 | 显示全部楼层
最初由 wkai 发布
[B]
(setq p_mid
(inters p_mid
(polar p_mid (+ (angle ep1 ep2)[/COLOR] (/ pi 2)) 1000)
ep1
ep2
nil
)
)
[/B]

引文内红色代码所计算的角度有误,当两个定义点连线与尺寸线不平行时算出的角度是错误的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-11 09:02:57 | 显示全部楼层
最初由 Qlin 发布
[B]
当两个定义点连线与尺寸线不平行时算出的角度是错误的。 [/B]


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

使用道具 举报

发表于 2003-12-11 10:03:09 | 显示全部楼层
wkai and 诸位: 解释一下 什么是"尺寸标注的断开和合并"?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2003-12-12 11:39:57 | 显示全部楼层
强 就一个字,向大侠学习!
  但它怎么不能在R14下运行呢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-12 12:16:17 | 显示全部楼层
最初由 cjrun 发布
[B]强 就一个字,向大侠学习!
  但它怎么不能在R14下运行呢! [/B]


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

使用道具 举报

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

使用道具 举报

发表于 2003-12-17 20:20:38 | 显示全部楼层
太感谢了,经常要用到晓东工具的这几个功能,却一直不知道怎么弄的,现在可以好好看看了!
对了,那个尺寸翻转非常实用,如果不用晓东的API,该如何实现呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-13 17:09:54 | 显示全部楼层
1、拆分尺寸的标注点不是操作点取的点。
2、合并尺寸不能框选。
是否可以改进一下?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-8-3 18:24:20 | 显示全部楼层
不错,相当好用,顺便问一句,为什么有的标注是块,有的是零散的。如果是零散的,那么,这个程序就应改进一下了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 04:31 , Processed in 0.318429 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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