明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 17025|回复: 45

[资源] 【源码分享】无聊了模仿天正逐点标注

  [复制链接]
发表于 2013-3-28 18:56:27 | 显示全部楼层 |阅读模式
本帖最后由 wowan1314 于 2013-6-12 20:16 编辑

如题;尝试模仿天正逐点标注。
          程序基本实现连续标注的目的
        缺点:1、标注中无法UNDO                  2、点到已经标注的中间时候不能更新(修正为可更新最后一个标注)。
                  3、尺寸不能实时自动避让。(这个论坛有程序标完后处理下即可)                                                                                    
                   9楼更新了增补尺寸配套程序。配套程序可单独使用也可编辑进双击反应器
               关于后面两点我在“工具插件”板块已经发布解决后的程序。               第一点的话测试用INITGET来达到UNDO。不过UNDO会记录平移与缩放,导致程序无法准确运行。
                不知道天正是怎么解决第一点的。也许思路不同?!有兴趣的可以尝试完善.


;;加尺寸避让可以这样写。尺寸避让没研究过,我也不引用了。我提供个思路,有兴趣的自己调整
(defun T6 ( / ENT ss)
  (SETQ ENT (ENTLAST))
  (C:T1);逐点标注主程序
  (SETQ SS (LAST-ENT ENT));;取得刚才标注的选择集 last-ent为自定义函数论坛有
  (CCBR SS);;CCBR为尺寸避让的程序
)
    最终版“逐点标注”源码地址:http://bbs.mjtd.com/forum.php?mo ... 1084&fromuid=282351

    最终版“增补尺寸”源码地址:http://bbs.mjtd.com/forum.php?mo ... 0786&fromuid=282351








本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
669423907 + 1 很给力!唯一的缺点就是尺寸界线的起点无法指.
xshrimp + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2013-3-29 11:51:58 | 显示全部楼层
试用了下YAD的程序。
他的逐点标注程序第一点:也没满足。 第二点:能回头标一次。第三点:双击可以增补。
回复 支持 1 反对 0

使用道具 举报

发表于 2022-2-4 18:19:59 | 显示全部楼层
clh521 发表于 2013-3-29 15:01
正好我昨天也编了一个连续标注(水平不高,用Command实现的)

