明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2543|回复: 6

无聊,dmex ==延伸反转dim尺寸界线 源码

[复制链接]
发表于 2011-5-10 23:51:15 | 显示全部楼层 |阅读模式
一个很老很老的程序.... 想当年还没谈女朋友,极度无聊发狂....

  1. ;;***+ dmex ==延伸反转dim尺寸界线-v3-----lxx.2002.11(2009.7.21v3)
  2. ;;用于调整 e13 e14 特征点
  3. ;;本程序可以达到与dmtr尺寸延伸线裁减一样的效果,并且不依赖与是否相交
  4. ;;v1.0 1999.2 v2.0 2002.11
  5. ;;v2.0 更改计算方法;dime取消,改名为dmex;加入对linear,rotated!,align的判定
  6. ;;;下列组码适用于线性和转角标注。
  7. ;;;组码 说明
  8. ;;;50 转角、水平和垂直标注的角度。
  9. ;;;52 具有倾斜角度的线性标注类型有可选组码 52。当增加线性标注的旋转角(组码 50)时,组码 52 给出延长线的角度。
  10. ;;;100 子类标记 (AcDbRotatedDimension)
  11. ;;;对于alinged,p14->p13角度总是与标注线角度同.
  12. ;70   标注类型:整数值 0 - 6 表示标注类型。位值 32、64 和 128 则添加到整数值后(在 R13 和更高版本中设置值 32)。0 = 转角标注、水平标注或垂直标注;1 = 对;;齐标注;2 = 角度标注;3 = 直径标注;4 = 半径标注;5 = 角度三点标注;6 = 坐标标注;32 = 表示块引用(组码 2)只被此标注引用;64 = 坐标标注类型,此位值(位 ;7)只与类型 6 一起使用,如果设置,坐标类型为 X 型,否则为 Y 型;128 = 如果标注文本位于用户指定的位置而不是缺省位置,此位值(位 7)将添加到其他的组码 70 ;的;值中。
  13. ;;图示:
  14. ;;  +---+  >>  +----+e10
  15. ;;             |e13 |e14
  16. ;;-------------------------------------------dmex-------------------------------------;;;
  17. (princ "\ndmex ==延伸反转dim尺寸界线-v3-lxx.200211,200907\n")
  18. ;;
  19. (defun c:dmex (/ ANG ANGP DISTEX E E10 E13 E14 ENT I NE13 NE14 PP= SS
  20.         gr wkey2)
  21.   (princ
  22.     "\ndmex ==延伸反转dim尺寸界线-v3-lxx.200211,200907\n"
  23.   )
  24.   ;;
  25.   (vl-load-com)
  26.   (initget "W")
  27.   (setq *doc   (vla-get-activedocument (setq *cad (vlax-get-acad-object)))
  28. distex (getdist "\n 尺寸界线延伸长度/<延伸线反转>:")
  29.   )
  30.   ;;
  31.   (while (progn (setq i 0)
  32.   (princ "\n W-反转上一选集/<退出>/选择标注:")
  33.   (setq gr (grread nil 4 2))
  34.   (cond
  35.     ((member gr '((11 0) (2 13))) nil)
  36.     ((member (cadr gr) '(119 87))
  37.      (setq ss    (ssget "P")
  38.     wkey2 T
  39.      )
  40.     )   ;"wW"
  41.     ((= 3 (car gr))
  42.      (progn
  43.        (setq p (cadr gr)
  44.       p$ (strcat """
  45.           (rtos (car p) 2 4)
  46.           ","
  47.           (rtos (cadr p) 2 4)
  48.           """
  49.          )
  50.        )
  51.        (setq ss(ssget (list(cons(progn(vla-eval *cad(strcat "thisdrawing.sendcommand " p$ " &VBCR"))0) "DIMENSION"))))
  52.        (grread 4 2)
  53.        ;(setq ss(ssget (list(cons(progn(vla-eval *cad(strcat "thisdrawing.sendcommand " p$ " &VBCR"))0) "DIMENSION"))))
  54.      )
  55.     )
  56.   )
  57.   )
  58.     (repeat (sslength ss)
  59.    (setq ent (ssname ss i)
  60.   e   (entget ent)
  61.   e10 (cdr (assoc 10 e))
  62.   e13 (cdr (assoc 13 e))
  63.   e14 (cdr (assoc 14 e))
  64.   pp= (equal e10 e14 1e-4)
  65.    )
  66.    (if (member '(100 . "AcDbRotatedDimension") e)
  67.      ;;!!!用子类标记准确, !!!!用70判定 不准,转角平直标注可能=0,32...
  68.      (setq ang  (cdr (assoc 50 e))
  69.     angp (if pp=
  70.     (+ (/ PI 2) ang)
  71.     (angle e10 e14)
  72.          )
  73.      )
  74.      (setq ang  (angle e13 e14)
  75.     angp (if pp=
  76.     (+ (/ PI 2) ang)
  77.     (angle e10 e14)
  78.          )
  79.      )
  80.    )
  81. ;;; 延伸线反转
  82.    (if  wkey2
  83.      (setq distex (distance e10 e14)
  84.     angp  (+ PI angp)
  85.      )
  86.    )
  87.    (setq ne14 (polar e10 angp distex)
  88.   ne13 (inters e13
  89.         (polar e13 angp 100)
  90.         ne14
  91.         (polar ne14 ang 100)
  92.         nil
  93.        )
  94.   i    (1+ i)
  95.    )
  96.    (setq e (subst (cons 13 ne13) (assoc 13 e) e)
  97.   e (subst (cons 14 ne14) (assoc 14 e) e)
  98.    )
  99.    (entmod e)
  100.    (entupd ent)
  101. )
  102.     (setq wkey2 nil)
  103.   )
  104.   (princ)
  105. )


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-5-11 09:15:10 | 显示全部楼层
谢谢楼主的分享
收藏了,下来学习领会
谢谢
发表于 2011-5-11 12:27:53 | 显示全部楼层
        好代码,支持开源
发表于 2011-5-11 17:48:49 | 显示全部楼层
谢谢楼主分享
发表于 2011-5-11 23:21:45 | 显示全部楼层
是啊,你的程序太好了,支持楼主!
发表于 2011-6-3 19:08:38 | 显示全部楼层
的确很无聊的程序
发表于 2012-10-14 15:18:48 | 显示全部楼层
你的程序太好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 10:44 , Processed in 0.159591 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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