mcad_m 发表于 2022-7-5 18:26:17

需要帮助

尊敬的各位:,
我是这个论坛的新用户。我下载了一个autolisp,通过按顺序选择文本来生成CSV文件。它很早就开始工作了。但在格式化我的电脑后,它给出了一个错误。
 
请帮助任何人。
 
(定义c:Csv-S()
(setq r1(ssget))
(setq p1(ssget“p”(列表(cons 0“TEXT”)))
(setq f(打开“c:\\code.csv”“w”)
(setq m1 1)
(setq ind 0)
(重复
(sslength p1)
(setq r3(ssname p1 ind))
(setq p2(entget r3))
(setq p3(cdr(assoc 11 p2)))
(setq s1(cdr(assoc 1 p2)))
(setq x(rtos(汽车p3)2 4))
(setq y(rtos(cadr p3)2 4))
(setq z(rtos(caddr p3)))
(setq m11(itoa m1))
(setq L1(strcat S1”,“x”,“y”,“S1”,“F”)
(写入行L1 f)
(setq ind(+1 ind))
(setq m1(+1 ind)))
(关闭f)
(警报“Hi-CODE.txt-在C驱动器中导出,请在Excel中打开”)
(普林斯)
CSV-IN。LSP

satishrajdev 发表于 2022-7-5 18:40:44

试试这个:-
(defun c:test (/ a f i obj pnt)
(if (setq a (ssget '((0 . "text"))))
   (progn
   (setq f (open "c:\\code.csv" "w"))
   (repeat (setq i (sslength a))
(setq obj (entget (ssname a (setq i (1- i)))))
(setq pnt (cdr (assoc 11 obj)))
(write-line
(strcat (cdr (assoc 1 obj))
          ","
          (rtos (car pnt) 2 3)
          ","
          (rtos (cadr pnt) 2 3)
          ","
          (rtos (caddr pnt) 2 3)
          ","
          "F"
)
f
)
   )
   (close f)
   (alert
"Hi -CODE.txt- is Exported in C drive \n Please Open in Excel"
   )
   )
)
(princ)
)

mcad_m 发表于 2022-7-5 18:44:15

谢谢你的回复,但它仍然不起作用。

tombu 发表于 2022-7-5 18:59:56

 
它怎么不起作用?是否加载?它能跑吗?它创建文件了吗?Did代码。txt在运行之前已经存在?将返回的内容张贴到命令行错误或其他位置。链接到你下载文件的地方会很有用。satishrajdev的代码比您的代码干净得多,但是如果没有任何提示或注释,很难知道您希望代码做什么。

satishrajdev 发表于 2022-7-5 19:03:20

对不起,根据我的设置,我错把“f:\\code.csv”改成了“c:\\code.csv”,但忘了替换它
 
我现在已经更新了代码检查。

Lee Mac 发表于 2022-7-5 19:09:18

有一些调整(未经测试):
(defun c:test ( / csv des enx idx sel )

   (setq csv "C:\\code.csv") ;; CSV to be created (will be overwritten if exists)
   
   (if (setq sel (ssget '((0 . "TEXT"))))
       (if (setq des (open csv "w"))
         (progn
               (repeat (setq idx (sslength sel))
                   (setq enx (entget (ssname sel (setq idx (1- idx)))))
                   (write-line
                     (strcat (cdr (assoc 1 enx)) ","
                           (apply 'strcat
                               (mapcar '(lambda ( x y ) (strcat (rtos x 2 3) y))
                                 (cdr (assoc (if (= 0 (cdr (assoc 72 enx)) (cdr (assoc 73 enx))) 10 11) enx))
                                  '("," "," ",F")
                               )
                           )
                     )
                     des
                   )
               )
               (close des)
         )
         (princ (strcat "\nUnable to open \"" csv "\" for writing."))
       )
   )
   (princ)
)

mcad_m 发表于 2022-7-5 19:19:12

现在它运行良好。
 
谢谢你的帮助。
页: [1]
查看完整版本: 需要帮助