这个没有实现标注引线对齐。
发表于 2019-6-18 17:18:50 | 显示全部楼层
特定用户下载   微笑脸   有什么意思?
发表于 2013-3-28 22:04:12 | 显示全部楼层
这个可以偶
发表于 2013-3-28 22:24:42 | 显示全部楼层
期待已久的插件,希望高手们修改后晚上后公布出来,
发表于 2013-3-29 12:17:13 | 显示全部楼层
  1. ;;;连续尺寸对齐标注
  2. (defun c:gps_dim_dx(/ l1 l2 l3 l4 l5 b c d1 d2 e1 e2 x3 x4 x5 y3 y4 y5 alf)  
  3.     (setq l1 (getpoint "\n标注偏移开始点:"))   
  4.     (setq l2 (getpoint l1 "\n标注线位置:"))   
  5.     (setq l3 (getpoint "\n开始标注点:"))
  6.     (setq l4 (getpoint l3 "\n<U>ndo...下一个标注点:"))
  7.     (setq b (- (car l1)  (car l2)))
  8.     (setq c (- (cadr l1) (cadr l2)))
  9.     (if (= b 0.0)
  10.         (progn
  11.            (command "dim" "_horizontal" (list (car l3) (cadr l1))  (list (car l4) (cadr l1))  l2  "" );command
  12.            (while
  13.                  (setq l5 (getpoint l4 "\n<U>ndo...下一个标注点:"))
  14.                  (command "_continue" (list (car l5) (cadr l1)) "" )
  15.                  (setq l4 l5)
  16.            );while
  17.            (command "_horizontal"
  18.                     (list (car l3) (cadr l1))
  19.                     (list (car l4) (cadr l1))
  20.                     (list (car l2)
  21.                           (if (> (cadr l1) (cadr l2))
  22.                               (- (cadr l2) (* (getvar "dimscale") 8))
  23.                               (+ (cadr l2) (* (getvar "dimscale") 8))
  24.                           );if

  25.                     );list
  26.                     ""
  27.                     "e"
  28.           );command
  29.        );progn
  30.     );if
  31.     (if (= c 0.0)
  32.         (progn
  33.            (command "dim"
  34.                     "_vertical"
  35.                     (list (car l1) (cadr l3))
  36.                     (list (car l1) (cadr l4))
  37.                     l2
  38.                     ""
  39.            );command
  40.            (while
  41.                  (setq l5 (getpoint l4 "\n<U>ndo...下一个标注点:"))
  42.                  (command "_continue"
  43.                           (list (car l1) (cadr l5))
  44.                           ""
  45.                  );command

  46.                  (setq l4 l5)
  47.            );while
  48.            (command "_vertical"
  49.                     (list (car l1) (cadr l3))
  50.                     (list (car l1) (cadr l4))
  51.                     (list (if (> (car l1) (car l2))
  52.                               (- (car l2) (* (getvar "dimscale") 8))
  53.                               (+ (car l2) (* (getvar "dimscale") 8))
  54.                           );if
  55.                           (cadr l2)
  56.                     );list
  57.                     ""
  58.                     "e"
  59.           );command
  60.        );progn
  61.     );if
  62.     (if (and (/= c 0.0) (/= b 0.0))
  63.         (progn
  64.           (setq d1 (- (car l1) (car l3)))
  65.           (setq d2 (- (car l1) (car l4)))
  66.           (setq e1 (- (cadr l1) (cadr l3)))
  67.           (setq e2 (- (cadr l1) (cadr l4)))
  68.           (setq x3 (/ (+ (* b b (car  l1)) (* c c (car  l3)) (* b c e1)) (+ (* b b) (* c c))))
  69.           (setq y3 (/ (+ (* b b (cadr l3)) (* c c (cadr l1)) (* b c d1)) (+ (* b b) (* c c))))
  70.           (setq x4 (/ (+ (* b b (car  l1)) (* c c (car  l4)) (* b c e2)) (+ (* b b) (* c c))))
  71.           (setq y4 (/ (+ (* b b (cadr l4)) (* c c (cadr l1)) (* b c d2)) (+ (* b b) (* c c))))
  72.           (command "dim"  "aligned"  (list x3 y3) (list x4 y4)  l2 "" );command
  73.           (while
  74.                (setq l5 (getpoint l4 "\n<U>ndo...下一个标注点:"))
  75.                (setq d2 (- (car l1) (car l5)))
  76.                (setq e2 (- (cadr l1) (cadr l5)))
  77.                (setq x5 (/ (+ (* b b (car  l1)) (* c c (car  l5)) (* b c e2)) (+ (* b b) (* c c))))
  78.                (setq y5 (/ (+ (* b b (cadr l5)) (* c c (cadr l1)) (* b c d2)) (+ (* b b) (* c c))))
  79.                (command "continue"                    (list x5 y5)
  80.                         ""
  81.                );command
  82.                (setq l4 l5)
  83.            );while
  84.            (setq alf (atan (/ (- (cadr l2) (cadr l1)) (- (car l2) (car l1)))))
  85.            (if (< (cadr l1) (cadr l2))
  86.            (setq x4 (+ (car l2) (* 8 (getvar "dimscale") (sin alf))))
  87.            (setq x4 (- (car l2) (* 8 (getvar "dimscale") (sin alf)))))
  88.            (if (< (cadr l1) (cadr l2))
  89.            (setq y4 (+ (cadr l2) (* 8 (getvar "dimscale") (cos alf))))
  90.            (setq y4 (- (cadr l2) (* 8 (getvar "dimscale") (cos alf)))))
  91.                     (command "aligned"
  92.                     (list x3 y3)
  93.                     (list x5 y5)
  94.                     (list x4 y4)
  95.                     ""
  96.                     "e"
  97.            );command
  98.          );progn
  99.      );if   
  100. )

点评

第一个标注要动态显示呀! 你这个好像没有哦。?  发表于 2013-3-29 13:14
发表于 2013-3-29 13:56:11 | 显示全部楼层
xshrimp 发表于 2013-3-29 12:17

dear sir,

great work
发表于 2013-3-29 14:23:09 | 显示全部楼层
探索者自带,不知道优势在哪儿

点评

商业软件缺少了DIY  发表于 2013-5-22 11:38
与商业软件比,唯一的优点就是你可以随意扩展。  发表于 2013-3-31 12:40
发表于 2013-3-29 15:01:59 | 显示全部楼层
本帖最后由 clh521 于 2013-3-29 15:04 编辑

正好我昨天也编了一个连续标注(水平不高,用Command实现的)

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
hooboxu + 1 能有WOWAN1314一样的回标功能就完美了
USER2128 + 1 赞一个!

查看全部评分

 楼主| 发表于 2013-3-29 21:05:11 | 显示全部楼层
本帖最后由 wowan1314 于 2013-6-8 11:12 编辑

没想到此程序反应还不错。
       所以也进一步做了增补尺寸的配套程序,同样此程序也存在前两个缺点.
      此配套程序可与双击反应器配合使用以便达到双击修改的效果     在尺寸中间增补尺寸有时候不好使,不明白为什么?!


本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
xshrimp + 1 赞一个!

查看全部评分

发表于 2013-3-30 13:45:22 | 显示全部楼层
增补能在原尺寸 中插入 增补尺寸吗?

点评

可以在原尺寸及最后标的尺寸中增补。  发表于 2013-3-31 12:38
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:45 , Processed in 0.216032 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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