儒门小客 发表于 2025-3-1 00:19:19

请教一个问题,写一个倒角命令,带半径记忆功能,半径改为下一个菜单,如何写

选择第一个对象或 [放弃(U)/多段线(P)/半径(R)/修剪(T)/多个(M)],后面这些命令如何用lisp语言编写的,也不知道这个叫啥,不知道怎么搜索,可以指导一下吗?




(DEFUN C:ff()
(setq c(jiyi "\n请输入角度<" 'jiy 0))
(command "fillet" "r"(rtos c))
(command "fillet" )
    (PRINC)
)

(defun jiyi (word bianliang moren /)
      (or (eval bianliang) (set bianliang moren))
      (setq wordtmp(getdist (strcat word (rtos(eval bianliang) 2 4) ">")))
(if (null wordtmp)(setq wordtmp (eval bianliang)))
      (set bianliang wordtmp)
)

zwq8629 发表于 2025-3-2 10:55:39

; 定义全局变量存储上一次的圆角值
(setq *get-radius* 0.0)
(defun c:r (/ current-radius user-radius)
    (setq current-radius (getvar "filletrad"))
    (setq user-radius (getreal (strcat "\n指定圆角半径 <" (rtos (float *get-radius*) 2 2) ">: ")))
    (if (null user-radius)
      (setq user-radius *get-radius*))
    (setq *last-radius* user-radius)
    (setvar "filletrad" user-radius)
    (command "fillet" "u" pause pause)
    (princ)
)

Bao_lai 发表于 2025-3-1 09:16:59

关键字 KeyWord

儒门小客 发表于 2025-3-2 21:58:43

本帖最后由 儒门小客 于 2025-3-2 22:01 编辑

zwq8629 发表于 2025-3-2 10:55
; 定义全局变量存储上一次的圆角值
(setq *get-radius* 0.0)
(defun c:r (/ current-radius user-radius) ...
再请教一下,如何将指定圆角半径,做成二级命名需要点选或二次输入命令再设置,如果不设置,按着上一次的数值倒角C:\Users\ASUS\Desktop\新建文件夹

chslwj521 发表于 2025-3-3 16:22:58

下面的选择是输入“关键词”,去搜索就知道了,关于记忆就是一逻辑问题,设全局变量A为Nil,当B为nil时A为nil,b不为nil时,设A为B,再次输入时,再次输入A显示B值,用旧的B值空格,新值就输入,再将B值设置为新的A值,再输入A时又显示B....,这就是记忆了。
页: [1]
查看完整版本: 请教一个问题,写一个倒角命令,带半径记忆功能,半径改为下一个菜单,如何写