anandhan 发表于 2022-7-5 20:36:44

我们提供了典型的管道等距布线,但每个布线管道长度将取决于管道直径。我试图使用lisp获得attomaticaly的价值。
 
我得到了Excel的值,试着直接用Excel表中的值。

pBe 发表于 2022-7-5 20:40:00

我猜想从Excel输入到Lisp的这个线程与这个查询有关。
 
听起来真的很简单,只需要理解就行了。在运行“管道等轴测例程”之前,您是否告诉我们需要CSV文件中的值?CSV文件在不断变化?还是反过来?CSV文件是静态的?
 
我需要一片阿斯匹林

anandhan 发表于 2022-7-5 20:43:14

是的,从Excel输入到Lisp的这个线程与这个查询相关。

hanhphuc 发表于 2022-7-5 20:44:36

我的理解:
 
如果字符串为
“P,ND,150011800”
你分配这个(setq ND1500“11800”);也是25
 

anandhan 发表于 2022-7-5 20:49:33

是的,你是对的。。。。我的最小ND=25只。。。
 
ND25=“3000”或“6000”有时会有所不同,这就是为什么我需要从excel表中获取。
 
每个管道高达ND 4000。。。。。

pBe 发表于 2022-7-5 20:52:00

 
这一点很清楚,奇怪的是“assing_val”例程。条件是什么?寻找什么价值观?这些价值观的来源是什么?
 
(if (and (= (substr tmpstr 3 6) "ND,500") (/= (substr tmpstr 9 1) "0")) (setq ND500 (substr tmpstr 10 5)))
 
他们是否依赖于图纸?还是取决于列表?因此,如果我在同一个CSV文件和相同项目的每个图形上运行“assing\u val”,结果是相同的。
 
多重条件的基础是什么?对于每个绘图会话,“assing_val”每次都有不同的条件[如果是]?
 
不同的lisp代码?或者不同的CSV文件?
 
现在我需要两片阿斯匹林

anandhan 发表于 2022-7-5 20:56:49

需要这样做

pBe 发表于 2022-7-5 20:58:32

很肯定有人会帮助你,耐心点。至于我。。。。。
 

 
pBe就在那里。

hanhphuc 发表于 2022-7-5 21:01:35

 
也许OP只是想分配变量?即:ND1500,值返回“11800”
不管任何情况。
 

(defun assign_val (str / i $ l )
(while (setq i (vl-string-search "," str))
   (setq l   (cons (substr str 1 i) l)
str (substr str (+ 2 i) (- (strlen str) i))
) ;_ end of setq
   ) ;_ end of while
(setq l (reverse (vl-remove "" (cons str l))))
(setq $ (nth 2 l) i (read $ ))
(if (and (numberp i) (zerop (rem i 50)) (<= 25 i 2000))
   (set (read (strcat (nth 1 l) $)) (nth 3 l))
   ) ;_ end of if
) ;_ end of defun

 
这就是为什么知道和理解来源是重要的。
 
对于这个特定的字符串语法,从(读取行…)价值
 
UET,ND,MI,150026201460,,,
,,,,,,,,
45Y,ND,MI,150250400400,,
45Y,ND,MI,200330540540,,
,,,,,,,,
,,,,,,,,
NWP,ND,-,300,50440,,,
 
 
(defun _string2List(str)(if(setq lst(read(strcat)(“(vl string translate)”,“str)”))))(mapcar’(lambda(x)(if(numberp x)(itoa x);

pBe 发表于 2022-7-5 21:03:37

页: 1 [2]
查看完整版本: 这么做的简单方法???