nguyenkhanhluck 发表于 2022-7-6 00:00:57

帮助Lisp转换数据aut

寻求帮助,将lisp编写为附件,选择autocad中的数据字段“长度”、“宽度”、“面积”、“周长”切换到excel CAD到excel 2。pdf
文件excel Ex.xls
将autocad文件转换为excel Ex.dwg

MSasu 发表于 2022-7-6 00:11:49

您是否检查了内置的数据提取命令?

nguyenkhanhluck 发表于 2022-7-6 00:27:29

你好,Msasu
 
我试着提取数据,结果并不像预期的那样,如果你能做同样的这个附件?
 
如果你不懂我写的东西,请表示同情,因为我英语不好
 
当做
康阮

fixo 发表于 2022-7-6 00:39:53

这会让你开始,
逐个选择形状,
然后做你的休息工作:


(defun c:exwr (/ ar del elist en ent filename fn hgt i maxp minp obj per pmax
pmin rowdata widxldata )
(setq i 0 )
(setq xldata (cons
(list "" "Length (mm)" "Width (mm)""Perimeter" "Area")xldata))
(while

   (setq ent (entsel "\nSelect a rectangle one by another,
press Enter to stop loop: "))
   (if
(and
(setq elist (entget (setq en (car ent))))
(eq (cdr (assoc
0 elist)) "LWPOLYLINE")
(= (cdr (assoc 70 elist)) 1)
(and
(> (cdr (assoc 90 elist)) 5)
   (< (cdr
(assoc 90 elist)) 13)

)
)
(progn
   (setq obj
(vlax-ename->vla-object en))

(vla-getboundingbox obj 'minp 'maxp)
   (setq
pmin (vlax-safearray->list minp)
    pmax
(vlax-safearray->list maxp))
   (setq
wid (abs (- (car pmax) (car pmin)))

hgt (abs (- (cadr pmax) (cadr pmin)))

per (vla-get-length obj)
    ar (vla-get-area
obj)
    )
   (setq
rowdata (list
       (itoa (setq i (1+
i)))
       (rtos wid 2
2)
       (rtos hgt 2
2)
       (rtos per 2
2)
       (rtos ar 2
2)))
   ;; gather data in a
list
   (setq xldata (append xldata (list
rowdata)))
   )   


    (prompt "\nNothing or not closed pline
selected.")

)   
)
(if (> (length xldata)
1)
(progn
    ;; put delimiter to suit:

    (setq del "\t")


    ;; build your text file path here:

    (setq filename (strcat (getvar
"dwgprefix")
      (vl-filename-base (getvar
"dwgname"))

"_Dim.txt"))
    (setq fn (open filename
"w"))
    ;; Write info to a file


    (mapcar

'(lambda (x)
(write-line
    (apply
'strcat
    (append (list (car
x))
   (mapcar '(lambda (y) (strcat del
y))
      (cdr
x)
      )

)
    )

fn
    )

)

xldata
      )



    (close
fn)
    (gc)
    ;; just to see
a result
    (startapp "notepad"
filename)


)
)
(alert "Open text file with Excel,\nthen save as
.xls or .xlsx file")
(princ)
)
(princ "\n\t***\tStart command
with EXWR \t***")
(princ)
(or (vl-load-com)(princ))

nguyenkhanhluck 发表于 2022-7-6 00:46:24

尊敬的Fixo:
 
谢谢,但我从来都不知道lisp,这对我来说很难,我不知道如何和从哪里开始,我有科皮粘贴到记事本上面的代码,并保存文件。LSP,不用的时候,你可以指导我吗?,或者你可以完成的未完成的Lisp程序来帮助我?非常感谢你。
 
当做
康阮

MSasu 发表于 2022-7-6 01:00:38

您可能需要查看由Lee Mac编写的有关AutoLISP用法的本教程。

fixo 发表于 2022-7-6 01:03:05

我认为你在复制代码方面有问题,
请尝试附加lisp:
 
ExWr。LSP
页: [1]
查看完整版本: 帮助Lisp转换数据aut