明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 858|回复: 2

[经验] 多用搜索组织你的lisp程序

[复制链接]
发表于 2015-10-24 10:21 | 显示全部楼层 |阅读模式
本帖最后由 zdqwy19 于 2015-10-24 10:24 编辑

前几天因为工作关系要统计一张基坑围护图纸中三轴搅拌桩的幅数,打开图纸一看,哇!那么多!心想还好,可以利用AutoCAD自带的“选择类似对象”和“特性”一次统计出来,多快好省事。结果总是。。。把基坑围护图纸炸开,三轴搅拌桩竟然有的是块,有的是分段圆弧,颜色各异,名称不同,块中套块。。。一个一个地数嫌麻烦,算了还是写个lisp程序吧。

自己先把程序目的和实现过程分析出来,再上网搜索相应的程序代码组装即可。开工:

目的:统计三轴搅拌桩的幅数

思路:把图形中指定半径圆弧的圆心统计出来,除以3就是三轴搅拌桩的幅数

过程:

1.选择图形中的块和圆弧((ssget(list'(0."INSERT,ARC")))

2.筛选出所选择的图形中满足指定半径的圆弧的圆心坐标((if(equal (cdr (assoc 40 (entget ename))) 半径值 1e-6)(append 圆心坐标列表 (trans(cdr(assoc 10 (entget en))) (cdr(assoc 210 (entget en))) 0)))

3.删除坐标值重复的圆心坐标(http://bbs.mjtd.com/forum.php?mod=viewthread&tid=99010http://bbs.mjtd.com/forum.php?mod=viewthread&tid=93205&page=2#pid521011

4.统计圆心坐标数量,除以3就是三轴搅拌桩的幅数

5.找出圆心坐标之间的距离最小值点(http://bbs.mjtd.com/forum.php?mod=viewthread&tid=56310

6.绘制距离最小值点的不交叉连线(http://bbs.mjtd.com/thread-96730-1-1.html

7.在命令行输出所需要的结果:三轴搅拌桩的幅数,距离最小值等(princ "")

8.观察图形是否有重复统计或漏掉未统计的图形

步骤1-4为基本过程,5-6为复核观察过程,7-8为输出结果过程,开动搜索搜集1-7各过程所需的代码组装即可,lisp程序的缺点就是运行速度有点慢,5000多幅三轴搅拌桩统计用时大约3分钟,不过比人工快多了。代码及程序就不贴了,毕竟都是从网上搜罗来的,要尊重他人的劳动成果!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-10-24 11:58 | 显示全部楼层
就是发个思路么?
发表于 2015-10-24 12:45 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-19 07:00 , Processed in 0.399537 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表