timmy521 发表于 2020-2-23 09:54:22

fs100-10000这样的命令怎么用程序定义

如题,我想定义比如FS100-Fs10000这样的偏移命令,直接在命令行输入 FS100即为单向偏移100
在论坛里有如下代码,批量定义函数的,但是我总改不成功,根据这个我改为(READ (strcat "(defun c:Fs" (itoa i) "()(command"OFFSET" i))"))
但是read总是报错!,是不是这里面不能有command???
(defun Test000PreSet (/ i lst)
(setq        i   0
        lst "(Progn"
)
(while (< i 800)
    (setq i (1+ i))
    (if        (< i 10)
      (setq lst(strcat lst"(defun c:t00"(itoa i)"()(c:test00"(itoa i)"))"))
      (if (< i 100)
        (setq lst(strcat lst "(defun c:t0" (itoa i)"()(c:test0"(itoa i)"))"))
        (if (< i 800)
          (setq        lst(strcat lst "(defun c:t" (itoa i) "()(c:test" (itoa i) "))"))
        )
      )
    )
)
(setq lst (strcat lst ")"))
(eval (read lst))
(princ)
)
(Test000PreSet)

timmy521 发表于 2020-2-23 09:54:40

求助!!!!

timmy521 发表于 2020-2-23 19:38:33

(defun C:tt (/ i lst)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(setq        i   0 )
(while (< i 5000000)
    (setq i (1+ i))
   (eval (list 'defun (read (strcat "c:Fs" (itoa i))) nil (list 'command"OFFSET" i)))
        )
)
感谢 济南-济南-结构-insipid的东西,但是这个能不能,用什么,就加载什么啊,如果,全部初始定义,程序加载 就在多了,

start4444 发表于 2020-2-23 21:55:19

加载之后就可以用FS100-Fs10000作为快捷命令
(defun pyml_pl (/ i)
        (setq i 0)
        (repeat 10000
                (setq i (1+ i))
                (eval
                        (read (strcat "(defun c:py" (itoa i) " () (command \"OFFSET\" " (itoa i) " (entsel) pause))"))
                )
        );repeat
        (princ)
)
(pyml_pl)

tryhi 发表于 2020-2-24 17:19:40




用反应器可以“定义”无限多个命令,比如上例中的sc后面带任何一个实数均可缩放
页: [1]
查看完整版本: fs100-10000这样的命令怎么用程序定义