qazxswk 发表于 2022-6-21 18:36:26

rocking2008 发表于 2022-6-21 09:27
他的意思应该是设置一个常用值例如20,使用命令后,直接按20进行偏移,同时有一个选项子命令C做为修改这个 ...

是这个意思,不过Bao_lai大神的方案也不错,可能是个人习惯问题吧。

hhh454 发表于 2022-6-22 00:48:27

用dcl记录数值,是不是要简单一点

qazxswk 发表于 2022-6-22 08:25:25

hhh454 发表于 2022-6-22 00:48
用dcl记录数值,是不是要简单一点

做成对话框形式?好像没有必要,就一个值

hhh454 发表于 2022-6-22 09:31:15

对话框取值,好处可以多值一次取,也可以记忆,没有那么多的确定,单个数值也是一样的,可视化也比较直接,不用看左下角

baitang36 发表于 2022-6-22 13:07:14

弄一个全局变量,如果为nil就用默认值。改全局变量值很简单

masterlong 发表于 2022-6-22 13:56:06

ssget换成entsel,就可以加参数了,当然,程序流程大不同

qazxswk 发表于 2022-6-24 07:42:01

baitang36 发表于 2022-6-22 13:07
弄一个全局变量,如果为nil就用默认值。改全局变量值很简单

我原代码中的newdist、dist就是全局变量吧。

qazxswk 发表于 2022-6-24 07:51:19

masterlong 发表于 2022-6-22 13:56
ssget换成entsel,就可以加参数了,当然,程序流程大不同

我写了个用getpoint函数的,这样就强制是要框选了,用entsel,那就是点选了,都没有ssget可框可点方便。

vitalgg 发表于 2022-6-24 19:55:01

本帖最后由 vitalgg 于 2022-6-24 20:02 编辑

grread

https://atlisp.cn/function/example:grread


(defun example:grread (/ flag r)
"grread 编程示例,当按下键盘时,弹窗提示按的什么键,否则显示光标的坐标"
(setq r 100.0)
(setq flag t)
(while flag (setq gr (grread t 16))
    "处理输入"
    (cond ((= 2 (car gr))
      "按下了键盘按键"
      (cond ((= "x"
            (chr (cadr gr)))
            (alert (strcat "按下了"
                (chr (cadr gr))))
            "设置条件退出循环"
            (setq flag nil))
          ((= "S"
            (strcase (chr (cadr gr))))
            "以下进行 按了 S的后处理程序"
            (setq r (cdr (assoc "半径"
                  (ui:input "设置"
                  (list (list "半径"
                        r)))))))
          ((= "C"
            (strcase (chr (cadr gr))))
            "以下进行 按了 C 的后处理程序-画圆"
            (entity:make-circle (cadr (grread t 0))
            r))
          (t (alert (vl-prin1-to-string gr)))))
      ((= 3 (car gr))
      "按下鼠标左键"
      (alert "click left"))
      ((or (= 25 (car gr))
          (= 11 (car gr)))
      "按下鼠标右键"
      (alert "click right"))
      ((= 5 (car gr))
      "移动鼠标"
      (princ "当前光标的坐标: ")
      (princ gr))
      (t "其它情况"
      (princ gr)))
    (princ "\n输入[ 退出x | 设置s | 画圆c ]"))
(princ))

`中微子 发表于 2023-3-11 11:05:32

初学者,这个看不懂
(setq ss(ssget ":s"))
(vlax-for ss (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
   (mapcar '(lambda (x)(vla-offset ss x))(list newdist (- newdist)) )(vla-delete ss))
这样是偏移线,有大佬解释一下吗?谢谢!
我都用重新生成线来做类似操作,写起来很麻烦。
页: 1 [2] 3
查看完整版本: 怎样不按回车直接使用默认值?