偶尔郁闷 发表于 2020-7-2 14:42:42

小白 啥也不是 求助帮忙加个记忆功能

本帖最后由 偶尔郁闷 于 2020-7-2 14:43 编辑

原贴地址 :http://bbs.mjtd.com/forum.php?mo ... hlight=%B3%DF%B4%E7

帮忙加个输入距离 带记忆功能 不要每次都输入

(defun c:tt()
(initget 7)
(setq d (getreal "\n输入距离:"))
(setq ss (ssget '((0 . "DIMENSION"))))
(if ss
    (repeat (setq n (sslength ss))
      (setq obj (vlax-ename->vla-object (setq e (ssname ss (setq n (1- n)))))
            el (entget e)
            )
      (if (or (= (setq objname (vla-get-ObjectName obj)) "AcDbAlignedDimension")
            (= objname "AcDbRotatedDimension")
            )
      (progn
      (setq p10 (cdr (assoc 10 el))
            p14 (cdr (assoc 14 el))
            )
      (if (and p10 p14)
      (progn
          (setq pt (polar p14 (angle p14 p10) d))
          (entmod (subst (cons 10 pt) (assoc 10 el) el))
          )
      )
      )
      )
    )
    )

)



llsheng_73 发表于 2020-7-3 08:48:05

(defun c:tt(/ d1 ss)
(setq d1(if d d 1))
(or(setq d(getreal(strcat"\n输入距离<"(rtos d1 2 0)">")))
   (setq d d1))
(if(setq ss(ssget '((0 . "DIMENSION"))))
    ....)
)

baitang36 发表于 2020-7-2 15:05:10

(defun c:tt()
   (initget 7)
   (if (= nil d)
   (setq d (getreal "\n输入距离:")))
   (setq ss (ssget '((0 . "DIMENSION"))))
   (if ss
   (repeat (setq n (sslength ss))
       (setq obj (vlax-ename->vla-object (setq e (ssname ss (setq n (1- n)))))
             el (entget e)
             )
       (if (or (= (setq objname (vla-get-ObjectName obj)) "AcDbAlignedDimension")
               (= objname "AcDbRotatedDimension")
               )
         (progn
       (setq p10 (cdr (assoc 10 el))
             p14 (cdr (assoc 14 el))
             )
       (if (and p10 p14)
         (progn
         (setq pt (polar p14 (angle p14 p10) d))
         (entmod (subst (cons 10 pt) (assoc 10 el) el))
         )
         )
       )
         )
   )
   )
   
   )

偶尔郁闷 发表于 2020-7-2 17:01:45

谢谢楼上大大的回复 我想要那种输入一次距离 直接回车的是上次的输入的 但是还可以修改那种 就像偏移命令那样那种的 能改么

bssurvey 发表于 2020-7-2 17:32:03

baitang36 发表于 2020-7-2 15:05
(defun c:tt()
   (initget 7)
   (if (= nil d)


看看是不是這樣
(defun c:tt()
; (initget 7)
(if (null d1)(setq d1 1))
(if (null (setq d (getreal (strcat "\n输入距离(" (rtos d1 2 0) "):"))))
    (setq d d1)
)
(setq d1 d)
(setq ss (ssget '((0 . "DIMENSION"))))
(if ss
    (repeat (setq n (sslength ss))
      (setq obj (vlax-ename->vla-object (setq e (ssname ss (setq n (1- n)))))
            el (entget e)
            )
      (if (or (= (setq objname (vla-get-ObjectName obj)) "AcDbAlignedDimension")
            (= objname "AcDbRotatedDimension")
            )
      (progn
      (setq p10 (cdr (assoc 10 el))
            p14 (cdr (assoc 14 el))
            )
      (if (and p10 p14)
      (progn
          (setq pt (polar p14 (angle p14 p10) d))
          (entmod (subst (cons 10 pt) (assoc 10 el) el))
          )
      )
      )
      )
    )
    )

)

paulpipi 发表于 2020-7-2 23:02:40

偶尔郁闷 发表于 2020-7-3 08:30:41

bssurvey 发表于 2020-7-2 17:32
看看是不是這樣
(defun c:tt()
; (initget 7)


是的 谢谢大大的修改
页: [1]
查看完整版本: 小白 啥也不是 求助帮忙加个记忆功能