水利水电工程地质图件包含有大量的曲线,而且经常要对曲线进行各类操作,例如,切制工程地质剖面,计算距离、面积等。在Auto Lisp中不具备这样的函数,AutoCAD 2000版以后推出的Visual L isp 提供了这样一组函数,对曲线处理大有帮助,如表8-1所示。
表8-1 Vlisp曲线操作函数
续表
熟练掌握以上Visual Lisp语言的曲线处理函数,在编程中应用,会使得程序的编制变得非常短小精悍,程序运行速度加快。
【例1】 在地质平面图上,要计算钻孔距离剖面线的最近距离,作为钻孔的投影距离,当剖面线是一条折线或含有圆弧段时,可以使用“返回在一个曲线上和一个指定点最近的一点”,计算出最近点以后,再计算投影距离。假设钻孔坐标点在变量pt中,e1是剖面线实体,可以使用如下语句:
(setq ee1 (vlax-ename->vla-object e1)) ;剖面线转成Vlisp变量
(setq bpt (vlax-curve-getClosestPointTo ee1 pt)) ;计算最近点
(setq dt1 (distance pt bpt)) ;计算投影距离(www.xing528.com)
投影距离计算出来以后,计算钻孔在剖面线上的水平距离,使用如下语句:
(setq dt1 (vlax-curve-getDistAtPoint e2vl bpt))
【例2】 以下程序是实现在三维空间中判断一条曲线是否在一个平面上,如果存在这样的一个平面,进而计算出该平面的方程。
计算出平面方程的系数以后,就可以通过程序对平面进行操作了。
【例3】 物体沿线均布,假如要将一个物体(二维或三维实体都可以),沿一条任意曲线均匀分布,当曲线含有圆弧段时,仅仅使用Auto Lis p是不易解决的,当使用Visual L isp的曲线处理函数,就可以非常方便和准确的解决这个问题。以下是物体沿线均布的程序代码:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。