设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

返回列表
查看: 2226|回复: 9

[源码] 【炫翔】快速标注(扩展)

[复制链接]

签到天数: 881 天

连续签到: 8 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 1715个

财富等级: 堆金积玉

发表于 2014-5-21 17:09:25 | 显示全部楼层 |阅读模式

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

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

x
1.gif

  1. (defun c:xx ( / p1 p2 p3 p4 p5 p6 p7 p8 p9 ss)
  2. (coma)
  3.   (mapcar 'setvar '("cmdecho" "osmode")'(0 0))
  4.   (xx-VlaPu)
  5.   (if (ssget '((0 . "~DIMENSION")))
  6.     (progn
  7.       (setq SS(xx-cset)
  8.             P1(XX-SS-9PT SS 1)
  9.             P2(XX-SS-9PT SS 2)
  10.             P3(XX-SS-9PT SS 3)
  11.             P4(XX-SS-9PT SS 4)
  12.             P5(XX-SS-9PT SS 5)
  13.             P6(XX-SS-9PT SS 6)
  14.             P7(XX-SS-9PT SS 7)
  15.             P8(XX-SS-9PT SS 8)
  16.             P9(XX-SS-9PT SS 9)
  17.       )
  18.       (vl-cmdf "_.qdim" (ssget "c" P7 p2 '((0 . "~DIMENSION"))) "" (polar P4 pi 10))
  19.       (vl-cmdf "_.qdim" (ssget "c" P4 p9 '((0 . "~DIMENSION"))) "" (polar P8 (* PI 0.5) 10))
  20.       (vl-cmdf "_.qdim" (ssget "c" P9 p2 '((0 . "~DIMENSION"))) "" (polar P6 0 10))
  21.       (vl-cmdf "_.qdim" (ssget "c" P4 p3 '((0 . "~DIMENSION"))) "" (polar P2 (* PI 1.5) 10))
  22.     )
  23.   )
  24. (comb)
  25. )


  26. (defun xx-ss-9pt (vlass mode / dx dy obj pt1 pt9 pts x1 x2 y1 y2)
  27. (vlax-for obj vlass
  28.     (setq pts (cons (xx-box-p1p9 obj) pts))
  29. )
  30.    (setq pts(xx-p-pts-P1P9 (apply 'append pts)))
  31.     (setq pt1 (car pts);最小点
  32.           pt9 (last pts);最大点
  33.           x1  (car pt1)
  34.           x2  (car pt9)
  35.           y1  (cadr pt1)
  36.           y2  (cadr pt9)
  37.           dx  (* (- x2 x1) 0.5);到中点的距离
  38.           dy  (* (- y2 y1) 0.5)
  39.     )
  40.    (cond ((= mode 1) pt1)
  41.          ((= mode 2) (list (+ x1 dx) y1 0.0))
  42.          ((= mode 3) (list x2 y1 0.0))
  43.          ((= mode 4) (list x1 (+ y1 dy) 0.0))
  44.          ((= mode 5) (list (+ x1 dx) (+ y1 dy) 0.0))
  45.          ((= mode 6) (list x2 (+ y1 dy)0.0))
  46.          ((= mode 7) (list x1 y2 0.0))
  47.          ((= mode 8) (list (+ x1 dx) y2 0.0))
  48.          ((= mode 9) pt9)
  49.          (t pt1)
  50.    )
  51. )
  52. (defun xx-box-p1p9 (obj / ll ur)
  53.   (vla-GetBoundingBox obj 'll 'ur)
  54.   (list
  55.     (vlax-safearray->list ll)
  56.     (vlax-safearray->list ur)
  57.   )
  58. )
  59. (defun xx-p-pts-P1P9 (pts)
  60.   (list
  61.     (apply 'mapcar (cons 'min pts))
  62.     (apply 'mapcar (cons 'max pts))
  63.   )
  64. )


  65. ;********************************************
  66. (defun xx-cset ()(vla-get-activeselectionset (xx-doc)));取得图形激活的选择集
  67. ;清除前一选择集
  68. (defun xx-VlaPu (/ x)
  69.   (if(not(vl-catch-all-error-p(setq x(vl-catch-all-apply 'vla-item
  70.        (list (vla-get-selectionsets (vla-get-activedocument (xx-acad))) "CURRENT")))))
  71.     (vla-delete x)
  72.   )
  73.   (princ)
  74. )

  75. ;提取系统变量
  76. ;(COMA)
  77. (defun coma ()
  78.   (if (> (atof (getvar "acadver")) 15.)
  79.    (vl-load-com)
  80.   )
  81.   (defun *error* (msg);定义通用函数错了函数
  82.     (princ "输入通用函数错了 : ")
  83.     (princ msg)
  84.     (comb)
  85.   )
  86.   (setq *x-r*;提取系统变量
  87.          '("aunits"      "auprec"      "attdia"      "blipmode"
  88.            "cecolor"     "celtype"     "clayer"      "cmdecho"
  89.            "dimzin"      "expert"      "highlight"   "lunits"
  90.            "luprec"      "osmode"      "orthomode"   "textstyle"
  91.            "plinewid"    "dimdec"      "dimadec"     "regenmode"
  92.            "pickbox"
  93.           )
  94.   )
  95.   (*x-ser*);处理保存系统变量
  96.   (vla-startundomark (xx-doc));标记开始
  97.   (princ)
  98. )

  99. (defun *x-ser* (/ sv)
  100.   (if (= 'list (type *error*));判断通用函数错了是否为表
  101.     (princ "输入通用函数错了:最后一个(*x-ser*)函数没有配对的(*x-rer*)!")
  102.     (progn
  103.       (setq *x-er* '())
  104.       (foreach sv *x-r*;循环将每一个系统变量的值提取
  105.         (setq *x-er* (cons (getvar sv) *x-er*))
  106.       )
  107.       (defun-q *error* (st) (*x-rer*));通用函数错了时还原系统变量
  108.     )
  109.   )
  110. )

  111. (defun xx-acad nil(eval (list 'defun 'xx-acad 'nil (vlax-get-acad-object)))(xx-acad))
  112. (defun xx-doc nil(vla-get-activedocument (xx-acad)))
  113. ;----------------------------------------------------------------------------

  114. ;还原系统变量
  115. ;(COMB)
  116. (defun comb ()
  117.   (vla-endundomark (xx-doc));标记结束
  118.   (*x-rer*);还原系统变量
  119.   (princ)
  120. )
  121. (defun *x-rer* ()
  122.   (if (= 'list (type *error*));为通用函数错了表时
  123.     (progn
  124.       (mapcar 'setvar *x-r* (reverse *x-er*));循环还原系统变量
  125.       (setq *error* nil)
  126.     )
  127.   )
  128. )



  129. (princ)





上一篇:xd::String:RegExpS 是不是不支持 "(?<=xx)\\d{3}"
下一篇:求助一个提取墙体中线的工具
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复
百度谷歌雅虎搜狗搜搜有道360奇虎

使用道具 举报

签到天数: 1317 天

连续签到: 3 天

[LV.10]以坛为家III

已领礼包: 3183个

财富等级: 富可敌国

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

使用道具 举报

签到天数: 557 天

连续签到: 1 天

[LV.9]以坛为家II

点击这里给我发消息

发表于 2014-5-21 22:08:17 | 显示全部楼层
哈哈。。。炫版主厉害。。。
不过模具专业的一般不这样标数。。
引线拉太长容易看串了   
不过还是支持一下源码。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1744 天

连续签到: 253 天

[LV.Master]伴坛终老I

已领礼包: 5163个

财富等级: 富甲天下

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

使用道具 举报

签到天数: 1102 天

连续签到: 13 天

[LV.10]以坛为家III

已领礼包: 1322个

财富等级: 财源广进

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

使用道具 举报

签到天数: 1029 天

连续签到: 1 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 333个

财富等级: 日进斗金

发表于 2014-5-22 20:21:37 | 显示全部楼层
模具一般不是坐标的吗

点评

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

使用道具 举报

签到天数: 881 天

连续签到: 8 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 1715个

财富等级: 堆金积玉

 楼主| 发表于 2014-5-23 09:40:24 | 显示全部楼层
429014673 发表于 2014-5-22 20:21
模具一般不是坐标的吗

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

使用道具 举报

签到天数: 23 天

连续签到: 1 天

[LV.4]偶尔看看III

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

使用道具 举报

签到天数: 45 天

连续签到: 1 天

[LV.5]常住居民I

已领礼包: 66个

财富等级: 招财进宝

发表于 2018-1-15 21:58:59 | 显示全部楼层
(defun-q *error* (st) (*x-rer*))这句语法错误,什么原因?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 110 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 207个

财富等级: 日进斗金

发表于 6 天前 | 显示全部楼层
很实用的功能....要是能够根据图层选定需要标注的图素图素就更好了(不在选定图层的图素即便选中也不会进行标注的功能)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

辽公网安备 21040202000005号

GMT+8, 2018-2-18 09:22 , Processed in 0.689610 second(s), 106 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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