cad边长提取lisp_用lisp怎么提取cad中文字-内容-*通用符匹配(值 :设定)生成excel文件...

这是一个使用LISP语言编写的CAD脚本,用于批量选择并提取含有特定字符(如'K')的文字,然后将这些文字及其坐标整理成Excel表格。脚本首先关闭变量,加载vlax扩展函数,接着用户选择含有字母K的文字,脚本进行排序并计算文字间的Y高度差。如果高度差大于20,则新起一行写入Excel,否则在同一行内写入。最后,脚本将结果保存到指定的Excel文件中。
摘要由CSDN通过智能技术生成

(defun C:WZ ( / n ss &kw L ff %k %k1 %k2 %k3 %k4 %k5 %k6);批量选择文字到记事本

(setvar "cmdecho" 0) ;;关闭变量

(setvar "blipmode" 0);;关闭控制点

(vl-load-com)        ;;加载vlax扩展函数

(setq n 0 ss '())    ;;取得一个空表

(princ "\n请选择文字")

(setq &kw (ssget '((0 . "TEXT,MTEXT") (1 . "*K*"))));选择文字,文字内容有字母K

(if (/= &kw nil);;如果有选择了文字

(progn

(setq L (sslength &kw)

ff (open "d://文字到表格.xls" "w");建立文本;W会把文本里面的内容清除

);;建立的文本在D盘就可以看到

(repeat L

(setq &kw1 (entget (ssname &kw n))

%k1 (cdr (assoc 10 &kw1))  ;;取得文字坐标

%k2 (cdr (assoc 1 &kw1))   ;;取得文字内容

ss (cons (list %k1 %k2) ss);;加入选择集

n (+ n 1)

)

)

(setq ss (vl-sort ss (function (lambda (x y)(

(setq ss (vl-sort ss (function (lambda (x y)(> (cadr (car x)) (cadr (car y)))))));;Y排序

(setq &kw1 (nth 0 ss)

%k1 (car (car &kw1));;取得第一个文字X坐标

%k2 (cadr (car &kw1));;取得Y坐标

%k3 (cadr &kw1);;取得文字内容

n 1

)

(repeat (- L 1)

(setq &kw2 (nth n ss);;取得第二个文字

%k4 (car (car &kw2));;取得X坐标

%k5 (cadr (car &kw2));;取得Y坐标

%k6 (cadr &kw2);;取得内容

%k (- %k2 %k5);;Y高度比较

n (+ n 1)

)

(if (> %k 20)

(progn

(princ %k3 ff);用princ写入的话,就是这个格式

(princ "\n" ff);这个格式就换行

(setq %k1 %k4 %k2 %k5 %k3 %k6)

)

)

(if (and (<= %k 20) (

(progn

(princ %k3 ff)

(princ "\t" ff);这个格式就是在同一行下一个内容

(setq %k1 %k4 %k2 %k5 %k3 %k6)

)

)

(if (and (<= %k 20) (> %k1 %k4))

(progn

(princ %k6 ff)

(princ "\t" ff)

)

)

)

(princ %k3 ff)

(close ff);;关闭文本(结束后必须关闭)

)

)

(prin1);;结束

)

(prompt "\n《C:WZ》文字写入表格")

(prin1)

;以上复制记事本以(.lsp)为后缀命名。这个程序就是一个写入表格的示范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值