帮助Lisp转换数据aut
寻求帮助,将lisp编写为附件,选择autocad中的数据字段“长度”、“宽度”、“面积”、“周长”切换到excel CAD到excel 2。pdf文件excel Ex.xls
将autocad文件转换为excel Ex.dwg 您是否检查了内置的数据提取命令? 你好,Msasu
我试着提取数据,结果并不像预期的那样,如果你能做同样的这个附件?
如果你不懂我写的东西,请表示同情,因为我英语不好
当做
康阮 这会让你开始,
逐个选择形状,
然后做你的休息工作:
(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))
尊敬的Fixo:
谢谢,但我从来都不知道lisp,这对我来说很难,我不知道如何和从哪里开始,我有科皮粘贴到记事本上面的代码,并保存文件。LSP,不用的时候,你可以指导我吗?,或者你可以完成的未完成的Lisp程序来帮助我?非常感谢你。
当做
康阮 您可能需要查看由Lee Mac编写的有关AutoLISP用法的本教程。 我认为你在复制代码方面有问题,
请尝试附加lisp:
ExWr。LSP
页:
[1]