cad引出线段lisp_AutoCAD表格导出(AutoLISP原程序)——好用的AutoCAD文本和线条表格导出工...

这是一个使用AutoLISP编写的AutoCAD实用程序,用于将AutoCAD中的文本和线条表格导出为CSV文件。用户可以选择表格生长方向,并在选择字段后自动进行边界检测、填充和移动操作。程序还会提示用户指定保存的文件名,方便将数据导出到外部文件进行进一步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(defun c:bd( / oldcolor oldpltp dist pt e1 e2

n fil_w x str nf st l e m p1 p2 ttl tt ptx pty)

(setvar "modemacro" " YuCheng ")

(command "_.undo" "m")

(command)

(setvar "cmdecho" 0)

(setq n 0)

(setq oldcolor (getvar "cecolor"))

(setvar "CECOLOR" "red")

(setq oldpltp (getvar "PLINETYPE"))

(setvar "PLINETYPE" 1)

(setq e1 nil)

(setq ss (ssadd))

(setq sh (ssadd))

(setvar "osmode" 32)

(initget 0 "Up Down Left Right")

(setq fx (getkword "确定表格生长方向Up/Down/&ltDown&gt:"))

;(setq dist (getdist"\n&gt&gt**********&gt&gt输入行间距:"))

(setvar "osmode" 0)

(command)

(print '&gt&gt**********&gt&gt注意将打开的写入文件关闭,或更换文件名!!!)

(while (setq pt (getpoint"\n&gt&gt**********&gt&gt点击选择字段:"))

(command "_.boundary" "a" "i" "n" "" "" pt "")

(command)

(if (= (cdr (assoc 0 (entget (entlast)))) "LWPOLYLINE")

(setq e2 (entlast))

(setq e2 e1)

)

;(command "_.pedit" e2 "w" 1 "")

(command)

(if (/= e2 e1)

(progn

(setq ss (ssadd e2 ss))

(setq e1 e2)

(command "_.hatch" "s" e1 "")

(command)

(setq sh (ssadd (entlast) sh))

(redraw e2 2)

(setq n (+ n 1))

(print '&gt&gt*****&gt&gt已选字段数:)

(prin1 n)

)

(print '&gt&gt**********&gt&gt所选字段无效!!!)

)

)

(setq fil_w (getfiled "请指定保存的文件" "table" "csv" 1))

(setq x (open fil_w "w"))

(setq str "1")

(setq nf 0)

(while (/= str "")

(setq str "")

(setq st "")

(setq l 0)

(while (/= l n)

(if (setq e (ssname ss l))

(progn

(setq m 4)

(setq p1 (reverse (entget e)))

(while (&gt m 0)

(setq p1 (cdr p1))

(setq m (- m 1))

)

(setq p1 (cdar p1))

(setq m 12)

(setq p2 (reverse (entget e)))

(while (&gt m 0)

(setq p2 (cdr p2))

(setq m (- m 1))

)

(setq p2 (cdar p2))

(if (or (setq ttl (ssget "w" p1 p2 '((0 . "text")))) (setq ttl (ssget "w" p1 p2 '((0 . "mtext")))))

(progn

(setq tt (cdr (assoc 1 (entget (ssname ttl 0)))))

;(setq distx (abs (- (car p2) (car p1))))

(setq disty (abs (- (cadr p2) (cadr p1))))

)

(setq tt "")

)

)

(setq tt "")

)

(setq st (strcat st tt ","))

(setq str (strcat str tt))

(setq l (+ l 1))

)

(print)

(princ st)

(write-line st x)

(setq ptx (car p1))

(setq pty (cadr p1))

(cond

((= fx "Up") (setq pt (list ptx (+ pty disty) 0)))

((= fx "Down") (setq pt (list ptx (- pty disty) 0)))

((= fx nil) (setq pt (list ptx (- pty disty) 0)))

)

(setq nf (+ nf 1))

(command "_.move" ss sh "" p1 pt)

(command "_.pan" pt p1)

(command)

注意不是书籍,是随书源代码 《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》重点讲解autolisp、dcl、visual lisp三合一的autocad二次程序开发技术。《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》分为4篇,共35章。第1篇(第1~10章)为autollsp程序设计基础篇,主要介绍了autollsp的基本结构、语法、功能函数、对象属性、循环、判断式、子程序、选择集、符号表、读文件以及写文件等autolisp程序设计的相关知识与技巧。第2篇(第11章)为62个精选实用autolisp程序设计范例,通过精讲62个autolisp程序设计范例,让读者将autolisp知识融会贯通。第3篇(第12~21章)autolisp与dcl对话框整合应用,主要介绍了dcl的基础知识、dcl对象属性的定义速查、autolisp掌控dcl的关键技巧;还介绍了编辑框、按钮文字、切换开关、单选按钮、列表框、下拉菜单、图像,图像按钮及滑动条的设计技巧;另外介绍了新手常犯错误分析及应对技巧。第4篇(第22~35章)为visuallisp程序设计应用与整合,主要介绍visual lisp的基本环境、重要函数程序调试;还介绍了autocad activex对象控制以及visual lisp在e2d、3d、文字编辑、图层管理、块与属性管理、options选项控制、excel及word中的应用;最后介绍了visual lisp应用程序的创建与维护。   《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》语言风趣生动,内容全面,是一本不可多得的完全学习指南。它可以帮助读者扎扎实实学好autolisp+dcl+visual lisp程序设计,迅速提升读者的设计效率及绘图品质。《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》非常适合autocad的初、中、高级读者使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值