找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1098|回复: 12

[求助] [求助]:如何做到框选这些标注后就生成下面红色的标注?

[复制链接]
发表于 2009-3-22 19:19:21 | 显示全部楼层 |阅读模式

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

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

×
如何做到框选这些标注后就生成下面红色的标注?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-3-22 19:31:35 | 显示全部楼层
你是指自动合并尺寸并另标注吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-3-22 21:33:02 | 显示全部楼层
思路:复制选集中的一个标注,提取选集的13,14成表,移除13和14相同的项,得到新标注的两个端点,修改复制的那个标注定义数据。标注位置可以自己指定,也可由程序自行计算位置。

  1. (vl-load-com)
  2. (defun c:t1 ()
  3.   (defun *error* (msg)
  4.     (print msg)
  5.     (print "\n检查标注是否都在一条线上或有重合?")
  6.     (entdel (entlast))
  7.     (setq *error* nil
  8.           dim-dxf-lst
  9.            nil
  10.     )
  11.   )
  12.   (while (and
  13.            (not (prompt "\n选择需要累加的标注:"))
  14.            (setq dim-ss (ssget '((0 . "DIMENSION") (1 . ""))))
  15.            (> (setq dim-ss-n (sslength dim-ss)) 1)
  16.            (vl-cmdf "copy" (ssname dim-ss 0) "" '(0 0) '(0 0))
  17.            (setq
  18.              dim-dxf-14          (cdr (assoc 14 (entget (ssname dim-ss 0))))
  19.              dim-dxf-10          (cdr (assoc 10 (entget (ssname dim-ss 0))))
  20.              dim-dis-1410 (distance dim-dxf-14 dim-dxf-10)
  21.              dim-ang-1410 (angle dim-dxf-14 dim-dxf-10)
  22.              dim-dxf-10          (polar dim-dxf-10
  23.                                  dim-ang-1410
  24.                                  (* dim-dis-1410 (1- dim-ss-n))
  25.                           )
  26.            )
  27.          )
  28.     (if        (setq tmp (getpoint "\n指定尺寸标注位置:"))
  29.       (setq dim-dxf-10 tmp)
  30.     )
  31.     (setq dim-dxf-lst nil)
  32.     (repeat dim-ss-n
  33.       (setq dim-dxf-lst
  34.              (append
  35.                (list
  36.                  (cdr
  37.                    (assoc
  38.                      13
  39.                      (entget (ssname dim-ss (setq dim-ss-n (1- dim-ss-n))))
  40.                    )
  41.                  )
  42.                  (cdr (assoc 14 (entget (ssname dim-ss dim-ss-n))))
  43.                )
  44.                dim-dxf-lst
  45.              )
  46.       )
  47.     )
  48.     (foreach m dim-dxf-lst
  49.       (setq i 0)
  50.       (foreach n dim-dxf-lst
  51.         (if (equal m n)
  52.           (if (> (setq i (1+ i)) 1)
  53.             (setq dim-dxf-lst (vl-remove m dim-dxf-lst))
  54.           )
  55.         )
  56.       )
  57.     )
  58.     (setq dim-ent (entget (entlast))
  59.           dim-ent (subst (cons 13 (nth 0 dim-dxf-lst))
  60.                          (assoc 13 dim-ent)
  61.                          dim-ent
  62.                   )
  63.           dim-ent (subst (cons 14 (nth 1 dim-dxf-lst))
  64.                          (assoc 14 dim-ent)
  65.                          dim-ent
  66.                   )
  67.           dim-ent (subst (cons 10 dim-dxf-10) (assoc 10 dim-ent) dim-ent)
  68.     )
  69.     (entmod dim-ent)
  70.   )
  71. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-22 23:50:09 | 显示全部楼层
楼上kmdz 真是高人,但有个问题,标注线是在一条直线上,但首尾标注点不对齐的话,好像就处理不了。

而且,可不可以改成只需要确定偏移的方向,就可以自动在离标注线500的位置进行标注呢?

(setq pt10  (lhj_dxf (entget (ssname dim-ss 0)) 10)
              pint  (inters pt
                            (polar pt (+ ang lpi2) 1000)
                            pt10
                            (polar pt10 ang 1000)
                            nil
                    )
ang   (angle pint pt)
)
(setq dim-dxf-10 (polar pt10 ang 500))
我改成这样怎么不行呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2009-3-25 09:51:23 | 显示全部楼层
急用,哪位高手帮忙完善一下吗?有大量的图需要这样处理的.
这么多人关注,怎么都没出招呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-3-25 10:33:48 | 显示全部楼层
while前加
  1. (if (not *dim-dis-1410*) (setq *dim-dis-1410* 500.))
  2.         (if (not (setq *dim-dis-1410* (getdist
  3.         (strcat "\n指定基线间距<" (rtos *dim-dis-1410* 2 2) ">"))))
  4.         (setq *dim-dis-1410* 500.)
  5.         )

修改
  1. dim-dxf-10  (polar dim-dxf-10  dim-ang-1410  (* dim-dis-1410 (1- dim-ss-n)) )
复制代码



  1. dim-dxf-10  (polar dim-dxf-10  dim-ang-1410 *dim-dis-1410* )
复制代码

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

使用道具 举报

 楼主| 发表于 2009-3-25 13:33:33 | 显示全部楼层
kmdz  
我觉得思路可不可以这样:复制选集中的一个标注,提取选集的13,14成表,获取13和14距离最远的端点,得到新标注的两个端点,修改复制的那个标注定义数据。
而且可以看看这个文件,为何条件都满足了,就是标不了呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:00 , Processed in 0.489906 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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