明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1543|回复: 2

插件修改

[复制链接]
发表于 2017-12-6 13:03 | 显示全部楼层 |阅读模式
谁帮我把这个标注插件,修改一下。(问题点:使用过程中,经常无缘无故把设置好的捕捉点全去掉了,如图)

本帖子中包含更多资源

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

x
发表于 2017-12-6 13:31 | 显示全部楼层
(DEFUN C:DQ (/         *error*  ANG         E     EN    J           LEN         OLDERR             OS
             PT1   PT2         PT3   PT4   SS           ENT         ENTL  I     NP13
             NP14  P10         P13   P14   PTT   OSM
            )
  (defun *error* (msg) (setvar 'osmode 15359))
  (SETVAR "cmdecho" 0)
  (command "_.undo")
  (command "be")
  (command "_ucs")
  (command "_w")
  (PROMPT "\n不修改的标注不要选在里面")
  (if (setq SS (SSGET '((0 . "DIMENSION"))))
    (PROGN (setq EN (ENTGET (SSNAME SS 0)))
           (if (MEMBER '(100 . "AcDbRotatedDimension") EN)
             (PROGN (setq ANG (CDR (ASSOC 50 EN))))
             (PROGN
               (setq ANG (ANGLE (CDR (ASSOC 13 EN)) (CDR (ASSOC 14 EN))))
             )
           )
    )
  )
  (if (AND ANG (setq PT1 (GETPOINT "\n尺寸线位置<不变>:")))
    (PROGN (setq OSM (GETVAR "osmode"))
           (SETVAR "osmode" 0)
           (setq PT2 (POLAR PT1 ANG 1000))
           (setq J 0)
           (setq LEN (SSLENGTH SS))
           (while (and (< J LEN))
             (setq E (SSNAME SS J))
             (setq EN (ENTGET (SSNAME SS J)))
             (setq PT3 (CDR (ASSOC 10 EN)))
             (setq PT4 (INTERS PT1
                               PT2
                               PT3
                               (POLAR PT3 (+ ANG (* 0.5 PI)) 100)
                               nil
                       )
             )
             (setq J (1+ J))
             (command "move")
             (command E)
             (command "")
             (command PT3)
             (command PT4)
           )
           (SETVAR "osmode" OSM)
    )
  )
  (if (AND ANG (setq PT1 (GETPOINT "\n尺寸界线位置<不变>:")))
    (PROGN
      (setq OSM (GETVAR "osmode"))
      (SETVAR "osmode" 0)
      (setq PT2 (POLAR PT1 ANG 100))
      (setq PT1 (TRANS PT1 1 0))
      (setq PT2 (TRANS PT2 1 0))
      (setq I 0)
      (REPEAT (SSLENGTH SS)
        (setq ENT (SSNAME SS I))
        (setq ENTL (ENTGET ENT))
        (setq P10 (CDR (ASSOC 10 ENTL)))
        (setq P13 (CDR (ASSOC 13 ENTL)))
        (setq P14 (CDR (ASSOC 14 ENTL)))
        (setq PTT (CDR (ASSOC 11 ENTL)))
        (setq I (1+ I))
        (setq NP14 (INTERS PT1 PT2 P14 P10 nil))
        (if (NOT (MEMBER '(100 . "AcDbRotatedDimension") ENTL))
          (PROGN
            (setq NP13 (POLAR NP14 (ANGLE P14 P13) (DISTANCE P14 P13)))
          )
          (PROGN (setq NP13 (INTERS PT1
                                    PT2
                                    P13
                                    (POLAR P13 (ANGLE P14 P10) 100)
                                    nil
                            )
                 )
          )
        )
        (setq ENTL (SUBST (CONS 13 NP13) (ASSOC 13 ENTL) ENTL))
        (setq ENTL (SUBST (CONS 14 NP14) (ASSOC 14 ENTL) ENTL))
        (ENTMOD ENTL)
      )
      (SETVAR "osmode" OSM)
    )
  )
  (command "_ucs")
  (command "p")
  (command "_.undo")
  (command "e")
  (SETVAR "cmdecho" 1)
  (Y-TFX)
  (PRINC)
)
发表于 2017-12-9 19:55 | 显示全部楼层
论坛里找,有一个对象捕捉设置的插件
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 15:33 , Processed in 0.270741 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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