使用Lisp的数组,您可以
我想知道是否有人能帮我开发一个程序,该程序将使用无限列表,我可以调用这些变量。例如如果我循环一个问题,比如“有梁吗?”以及“指定梁的深度?”-在这个过程中,我可以问这些问题,获取输入,运行子例程,然后当所有的事情都说了和做了,我可以回到第一个第二个。。。第n个输入,这样我以后可以在程序中做更多的事情。希望这不会太令人困惑。谢谢 示例代码
(defun c:sample (/ doyourthing a b c)
(defun doyourthing (ls / pt)
(princ (strcat "\nCurrent Beam size " "\t\t" (car ls)))
(setq pt (getpoint "\nTesting purposes: Pick Point"))
(command "_rectangle" "_non" pt "_non" (strcat "@" (itoa (cadr ls))
"," (itoa (caddr ls))))
)
(setq marker (if (null marker) 0 marker))
(while
(progn
(initget"Y L D")
(setq a (getkword (if lst
"\nCreate New List/\"L\" for Existing list ?: "
"\nCreate List: ")))
(if (eq a "D") nil T)
)
(cond ((eq a "L")
(foreach itm (reverse lst)(print itm)(princ))
(setq b (getint "\nEnter List number: "))
(setq c (nth (1- b) (reverse lst)))
(doyourthing c)
)
((eq a "Y")
(prompt "\nEnter Data:")
(setq b (getint "\nSpecify Depth ofBeam: "))
(setq c (getint "\nSpecify Heigth ofBeam: "))
(if (not (setq d (assoc (setq nm (strcat (itoa b) "X" (itoa c))) lst)))
(setq lst (cons (list nm b c (setq marker (1+ marker))) lst)
c (car lst))
(progn
(princ "\Data Already Exist, using previous Data")
(setq c d))
)
(doyourthing c)
)
)
);while (princ)
)
HTH公司 另一种方法是读写一个包含每个会话所有信息的txt文件,甚至是从上一个会话吃午饭时重新打开并想继续。
只是一个问题,你想生产什么?是钢连接等吗
这是一个绝妙的想法,Bigal,这样用户就可以在另一个会话中使用列表。 这是我公司的支架自动程序。这个想法是让用户输入gerneal信息,然后等待完成。我很欣赏你所做的工作,我也许可以利用你在这里的一个,但这并不完全是我所希望的。所以我的问题是,我希望能够回忆起从回答的问题中提取的各种用户输入。我和我的一个使用html和其他软件的编程伙伴聊过,他说他会使用“数组”,我不知道这到底是如何翻译成lisp的。 对于LISP,从其他语言翻译通常意味着
数组=列表
不过,Visual LISP确实提供了一种安全数组数据类型。 对不起,如果这是张贴了不止一次,我认为这是一个问题结束。。。我听说过安全阵列,你能举几个例子吗?
我可以,但我不认为这是必要的-你最好使用一个列表来完成这项任务。LISP是专门为列表处理而构建的,因此配备了多种列表操作功能。SafeArrays是Visual LISP的一部分,仅用于与ActiveX属性和方法兼容;虽然如果您特别需要一些示例来了解安全阵列,但Visual LISP IDE(VLIDE)帮助文档包含了有关该主题的大量信息。 谢谢李,我来查一下。我想学习ActiveX的编程方法,我认为它可以帮助做事情更快。
页:
[1]