明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: qazxswk

[讨论] 怎样不按回车直接使用默认值?

[复制链接]
 楼主| 发表于 2022-6-21 18:36 来自手机 | 显示全部楼层
rocking2008 发表于 2022-6-21 09:27
他的意思应该是设置一个常用值例如20,使用命令后,直接按20进行偏移,同时有一个选项子命令C做为修改这个 ...

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

使用道具 举报

发表于 2022-6-22 00:48 | 显示全部楼层
用dcl记录数值,是不是要简单一点
回复

使用道具 举报

 楼主| 发表于 2022-6-22 08:25 来自手机 | 显示全部楼层
hhh454 发表于 2022-6-22 00:48
用dcl记录数值,是不是要简单一点

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

使用道具 举报

发表于 2022-6-22 09:31 | 显示全部楼层
对话框取值,好处可以多值一次取,也可以记忆,没有那么多的确定,单个数值也是一样的,可视化也比较直接,不用看左下角
回复

使用道具 举报

发表于 2022-6-22 13:07 | 显示全部楼层
弄一个全局变量,如果为nil就用默认值。改全局变量值很简单
回复

使用道具 举报

发表于 2022-6-22 13:56 来自手机 | 显示全部楼层
ssget换成entsel,就可以加参数了,当然,程序流程大不同
回复

使用道具 举报

 楼主| 发表于 2022-6-24 07:42 来自手机 | 显示全部楼层
baitang36 发表于 2022-6-22 13:07
弄一个全局变量,如果为nil就用默认值。改全局变量值很简单

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

使用道具 举报

 楼主| 发表于 2022-6-24 07:51 来自手机 | 显示全部楼层
masterlong 发表于 2022-6-22 13:56
ssget换成entsel,就可以加参数了,当然,程序流程大不同

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

使用道具 举报

发表于 2022-6-24 19:55 | 显示全部楼层
本帖最后由 vitalgg 于 2022-6-24 20:02 编辑

grread

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


  1. (defun example:grread (/ flag r)
  2.   "grread 编程示例,当按下键盘时,弹窗提示按的什么键,否则显示光标的坐标"
  3.   (setq r 100.0)
  4.   (setq flag t)
  5.   (while flag (setq gr (grread t 16))
  6.     "处理输入"
  7.     (cond ((= 2 (car gr))
  8.         "按下了键盘按键"
  9.         (cond ((= "x"
  10.               (chr (cadr gr)))
  11.             (alert (strcat "按下了"
  12.                 (chr (cadr gr))))
  13.             "设置条件退出循环"
  14.             (setq flag nil))
  15.           ((= "S"
  16.               (strcase (chr (cadr gr))))
  17.             "以下进行 按了 S的后处理程序"
  18.             (setq r (cdr (assoc "半径"
  19.                   (ui:input "设置"
  20.                     (list (list "半径"
  21.                         r)))))))
  22.           ((= "C"
  23.               (strcase (chr (cadr gr))))
  24.             "以下进行 按了 C 的后处理程序-画圆"
  25.             (entity:make-circle (cadr (grread t 0))
  26.               r))
  27.           (t (alert (vl-prin1-to-string gr)))))
  28.       ((= 3 (car gr))
  29.         "按下鼠标左键"
  30.         (alert "click left"))
  31.       ((or (= 25 (car gr))
  32.           (= 11 (car gr)))
  33.         "按下鼠标右键"
  34.         (alert "click right"))
  35.       ((= 5 (car gr))
  36.         "移动鼠标"
  37.         (princ "当前光标的坐标: ")
  38.         (princ gr))
  39.       (t "其它情况"
  40.         (princ gr)))
  41.     (princ "\n输入[ 退出x | 设置s | 画圆c ]"))
  42.   (princ))

回复

使用道具 举报

发表于 2023-3-11 11:05 | 显示全部楼层
初学者,这个看不懂
(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)  )
这样是偏移线,有大佬解释一下吗?谢谢!
我都用重新生成线来做类似操作,写起来很麻烦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 15:03 , Processed in 0.218570 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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