在《中望CAD+API接口应用之Lisp篇(一)》中就如何在中望CAD+中编写Lisp程序、如何加载、运行自定义程序和大家做了分享,这次将针对上篇文章中提到了几个问题继续引入一些新的常用函数,完善中心线生成这个小程序。 上篇文章提到了程序不能自动识别圆、不能批量生成中心线、没有相关图层、中心线超出圆的长度不能选择,那么我们应该如何改进程序呢,会不会程序变得很复杂呢。其实这些需求在中望CAD+实现起来是很方便的,经过上次的程序入门介绍后相信大家对Lisp已经不那么陌生了,总的来说我们手动可以绘制的对象基本都可以程序调用的方式绘制,这个是勿庸置疑的,大家可以充分的发挥想象,把枯燥的设计工作变得更加有意义。 我们先来看一下改进后的程序的效果再来分析所用的新函数。 我们通过上图可以看出来,我们待选择对象有很多的种类包括:圆、直线、圆弧、多段线,那么我们怎么才能通过框选只选择圆而排除其他对象呢,这里面用到了一个选择集的函数ssget,送过给这个函数添加过滤条件这可以来实现对象的分类选取。 批量生成一般我们都要通过循环函数来实现,这里引用While函数。 图层可以通过command函数直接调用-Layer命令,用后台运行的方式创建图层。 输入数值采用getreal函数键盘输入。 当然实现一个功能可以有很多的途径,比如本例中输入函数也可以选择getint,具体区别可以在帮助中看到,希望大家可以通过一个函数学习到一类函数的应用,这样才能事半功倍。 这个程序相对于上一版主要是添加了选择集函数,首先通过框选创建一个选择集,过滤条件是“circle”,然后测量选择集中对象的数量(即有多少个圆),然后进入循环,从选择集中第一个对象(编号是0)开始记录信息直到生成中心线(这个和改动前的程序原理一样),开始判断进入下一个循环,直到循环数超过了选择集中对象数量循环结束。这样一个自动批量生成中心线的程序就做好了。 以上可以看出在中望CAD+里写一些小程序其实并不困难,这里面用到了一些函数都是很常见的函数,往往就是这些常见函数就能解决我们工作中的大问题。这里面介绍的都是Lisp的一些入门级的知识,只会这些是远远不够的,希望广大的CAD设计师、爱好者也能积极的分享设计经验,大家一起相互提高。 写这篇文章的另一个目的也是想告诉广大的设计界朋友,经过几年的发展,国产软件无论是功能上还是接口方面都和国外主流软件没有太大的差异,相比之下国产软件优质的服务是国外软件的无法比拟的,希望中望软件早日能够扛起国产软件的大旗。(作者:王先生,设计工程师) |
正在阅读:中望CAD+API接口应用之Lisp篇(二)中望CAD+API接口应用之Lisp篇(二)
2012-10-16 12:18
出处:PConline原创
责任编辑:caoweiye