lengyan 发表于 2016-1-22 00:04:36

标索引程序数值不能递增,求诊断啊!

标索引程序数值不能递增,之前用着还正常,不知道是不是CAD系统设置冲突了。哪位大侠给瞅瞅,谢谢啊。

ZZXXQQ 发表于 2016-1-22 07:58:15

如果是属性块,这样改下试试
;;; 定义快捷键
(defun c:sy () (xz-leader-sub-xxx3 "索引-施工图"))
(defun c:syy () (xz-leader-sub-xxx3 "索引-加工图"))

;;; 以下为子程序,您可以学习它,这是简单的调用cad命令而制作的程序
;;; ______________________________________________________
(defun xz-leader-sub-xxx3 (blkname / dimscl startpt )
(if (not (tblsearch "block" blkname))
    (princ (strcat "没有找到块:" blkname))
(progn
    (setq dimscl (getvar 'dimscale))
    (setq $$divnum$$ (xz-leader-sub-xxx2 "\n 引线分段数<1 / 2>:" "2" $$divnum$$))
    (or (not (> $$divnum$$ 2)) (setq $$divnum$$ 2))
    (setq $$indexnum$$ (xz-leader-sub-xxx2 "\n 索引序号:" "1" $$indexnum$$))
    (while (setq startpt (getpoint "\n指定引线起点:"))
   (xz-leader-sub-xxx1
      startpt
      $$divnum$$
      blkname
      dimscl
      (itoa $$indexnum$$)
   )
   (setq $$indexnum$$ (1+ $$indexnum$$))
    )
))
(princ)
)

;;; ______________________________________________________
;;; (xz-leader-sub-xxx1 (getpoint) 2 "索引-施工图" 2 "索引9")
(defun xz-leader-sub-xxx1
                          (startptdivnum   blknamedimscl   string
                           /          addnum1addnum2ptls   pt1
                           pt1x          pt1y   pt2      pt2x   pt2y
                           inspt
                          )
(cond
    ((= blkname "索引-施工图")
   (setq addnum1 4.5
           addnum2 2
   )
    )
    ((= blkname "索引-加工图")
   (setq addnum1 3
           addnum2 1.5
   )
    )
    (t
   (princ "未能识别块名!")
   (exit)
    )
)

(setq ptls nil)
(command "_.QLEADER" startpt)
(setq ptls (cons (getvar "lastpoint") ptls))
(cond
    ((= divnum 1)
   (setvar "CMDECHO" 0)
   (setvar "ORTHOMODE" 1)
   (setvar "CMDECHO" 1)
   (command pause)
   (setq ptls (cons (getvar "lastpoint") ptls))
    )
    ((= divnum 2)
   (setvar "CMDECHO" 0)
   (setvar "ORTHOMODE" 0)
   (setvar "CMDECHO" 1)
   (command pause)
   (setq ptls (cons (getvar "lastpoint") ptls))
   (setvar "CMDECHO" 0)
   (setvar "ORTHOMODE" 1)
   (command pause)
   (setq ptls (cons (getvar "lastpoint") ptls))
    )
)
(setvar "CMDECHO" 0)
(command)
(setq        pt1(cadr ptls)
        pt1x (car pt1)
        pt1y (cadr pt1)
        pt2(car ptls)
        pt2x (car pt2)
        pt2y (cadr pt2)
)
(cond
    ((equal pt1y pt2y 0.001)
   (if (< pt1x pt2x)
       (setq inspt (list (+ pt2x (* addnum1 dimscl)) pt2y))
       (setq inspt (list (- pt2x (* addnum1 dimscl)) pt2y))
   )
    )
    ((equal pt1x pt2x 0.001)
   (if (< pt1y pt2y)
       (setq inspt (list pt2x (+ pt2y (* addnum2 dimscl))))
       (setq inspt (list pt2x (- pt2y (* addnum2 dimscl))))
   )
    )
    (t
   (if (< pt1y pt2y)
       (setq inspt (list pt2x (+ pt2y (* addnum2 dimscl))))
       (setq inspt (list pt2x (- pt2y (* addnum2 dimscl))))
   )
    )
)
(setq attreq (getvar "ATTREQ")
       attdia (getvar "ATTDIA")
)
(setvar "ATTREQ" 1)
(setvar "ATTDIA" 0)
(setvar "osmode" (+ (rem (getvar "osmode") 16384) 16384)) ;关闭捕捉.
(command "_.-insert" blkname inspt dimscl dimscl 0 string)
(setvar "osmode" (rem (getvar "osmode") 16384)) ;打开捕捉.
(setvar "ATTREQ" attreq)
(setvar "ATTDIA" attdia)
)
;;; ______________________________________________________
;; (setq msg1 "\n 引线分段数<1 / 2>:")
;; msg1--默认提示1
;; msg2--在$$temp$$不存在情况下的提示值
;; (xz-leader-sub-xxx2 msg1 msg2 nil)
(defun xz-leader-sub-xxx2 (msg1 msg2 $$temp$$ / temp)
(if (null $$temp$$)
    (progn
      (setq temp (getint (strcat msg1 msg2 "   ")))
      (or temp (setq temp 2))
      (setq $$temp$$ temp)
    )
    (progn
      (setq temp (getint (strcat msg1 (rtos $$temp$$ 2 0) "   ")))
      (if temp (setq $$temp$$ temp))
    )
)
$$temp$$
)
;;; ______________________________________________________
;;;(MK_MY_LEADER (getpoint)(getpoint)(getpoint))
(defun MK_MY_LEADER (pt0 pt1 pt2)
(entmake
    (list
      '(0 . "LEADER")
      '(100 . "AcDbEntity")
      '(67 . 0)
      '(8 . "dim")
      '(100 . "AcDbLeader")
      '(3 . "ISO-25")
      '(71 . 1)
      '(72 . 0)
      '(73 . 2)
      '(74 . 0)
      '(75 . 0)
      '(40 . 0.0)
      '(41 . 0.0)
      '(76 . 3)
      (cons 10 pt0)
      (cons 10 pt1)
      (cons 10 pt2)
      '(211 1.0 0.0 0.0)
      '(212 0.0 0.0 0.0)
      '(213 -4.0 0.0 0.0)
      '(-3
        ("ACAD"
       (1000 . "DSTYLE")
       (1002
          .
          "{"
       )
       (1070 . 147)
       (1040 . 0.625)
       (1070 . 77)
       (1070 . 0)
       (1070 . 50)
       (1040
          .
          1.5708
       )
       (1070 . 90)
       (1070 . 1)
       (1002 . "}")
        )
       )
    )
)
)

lengyan 发表于 2016-1-22 12:54:01

ZZXXQQ 发表于 2016-1-22 07:58 static/image/common/back.gif
如果是属性块,这样改下试试


可以了,谢谢
页: [1]
查看完整版本: 标索引程序数值不能递增,求诊断啊!