惜惜2 发表于 3 天前

请教一下组合代码

本帖最后由 惜惜2 于 2024-12-23 09:01 编辑

(defun c:Pq (/ b count ent ent-data ss)
(setq f1 "0")
(command "LAYER")
(command "off")
(command "*")
(command "y")
(command "on")
(command (EVAL F1))
(command "")
(c:HZQ-085)
   (setq user_input "A")
(defun dcb (L)
    (cond
      ((null L) nil)
      ((atom L)(list L))
      ((atom (car L))(cons (car L) (dcb (cdr L))))
      ((append (dcb (car L))(dcb (cdr L))))
    )
)
(setq ss (ssget "X" '((0 . "DIMENSION")))) ; 选择所有标注
(setq b nil)
(if ss
    (progn
      (setq count (sslength ss))
      (repeat count
      (setq ent (ssname ss (setq count (1- count))))
      (setq ent-data (entget ent))
      (setq b (dcb ent-data))
      (foreach str b
          (if
            (or
            (= str "AcDbRadialDimension")
            (= str "AcDbDiametricDimension")
            )
            (entdel ent)
          )
      )
      )
    )
)
(command "layer")
(command "on")
(command "*")
(command "")
(command "LAYER")
(command "THAW")
(command "*")
(command "")
(command "LAYER")
(command "U")
(command "*")
(command "")
(princ)
)


(c:HZQ-085)
   (setq user_input "A") 前面这个命令是第三方插件自带的命令,执行后让用户选着一个对象,然后输入栏提示指定基点或 如何默认执行A(左下角),我希望默认一个值即可,比如A,不再需要用户手动键入,需要怎么实现,谢谢

masterlong 发表于 3 天前

想多了属于是

煮茗 发表于 3 天前

左上、左下、右上、右下。我猜这是图元包围框的4个角点。

惜惜2 发表于 3 天前

masterlong 发表于 2024-12-23 10:28
想多了属于是

好吧 谢谢:handshake

飞雪神光 发表于 3 天前

要么改这个命令里的代码(c:HZQ-085)
要么处理变量(if (or (= user_input "") (null user_input))
                (setq user_input "A")
        )

kozmosovia 发表于 3 天前

把c:HZQ-085升格为命令,然后用vla-sendcommand模拟默认输入A

baitang36 发表于 昨天 13:39

这种command用法,只有反编译的代码中才会有。
页: [1]
查看完整版本: 请教一下组合代码