找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: HORSE_XU

[求助] 请教一下各位如何才能实现标注的修改

[复制链接]
 楼主| 发表于 2013-5-22 23:40:04 | 显示全部楼层
Lispboy 发表于 2013-5-22 23:35
组吗50 得到转角,根据P13用 POLAR 距离 角度 算出 P14,修改后,两边的尺寸界线就一齐了。

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

使用道具 举报

 楼主| 发表于 2013-5-22 23:43:27 | 显示全部楼层
Lispboy 发表于 2013-5-22 23:35
组吗50 得到转角,根据P13用 POLAR 距离 角度 算出 P14,修改后,两边的尺寸界线就一齐了。

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

使用道具 举报

发表于 2013-5-23 00:21:30 | 显示全部楼层
HORSE_XU 发表于 2013-5-22 21:43
刚才说错了,它是有50这个祖玛,但它一直都是0撒

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

使用道具 举报

已领礼包: 10249个

财富等级: 富甲天下

发表于 2013-5-23 08:11:09 | 显示全部楼层
本帖最后由 zxq0220 于 2013-5-23 08:16 编辑
  1. ;;;编写: BDYCAD
  2. ;;;时间: 2005-03-18
  3. ;;;开发用时 26分钟
  4. ;;;功能: 尺寸驱动
  5. (defun c:tt(/ BLB EP ESPL N-EP N-SP NEW-T SD SD-DXF SEA SEB SP SS1 SS2 SS3)
  6. (setq SD (entsel "\n选择驱动尺寸:"))
  7. (if SD
  8. (PROGN
  9. (SETQ SD-DXF (ENTGET (CAR SD)))
  10. (WHILE (NOT (wcmatch (CDR (ASSOC 0 SD-DXF)) "*DIM*"))
  11. (setq SD (entsel "\n选择驱动尺寸:"))
  12. (SETQ SD-DXF (ENTGET (CAR SD))))
  13. (SETQ SP (CDR (ASSOC 13 SD-DXF))
  14. EP (CDR (ASSOC 14 SD-DXF))
  15. ESPL (DISTANCE SP EP)
  16. SEA (ANGLE SP EP)
  17. SEB (ANGLE EP SP)
  18. NEW-T (getdist "\n新的长度:"))
  19. (while (eq nil NEW-T)
  20. (setq NEW-T (getdist "\n新的长度:")))
  21. (if NEW-T
  22. (progn
  23. (setq BLB (* 0.5 (abs (- NEW-T ESPL))))
  24. (if (> ESPL NEW-T )
  25. (setq N-SP (POLAR SP SEA BLB)
  26. N-EP (POLAR EP (+ PI SEA) BLB))
  27. (setq N-SP (POLAR SP SEB BLB)
  28. N-EP (POLAR EP (+ PI SEB) BLB))
  29. )
  30. (setvar "osmode" (logior (getvar "osmode") 16384))
  31. (setvar "cmdecho" 0)
  32. (vl-cmdf "_.undo" "_group")
  33. (SETQ SS1 (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
  34. SS2 (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
  35. )
  36. (IF SS1
  37. (COMMAND "STRETCH" (SSGET "C" (POLAR SP (+ PI (* 0.25 PI)) 0.4)(POLAR SP (* 0.25 PI) 0.4))
  38. ""SP N-SP))
  39. (IF SS2
  40. (COMMAND "STRETCH" (SSGET "C" (POLAR EP (+ PI (* 0.25 PI)) 0.4)(POLAR EP (* 0.25 PI) 0.4))
  41. ""EP N-EP))
  42. (vl-cmdf "_.undo" "_end")
  43. (setvar "osmode" (logand (getvar "osmode") 49151))
  44. (PRINC"\n编写:BDYCAD\n尺寸驱动程序运行完毕, 欢迎使用.谢谢!")))
  45. )
  46. )
  47. (princ)
  48. )

评分

参与人数 1D豆 +10 收起 理由
XDSoft + 10 热心帮忙奖!

查看全部评分

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

使用道具 举报

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

使用道具 举报

发表于 2013-5-23 11:38:31 | 显示全部楼层
[pcode=lisp,true](defun c:tt (/ e el nl l p1 p2 obj bn an p13 p14)
  (while (and (setq e (car (entsel "\nSelect Dim: ")))
       (= (cdr (assoc 0 (setq el (entget e)))) "DIMENSION")
       (setq nl (getdist "\nNew Length: "))
       (not (zerop nl))
  )
    (setq obj (vlax-ename->vla-object e)
   bn  (vla-get-objectname obj)
   p1  (cdr (assoc 13 el))
   p2  (cdr (assoc 14 el))
   l   (cdr (assoc 42 el))
    )
    (cond
      ((= bn "AcDbAlignedDimension")
       (setq p13 (polar p1 (angle p2 p1) (* (- nl l) 0.5))
      p14 (polar p2 (angle p1 p2) (* (- nl l) 0.5))
       )
      )
      ((= bn "AcDbRotatedDimension")
       (setq an  (cdr (assoc 50 el))
      p13 (polar p1 (+ an pi) (* (- nl l) 0.5))
      p14 (polar p2 an (* (- nl l) 0.5))
       )
      )
      (t)
    )
    (setq el (subst (cons 13 p13) (assoc 13 el) el)
   el (subst (cons 14 p14) (assoc 14 el) el)
    )
    (entmod el)
  )
  (princ)
)[/pcode]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-23 12:22:53 | 显示全部楼层

哎哟,真感谢这位大神的程序,功能能实现了,不过我还得改改,真的很感谢,非常感谢,继续支持~!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-23 12:49:26 | 显示全部楼层
Free-Lancer 发表于 2013-5-23 11:38
(defun c:tt (/ e el nl l p1 p2 obj bn an p13 p14)
  (while (and (setq e (car (entsel "\nSelect Dim: ...

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2013-5-23 14:40:31 | 显示全部楼层
Free-Lancer 发表于 2013-5-23 13:11
改好后贴上来和大家分享分享

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

使用道具 举报

 楼主| 发表于 2013-5-25 11:13:20 | 显示全部楼层
2012淡然之马 发表于 2013-5-23 08:34
这个对我来说,用不到,不过
支持一下

free-lancer大神,我对你的代码进行了深入修改,你的代码里对于线性标注的自行判断存在一个条件限制,就是当用户从右往左(左撇子)拉取的时候,它不能改变,所以我对这一段进行了一个预前角度判断,下面分享下代码,说明一下,变量ty13 ty14 ty42 ty50分别表示祖玛为13 14 42 50的元素属性。
[pcode=lisp,true]                                        (= vlx_name "AcDbRotatedDimension")
                                        (progn
                                                (setq ty13 (cdr (assoc 13 ele_im)))
                                                (setq ty14 (cdr (assoc 14 ele_im)))
                                                (setq ty42 (cdr (assoc 42 ele_im)))
                                                (setq ty50 (cdr (assoc 50 ele_im)))
                                                (setq e_dis (/ ty42 e_acc))
                                                (setq ty13x (car ty13))
                                                (setq ty14x (car ty14))
                                                (setq ty13y (cadr ty13))
                                                (setq ty14y (cadr ty14))
                                                (setq 1-2y (/ pi 2))
                                                (cond
                                                        (
                                                                (and (/= ty50 nil) (= ty50 0))
                                                                (cond
                                                                        (
                                                                                (/= ty13y ty14y)
                                                                                (setq ty141 (list ty14x ty13y))
                                                                        )
                                                                        (
                                                                                (= ty13y ty14y)
                                                                                (setq ty141 (list ty14x ty14y))
                                                                        )
                                                                )
                                                        )
                                                        (
                                                                (and (/= ty50 nil) (= ty50 1-2y))
                                                                (cond
                                                                        (
                                                                                (/= ty13x ty14x)
                                                                                (setq ty141 (list ty13x ty14y))
                                                                        )
                                                                        (
                                                                                (= ty13x ty14x)
                                                                                (setq ty141 (list ty14x ty14y))
                                                                        )
                                                                )
                                                        )
                                                )
                                                (setq ty14-01 (polar ty13 (angle ty13 ty141) e_dis))
                                                (setq ele_im (subst (cons 14 ty14-01) (assoc 14 ele_im) ele_im))
                                                (setq last_ele (entmod ele_im))
                                                (setq last_name (cdr (assoc -1 last_ele)))[/pcode]

评分

参与人数 1D豆 +10 收起 理由
XDSoft + 10 有始有终奖!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 14:23 , Processed in 0.391458 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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