Jebus_kfc 发表于 2022-7-6 08:13:32

使用Lisp的数组,您可以

我想知道是否有人能帮我开发一个程序,该程序将使用无限列表,我可以调用这些变量。例如如果我循环一个问题,比如“有梁吗?”以及“指定梁的深度?”-在这个过程中,我可以问这些问题,获取输入,运行子例程,然后当所有的事情都说了和做了,我可以回到第一个第二个。。。第n个输入,这样我以后可以在程序中做更多的事情。希望这不会太令人困惑。
 
谢谢

pBe 发表于 2022-7-6 08:24:44

示例代码
 
(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公司

BIGAL 发表于 2022-7-6 08:34:11

另一种方法是读写一个包含每个会话所有信息的txt文件,甚至是从上一个会话吃午饭时重新打开并想继续。
 
只是一个问题,你想生产什么?是钢连接等吗

pBe 发表于 2022-7-6 08:41:20

 
这是一个绝妙的想法,Bigal,这样用户就可以在另一个会话中使用列表。

Jebus_kfc 发表于 2022-7-6 08:43:41

这是我公司的支架自动程序。这个想法是让用户输入gerneal信息,然后等待完成。我很欣赏你所做的工作,我也许可以利用你在这里的一个,但这并不完全是我所希望的。所以我的问题是,我希望能够回忆起从回答的问题中提取的各种用户输入。我和我的一个使用html和其他软件的编程伙伴聊过,他说他会使用“数组”,我不知道这到底是如何翻译成lisp的。

Lee Mac 发表于 2022-7-6 08:52:29

对于LISP,从其他语言翻译通常意味着
 
数组=列表
 
不过,Visual LISP确实提供了一种安全数组数据类型。

Jebus_kfc 发表于 2022-7-6 09:05:24

对不起,如果这是张贴了不止一次,我认为这是一个问题结束。。。我听说过安全阵列,你能举几个例子吗?

Lee Mac 发表于 2022-7-6 09:09:38

 
我可以,但我不认为这是必要的-你最好使用一个列表来完成这项任务。LISP是专门为列表处理而构建的,因此配备了多种列表操作功能。SafeArrays是Visual LISP的一部分,仅用于与ActiveX属性和方法兼容;虽然如果您特别需要一些示例来了解安全阵列,但Visual LISP IDE(VLIDE)帮助文档包含了有关该主题的大量信息。

Jebus_kfc 发表于 2022-7-6 09:18:53

谢谢李,我来查一下。我想学习ActiveX的编程方法,我认为它可以帮助做事情更快。
页: [1]
查看完整版本: 使用Lisp的数组,您可以