MikeP 发表于 2022-7-6 09:51:31

如何制作现有cad com

我想接受一个结束的命令,让它自己重复直到它击中esc

Tharwat 发表于 2022-7-6 09:58:00

它来了。
 
Command: multiple

Enter command name to repeat: circle

 
祝你好运
 
塔瓦特

MikeP 发表于 2022-7-6 10:01:32

嗯,这不起作用。我在cad中使用第三方软件,我想要的命令进入了一个无休止的循环,当我这样做时,它不起作用

Tharwat 发表于 2022-7-6 10:06:06

第三个软件的性能和Autocad一样好吗?
 
或者您可以在该软件中调用autolisp例程吗?
 
当做

The Buzzard 发表于 2022-7-6 10:08:47

你在写lisp程序吗?
 
如果是这样的话,那就调查一下。
请参阅此链接:http://www.afralisp.net/archive/lispa/lisp10.htm

MikeP 发表于 2022-7-6 10:10:26

我可以。它在cad内部工作。该软件的所有命令基本上都是lisp语言

Tharwat 发表于 2022-7-6 10:17:50

与函数中提到的Buzzard一样,您可以从以下内容开始
 

(while
(if (and
    (setq pt (getpoint "\n Specify center of circle :"))
    (setq dia (getdist pt "\n Specify diameter of Circle :"))
    )
    (entmakex (list (cons 0 "CIRCLE")
            (cons 10 pt)
            (cons 40 dia)
            )
          )
    (princ)
    )
)

 
塔瓦特

Lee Mac 发表于 2022-7-6 10:19:49

 
仅供参考,无需IF
 

(setq n (trans '(0. 0. 1.) 1 0 t))

(while
(and
   (setq p (getpoint "\nSpecify Center of Circle: "))
   (setq d (getdist p "\nSpecify Diameter of Circle: "))
)
(entmakex
   (list
   (cons 0 "CIRCLE")
   (cons 10 (trans p 1 n))
   (cons 40 d)
   (cons 210 n)
   )
)
)

Tharwat 发表于 2022-7-6 10:21:37

根据他的第一篇帖子,如果OP不想点击ESC来停止循环,那么这是正确的。
 
谢谢
 
塔瓦特

The Buzzard 发表于 2022-7-6 10:26:20

 
迈克,
 
如果这是您试图更改的第三方应用程序,我建议您不要乱动它,除非您对lisp非常有经验,并且您应该检查许可协议是否允许您编辑此程序。如果你想编写自己的应用程序,你应该先学习lisp的基础知识。你可以在我链接你的同一个网站上学习。你也可以随时来这里寻求额外的帮助。你需要做的是更具体地说明你正在努力实现什么,我们可以更好地建议你需要采取的方向。
 
让我们知道,祝你好运,
秃鹰
页: [1] 2
查看完整版本: 如何制作现有cad com