将是/否添加到lisp
大家好,我是新来的&我是自学lisp的,所以我可能还达不到你们的任何水平。
我的问题是:
我有两个Lisp程序的,我正试图加入。
第一个lisp用于输入高度在其内的天花板文本椭圆。
第二个lisp是一个标记(一端有一个甜甜圈的弧)。
这两个lisp都很好用,我试图将标记lisp添加到椭圆lisp的末尾,但有一个“do you want to add a tag”的问题。
不确定你是否理解我的意思。
我希望Lisp程序最终是这样。。。。。
启动lisp,
输入天花板高度
屏幕上高度椭圆位置的拾取点
然后一个问题问“你想添加标签吗?”
如果回答“是”,则标记lisp将开始,如果回答“否”,则lisp将结束。
任何帮助都会很好,谢谢。
保罗 这将是最基本的方法。在椭圆代码和标记代码之间添加以下行:
(initget "Y N_Yes No")
(setq option (getkword "\nDo you want to add a tag? (Yes/No): "))
(if (= option "Yes")
(progn
(YOUR_TAG_CODE_HERE) ; add tag if yes
)
) 好像没法工作我不知道我做错了什么 你应该发布你的代码,以便人们可以查看并提供进一步建议。
编辑:欢迎来到论坛! 对,这是高度代码。
; Elipse with user defined height inserted
; for ceiling and soffit heights
; Error routine
(defun errordef (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setq *errer* olderr)
(setvar "CLAYER" lay)
(princ)
)
(defun c:ctx(/ ht p th se sn ee en e n te tn np)
(setq olderr *error*
*error* errordef)
(setvar "CMDECHO" 0)
(setq lay (getvar "CLAYER"))
(setq ht (getstring "\nHeight : " 1))
(setq p(getpoint"\nInsertion Point -> "))
(setq th (getvar "TEXTSIZE"))
(setq hth (/ th 2))
(command "LAYER" "MA" "LEVEL" "")
(setq se (rtos (/ (* th (strlen ht)) 1.7)))
(setq sn (rtos (* th 1.2)))
(setq ee (strcat "@" se "<0"))
(setq en (strcat "@" sn "<90"))
(command "ELLIPSE" "c" p ee en)
(setq e (car p))
(setq n (cadr p))
(setq te (- e (/ (* (strlen ht) th) 2.1)))
(setq tn (- n (/ th 2)))
(setq np (list te tn 0))
(command "TEXT" np "" "0" ht)
(setvar "CLAYER" lay)
) 请允许我向您介绍:
R、 Robert Bell“默认”方法
这是他的原文(我花了很长时间才找到):
*** 当我们讨论这个主题时,只需添加此“是/否”功能(如果安装了express)。
但不推荐初学者使用,请保留它….'-) 不建议使用ACET-*功能。
~
...认真地 我同意se7en,除非一个人很匆忙(笑话)。顺便说一句,很高兴你能挂在这里。我们肯定会从你身上学到很多…-) 这正是我想要的。非常感谢。
刚刚在OSMODE中添加了一些tweek&现在它已经很完美了
再次感谢各位
页:
[1]
2