zlq1318 发表于 2018-5-16 13:00:54

请教:如何设置方向复制默认的间距和个数

本帖最后由 zlq1318 于 2018-5-16 13:03 编辑

下面这个lisp的功能实现方向复制,但是每次用的时候都要输入距离dis和个数num,对于特定工程来说有时候距离个数是个定值,为避免每次重复输入,如何默认程序输入的距离和个数是上次你输入的,求教各位大神。譬如我要复制4条直线,距离为1500。输入1500和4后,下次我要是再用如何默认是1500和4,从而避免反复输入。
诚挚感谢高手相助。


(defun c:cc()    ;;方向复制,复制num个,间距dis
(setq ent (ssget)   
spt (getpoint "\n请输入方向起点:")   
ept (getpoint "\n请选择方向终点:" spt)   
dis (getdist "\n请输入距离:")   
num (getreal "\n请输入要复制的个数:")   
ang (angle spt ept)      
pt (list 0 0)   
pt1(list 0 0) n 0 )
(while (< n num) (setq copypt (polar pt ang dis))
(command "copy" ent "" pt1 copypt)
(setq pt copypt)
(setq n (1+ n))
))


pzweng 发表于 2018-5-16 16:33:55

(defun c:cc ();;方向复制,复制num个,间距dis
(or dis (setq dis 1500))
(or num (setq num 4))
(setq        ent (ssget)
        spt (getpoint "\n请输入方向起点:")
        ept (getpoint "\n请选择方向终点:" spt)
        dis (cond((getdist (strcat "\n请输入距离<" (rtos dis 2 2) ">:"))) (dis))
        num (cond((getint (strcat "\n请输入要复制的个数<" (itoa num) ">:"))) (num))
        ang (angle spt ept)
        pt(list 0 0)
        pt1 (list 0 0)
        n   0
)
(vl-propagate 'dis)
(vl-propagate 'num)
(while (< n num)
    (setq copypt (polar pt ang dis))
    (command "copy" ent "" pt1 copypt)
    (setq pt copypt)
    (setq n (1+ n))
)
)
如果默认了怎么改?

zlq1318 发表于 2018-5-21 12:19:11

本帖最后由 zlq1318 于 2018-5-21 12:20 编辑

pzweng 发表于 2018-5-16 16:33
(defun c:cc ();;方向复制,复制num个,间距dis
(or dis (setq dis 1500))
(or num (setq num 4))
...
谢谢这位兄弟!我试了下,正是我要想实现的这种功能。
再次感谢!:lol:lol
lisp不在于功能有多强大,在于把复杂重复的劳动简单化,够高效的解决各种问题:)

没有昵称呀 发表于 2022-10-3 16:52:31

pzweng 发表于 2018-5-16 16:33
(defun c:cc ();;方向复制,复制num个,间距dis
(or dis (setq dis 1500))
(or num (setq num 4))
...

请教一下,如何在点选方向的时候就把距离给读取,作为下一步的默认距离呢?

自贡黄明儒 发表于 2018-5-16 15:15:20

这两个值,你可贮存在注册表中、记事文本中,下次用时调取出来。

bai2000 发表于 2018-5-16 16:17:20

zhongwei-wu 发表于 2019-11-7 18:47:19

学习了,感谢分享

sunny_8848 发表于 2019-11-7 19:23:28

感觉阵列好用些

没有昵称呀 发表于 2022-10-3 16:53:59

请教一下,如何在点选方向的时候就把距离给读取,作为默认的距离呢?

Dea25 发表于 2022-10-3 21:25:24

CAD自带的工命令:COPY [阵列(A)] 不是可以满足吗?同时建议变量定义成局部变更。
页: [1] 2
查看完整版本: 请教:如何设置方向复制默认的间距和个数