找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 544|回复: 0

[求助]:晓东工具030的序号标注在05上为什么不能用

[复制链接]
发表于 2006-8-9 00:23:48 | 显示全部楼层 |阅读模式

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

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

×
这段LISP语言030和029晓东工具上都有,可是为什么030工具不能用这个命令呢,一用就死机。我现在标注就是缺少这个啊,急呀,跪求各位达人能够解决这个问题。序号标注的小程序哪都有,可是只有晓东的可以用序号擦除命令后,后面序号的自动进一位呀。真是急的,谢谢大家了。这是工具箱中的相关程序。请大家看一下

我看了一下是XDTB_SYMBOLBZ2K不能用大概是因为拖动标注的原因导致不能够在CAD2005上用,XDTB_SYMBOLBZ14可以用的。可是如何修改呢,不能拖动标注也头疼啊。版主救命啊。

   
命令:XDTB_SymbolBz2k
   功能:标注序号
   说明:1、所在图层:公共文字-PUB_TEXT
        2、可以在标注中任意变换前缀,序号自动判断相应前缀已标的最大号。
        3、2002版本,拖动标注。
|;

(defun c:XDTB_SymBolBZ2K (/ ss box prompt1 pj pj1 tf1 mRMatrix mRMatrix1
                            mRMatrix2 mMatTrans mMatTrans1 mMatRot ang pt1
                            pt2 pt3 pt4 mVec1 mVec2 $XDTB_Symbol_No1 e info
                            maxNo ss ss1 ee
                         )
  (xdrx_SysVar_Push "osmode" "CURSORSIZE")
  (xdrx_begin)
  (xdrx_ucson)
  (setvar "CURSORSIZE" 5)
  (setvar "orthomode" 0)
  (if (not $XDTB_Symbol_Prefix)
    (setq $XDTB_Symbol_Prefix "A")
  )
  (if (not $XDTB_Symbol_TxtH)
    (setq $XDTB_Symbol_TxtH "350")
  )
  (if (not $XDTB_Symbol_Sort)
    (setq $XDTB_Symbol_Sort 1)
  )
  (setq $XDTB_Symbol_No ($XDTB_Symbol_getNo $XDTB_Symbol_Prefix)
        $XDTB_Symbol_No1 $XDTB_Symbol_No
  )
  (if (and
        (= 0 $XDTB_Symbol_Sort)
        (/= 1 $XDTB_Symbol_No)
      )
    (setq $XDTB_Symbol_No (1- $XDTB_Symbol_No))
  )
  (xdrx_begin "公共文字")
  (setvar "osmode" 3063)
  (setq prompt1 "\r点取位置或 {字高(H)/前缀(P)/起始序号(N)/递增开关(S)/基点(T)/转角(R)/转90度(A)/缩放(L)/对齐(F)}<退出>:"
        mRMatrix t
        tf1 t
        mTMatrix0 (xdrx_matrix_identity 3)
        mRMatrix t
  )
  (xdrx_drag_setmatrix mTMatrix0 t)
  (setq ss (ssadd))
  (command "._text" '(0 0 0) $XDTB_Symbol_TxtH 0.0 (strcat $XDTB_Symbol_Prefix
                                                           (itoa $XDTB_Symbol_No)
                                                   )
  )
  (setq ee (entlast))
  (ssadd (entlast) ss)
  (setq box (xdrx_entity_box ss)
        pj (car box)
        pj '(0 0 0)
  )
  (xdrx_entity_setvisible ee)
  (while mRMatrix
    (prompt (strcat "\n{字高:" $XDTB_Symbol_TxtH " / 前缀:"
                    $XDTB_Symbol_Prefix " / 起始序号:" (itoa $XDTB_Symbol_No)
                    " / 递增开关:" (if (= 1 $XDTB_Symbol_Sort)
                                     "开"
                                     "关"
                                   ) "}\n"
            )
    )
    (xdrx_drag_initget 1 "H P N S T R A L F")
    (xdrx_drag_setmode "Move")
    (setq mRMatrix (xdrx_PickSet_dragGen prompt1 ss pj 1 nil))
    (cond
      ((= mRMatrix "A")
        (setq mTMatrix (xdrx_matrix_setRotation mTMatrix0 (/ pi 2) '
                                                (0 0 1) (trans pj 1 0)
                       )
        )
        (xdrx_drag_setmatrix mTMatrix nil)
      )
      ((= mRMatrix "F")
        (setq mTMatrix2 (xdrx_drag_getLastMatrix))
        (xdrx_setmark)
        ($xdlsp_Pickset_TransFormedCopy ss mTMatrix2)
        (if (and
              (setq pt1 (getpoint "\n请拾取对齐源参考点:"))
              (setq pt2 (getpoint pt1 "\n请拾取另一定确定对齐参考轴:"))
              (setq pt3 (getpoint "\n请拾取目标参考点:"))
              (setq pt4 (getpoint pt3 "\n请拾取另一点确定目标参考轴:"))
            )
          (progn
            (setq mVec1 (mapcar
                          '-
                          pt1
                          pt2
                        )
                  mVec2 (mapcar
                          '-
                          pt3
                          pt4
                        )
                  ang (xdrx_vector_angle mVec1 mVec2)
                  mMatTrans (xdrx_matrix_setTranslation mTMatrix0
                                                        (mapcar
                                                          '-
                                                          '(0 0 0)
                                                          (trans pj 1 0)
                                                        )
                            )
                  mMatTrans1 (xdrx_matrix_setTranslation mTMatrix0
                                                         (mapcar
                                                           '-
                                                           (trans pj 1 0)
                                                           '(0 0 0)
                                                         )
                             )
                  mMatRot (xdrx_vector_rotateTo mVec1 mVec2)
                  mMatRot (xdrx_matrix_setTranslation mMatRot
                                                      (mapcar
                                                        '-
                                                        pt3
                                                        pt1
                                                      )
                          )
                  mMatRot (xdrx_matrix_product mMatTrans1
                                               (xdrx_matrix_product mMatRot mMatTrans)
                          )
            )
            (xdrx_drag_setmatrix mMatRot nil)
          )
        )
        (command "._erase" (xdrx_getss) "")
      )
      ((= mRMatrix "R")
        (setq mTMatrix2 (xdrx_drag_getLastMatrix))
        (xdrx_setmark)
        ($xdlsp_Pickset_TransFormedCopy ss mTMatrix2)
        ($xdlsp_PickSet_redraw (setq ss1 (xdrx_getss))
                               3
        )
        (xdrx_drag_setmatrix mTMatrix0 t)
        (xdrx_drag_SetMode "Rotate")
        (xdrx_drag_initget 1)
        (if (not (setq mTMatrix (xdrx_pickset_draggen "\n旋转角度[回车输入]:"
                                                      ss1 (setq pj1
                                                                (xdrx_drag_getLastPoint)
                                                          )
                                                      2
                                )
                 )
            )
          (progn
            (initget 6)
            (if (not (setq ang (getangle "\n请输入旋转角度<0>:")))
              (setq ang 0.0)
            )
            (setq mTMatrix (xdrx_matrix_setRotation mTMatrix0 ang '
                                                    (0 0 1) (trans pj1 1 0)
                           )
            )
          )
        )
        (setq mMatTrans (xdrx_matrix_setTranslation mTMatrix0
                                                    (mapcar
                                                      '-
                                                      pj
                                                      pj1
                                                    )
                        )
              mTMatrix (xdrx_matrix_product mMatTrans mTMatrix)
              mTMatrix (xdrx_matrix_product mTMatrix mTMatrix2)
        )
        (xdrx_drag_setmatrix mTMatrix nil)
        (command "._erase" ss1 "")
      )
      ((= mRMatrix "L")
        (setq mTMatrix2 (xdrx_drag_getLastMatrix))
        (xdrx_setmark)
        ($xdlsp_Pickset_TransFormedCopy ss mTMatrix2)
        ($xdlsp_PickSet_redraw (setq ss1 (xdrx_getss))
                               3
        )
        (xdrx_drag_setmatrix mTMatrix0 t)
        (setq box (xdrx_entity_box ss1)
              scl (- (caadr box) (caar box))
        )
        (xdrx_drag_SetMode "Scale" scl)
        (xdrx_drag_initget 1)
        (if (not (setq mTMatrix (xdrx_pickset_draggen "\n缩放比例[回车输入]:"
                                                      ss1 (setq pj1
                                                                (xdrx_drag_getLastPoint)
                                                          )
                                                      2
                                )
                 )
            )
          (progn
            (initget 6)
            (if (not (setq scl (getreal "\n请输入缩放比例<1>:")))
              (setq scl 1.0)
            )
            (if (/= scl 1.0)
              (progn
                (princ scl)
                (setq mTMatrix (xdrx_matrix_setScale mTMatrix0 scl
                                                     (trans pj1 1 0)
                               )
                )
              )
            )
          )
        )
        (setq mMatTrans (xdrx_matrix_setTranslation mTMatrix0
                                                    (mapcar
                                                      '-
                                                      pj
                                                      pj1
                                                    )
                        )
              mTMatrix (xdrx_matrix_product mMatTrans mTMatrix)
              mTMatrix (xdrx_matrix_product mTMatrix mTMatrix2)
        )
        (xdrx_drag_setmatrix mTMatrix nil)
        (command "._erase" ss1 "")
      )
      ((= mRMatrix "T")
        (setq mTMatrix2 (xdrx_drag_getLastMatrix))
        (xdrx_setmark)
        ($xdlsp_Pickset_TransFormedCopy ss mTMatrix2)
        (xdrx_entity_setvisible (entlast) t)
        (initget 2)
        (if (setq pj1 (getpoint (xdrx_drag_getLastPoint) "\n请输入新的基点:"))
          (progn
            (setq pj pj1)
            (xdrx_drag_setmatrix mTMatrix2 T)
          )
        )
        (entdel (entlast))
      )
      ((= mRMatrix "H")
        (if (/= "" (setq height (getstring (strcat "\n请输入字高<"
                                                   $XDTB_Symbol_TxtH ">:"
                                           )
                                )
                   )
            )
          (progn
            (setq $XDTB_Symbol_TxtH height)
            (xdrx_setenttodb ee)
            (xdrx_modent 40 (atof $XDTB_Symbol_TxtH))
          )
        )
      )
      ((= mRMatrix "S")
        (if (= 1 $XDTB_Symbol_Sort)
          (progn
            (if (= 1 (xdrx_yesorno "\n递增关" 1))
              (setq $XDTB_Symbol_Sort 0)
            )
            (if (/= 1 $XDTB_Symbol_No)
              (progn
                (setq $XDTB_Symbol_No (1- $XDTB_Symbol_No))
                (xdrx_setenttodb ee)
                (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No)))
              )
            )
          )
          (progn
            (setq $XDTB_Symbol_Sort (xdrx_yesorno "\n递增开" 1))
            (setq $XDTB_Symbol_No ($XDTB_Symbol_getNo $XDTB_Symbol_Prefix))
            (xdrx_setenttodb ee)
            (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No)))
          )
        )
      )
      ((= mRMatrix "P")
        (if (/= "" (setq prefix (getstring (strcat "\n请输入前缀符号<"
                                                   $XDTB_Symbol_Prefix ">:"
                                           )
                                )
                   )
            )
          (progn
            (setq $XDTB_Symbol_Prefix (strcase prefix))
            (setq $XDTB_Symbol_No ($XDTB_Symbol_getNo $XDTB_Symbol_Prefix))
            (xdrx_setenttodb ee)
            (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No)))
          )
        )
      )
      ((= mRMatrix "N")
        (initget 6)
        (if (and
              (setq $XDTB_Symbol_No1 (getint (strcat "\n请输入起始序号<"
                                                     (itoa $XDTB_Symbol_No)
                                                     ">:"
                                             )
                                     )
              )
              (< $XDTB_Symbol_No1 $XDTB_Symbol_No)
            )
          (progn
            (xdrx_setenttodb ee)
            (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No1)))
            (setq $XDTB_Symbol_No $XDTB_Symbol_No1)
            (if (= 1 $XDTB_Symbol_Sort)
              (setq bMod t)
            )
          )
        )
      )
      ((and
         mRMatrix
         (= (type mRMatrix) 'LIST)
       )
        ($xdlsp_Pickset_TransFormedCopy ss mRMatrix)
        (xdrx_entity_setvisible (entlast) t)
        (xdrx_setXdata (entlast) "XDTB_SYM_XH" $XDTB_Symbol_Prefix
                       $XDTB_Symbol_No
        )
        (if bMod
          (progn
            (setq ss1 (ssget "x" '((-3 ("XDTB_SYM_XH")))))
            (xdrx_setsstodb ss1 0)
            (prompt "\n正在重排序号...")
            (setq maxNo -1)
            (while (setq e (xdrx_getentdata 0))
              (setq info (xdrx_getxdata e "XDTB_SYM_XH"))
              (if (and
                    (= (strcase $XDTB_Symbol_Prefix) (car info))
                    (>= (cadr info) $XDTB_Symbol_No1)
                    (not (equal e (entlast)))
                  )
                (progn
                  (setq $XDTB_Symbol_No (1+ (cadr info)))
                  (if (> $XDTB_Symbol_No maxNo)
                    (setq maxNo $XDTB_Symbol_No)
                  )
                  (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No)))
                  (xdrx_setXdata e "XDTB_SYM_XH" $XDTB_Symbol_Prefix
                                 $XDTB_Symbol_No
                  )

                )
              )
            )
            (setq $XDTB_Symbol_No maxNo)
            (prompt "...完成!\n")
          )
        )
        (if (= 1 $XDTB_Symbol_Sort)
          (setq $XDTB_Symbol_No (1+ $XDTB_Symbol_No))
        )
        (xdrx_setenttodb ee)
        (xdrx_modent 1 (strcat $XDTB_Symbol_Prefix (itoa $XDTB_Symbol_No)

                       )
        )
        (setq lxd $XDTB_Symbol_No)
        (setq bMod nil)
      )
    )
  )
  ($XDLSP_Pickset_Erase ss)
  (xdrx_ucsoff)
  (xdrx_end)
  (xdrx_SysVar_Pop)
  (princ)
)
(defun c:XDTB_SymbolBz ()
  (if _isV14
    (c:XDTB_SYMBOLBZ14)
    (c:XDTB_SYMBOLBZ2K)
  )
  (princ)
)
;|
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-18 02:49 , Processed in 0.340849 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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