【CAD】〖30〗生成圆孔明细表
2018-09-19
AUTOCAD可以这样玩!!!
授人以鱼不如授人以渔!!!
★★如果在ACAD下,你工作中有需要把重复的劳动希望用插件替你瞬间完成的,可以在这个论坛发帖说明详细的要求,我看到可以抽空给你写代码。★★
================================
前言:
1、LISP源码在AUTOCAD(2004-2019)下执行。
2、LISP源码加载方法:
a.拷贝代码保存成扩展名.lsp的文件
b.ACAD下执行命令APPLOAD,找到保存的LSP文件,点加载按钮。
重要!!:如同WIN下很多软件需要VC 运行库支持一样,下面LISP源码执行前需要LISP通用函数库(XDRX API),安装一次即可,自行百度下载 XDRX API 下载安装。
DISCUZ论坛复制代码有可能乱码,正确的复制论坛LISP代码的方法见:https://www.52pojie.cn/forum.php … 45&pid=20877863
复制代码不要复制行 。
===========================
问题:
统计园明细表并编 ,编 前缀按半径排升序,半径相同的编 前缀相同,A1,A2.. B1,B2….
===========================
演示:

===========================
★★技巧:LISP语言defun后面定义的是函数或者命令名,命令名可以直接在ACAD命令行输入之行,defun 后面 c:接着的单词是命令名。★★
下面代码,加载后,执行命令:XDTB_TJCir
===========================
[Diff] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
(defun c:XDTB_TJCir (/ #height class1 class2 ents lst pt ss str1 str2 tlst2 val x y
)
(defun _maketable (lst)
(if (setq pt (getpoint “n表格插入点:”))
(progn (setq lst (xd::table:celltile
(list “序 ” “编 ” “孔径” “X坐标” “Y坐标”)
1
lst
)
lst (cons (list “孔编 表” nil nil nil nil) lst)
)
(XD::Table:MakeFromList
lst
(trans pt 1 0)
#xd_var_text_height
(/ #xd_var_text_height 2.0)
)
)
)
)
(defun _format (val)
(xdrx_string_regexpr “(=\.[0-9]+)0{1,}$” val “”)
)
(defun _write (lst)
(setq tlst2 nil)
(setq class1 “A”)
(mapcar “(lambda (x)
(setq class2 “0”)
(mapcar “(lambda (y /)
(setq str1 (strcat class1 (setq class2 (itoa (1+ (atoi class2))))))
(xdrx_text_make
(cadr y)
str1
#xd_var_text_height
(xd::ucs:angle)
)
(XD::Text:AdjustAlignMent (entlast) 1 2)
(xdrx_entity_move
(entlast)
(trans (xd::geom:get9pt (entlast) 5) 1 0)
(cadr y)
)
(setq str2 (strcat “Φ” (rtos (* 2 (last y)) 2 #xd_var_text_bits))
y (trans (cadr y) 0 1)
)
(setq tlst2 (cons (list str1
str2
(_format (rtos (car y) 2 4))
(_format (rtos (cadr y) 2 4))
)
tlst2
)
)
)
x
)
(setq class1 (chr (1+ (ascii class1))))
)
lst
)
(_maketable (reverse tlst2))
)
(if (not #xd_var_text_height)
(setq #xd_var_text_height 3.5)
)
(if (setq val (getreal
(xdrx_prompt “n输入字高:” t)
)
)
(setq #xd_var_text_height val)
)
(if (not #xd_var_text_bits)
(setq #xd_var_text_bits 1)
)
(if (setq val (getint
(xdrx_prompt “n输入小数位数:” t)
)
)
(setq #xd_var_text_bits val)
)
(if (setq ss (xd::ssget “n选取统计的圆” “(((0 . “circle”)))))
(progn (xdrx_begin)
(xdrx_sysvar_push “(“dimzin” 0))
(setq ents (mapcar “(lambda (x)
(list (xdrx_getpropertyvalue x “area”)
(cons x (xdrx_getpropertyvalue x “center” “radius”))
)
)
(xdrx_pickset->ents ss)
)
)
(setq ents (xd::list:groupbyindex ents 0.0))
(setq ents (vl-sort ents “(lambda (x y) (
(setq ents (mapcar “(lambda (x)
(setq y (cdr x))
(vl-sort y
“(lambda (x1 y1)
(
(car (xdrx_getpropertyvalue (car y1) “center”))
)
)
)
)
ents
)
)
(xd::text:init 1)
(_write ents)
(xdrx_end)
)
)
(princ)
)
]以前发帖索引:
【CAD】〖29〗图块连线标注
【CAD】〖28〗线长分组统计表
【CAD】〖27〗批量缩放图块(按照基点或者中心点)
【CAD】〖26〗多段线顶点列表统计(支持凸度和边长)
【CAD】〖25〗ACAD Wipeout命令增强 – 动态制作遮盖
【CAD】〖23〗调整表格(TABLE)到最合适大小
【CAD】〖22〗打造最强的数字文字“拷贝+1”
【CAD】〖21〗多段线(根据线型、线宽、图层、颜色)分类统计生成表格
【CAD】〖20〗非模式对话框测量长度、面积工具
【CAD】〖19〗快速选择工具.
【CAD】〖18〗增强ACAD偏移命令(曲线多重偏移)
【CAD】〖17〗沿线坐标列表标注
【CAD】〖16〗生成苗木图块统计表
【CAD】〖15〗增强ACAD的JOIN命令(支持容差、让低版本CAD支持连接SPLINE)
【CAD】〖13〗生成图块轮廓线
【CAD】〖12〗AutoCAD下XDRX API的拓扑处理相关函数(二)让填充具备拓扑能力
【CAD】〖11〗AutoCAD下XDRX API的拓扑处理相关函数(一)让面域具备拓扑能力
【CAD】〖10〗超强的融合线段工具
【CAD】〖9〗图块遮罩插件
【CAD】〖8〗批量处理修改硬盘DWG,所有实体(支持嵌套块)转0层,同时深度purge图形
【CAD】〖7〗支持正则表达式的文本替换工具
【CAD】〖6〗像ARCGIS 一样,在AUTOCAD里面拓扑造区
【CAD】〖5〗MTEXT,TEXT文字转线框
【CAD】〖4〗AUTOCAD表格(TABLE)转EXCEL
【CAD】〖3〗批量清理(PURGE整个目录)DWG文件
【CAD】〖2〗批量处理清除DWG“教育版”打印戳记
【CAD】〖1〗一键批量连线标注植物图块
http://www.pinlue.com/style/images/nopic.gif
相关资源:CAD快速超级排孔软件_cad自动排孔插件,cad排孔插件-制造工具类…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!