绘制边界填充函数,适用各种常用图形围成的边界
本帖最后由 ljxkm 于 2019-11-9 17:21 编辑最近编程需要,写了一个绘制边界填充的函数,网上有不少用entmake方法生成,但感觉有点复杂,同时由园、椭圆、样条曲线组成的边界也过于复杂, 这样要取得边界点比较困难,使用也不方便,一开始用这种方法,结果,多义线、园、椭圆,样条曲线都实现了,但由这些图元综合组成的边界,实现就困难了,整了很长的代码,还是不完美,回过头来一看,采用VBA的vla-AddHatch方法却容易多了,代码也简洁,利用bpoly函数生成边界,但这个bpoly函数遇到复杂情况时不能导出多义线,程序会出现卡顿挂起了,经过不断摸索,用vl-cmdf函数巧妙避过,根据两种情况分别生成了"LWPOLYLINE"和"REGION"对象,两个对象再作为填充对象的外环参数,函数创建成功,自己觉得代码还算简洁,使用方便,故贴出源码,供大家参考:
;;;;(ljx-hatch pt name jd sca),绘制边界填充函数
;;;;适用于"Line" "LWPOLYLINE" "CIRCLE" "SPLINE" "REGION" "ELLIPSE" 围成的填充边界
;;;;pt----填充范围内一点,用getpoint函数取得比较方便
;;;;name--填充图案名称如"ANSI31"
;;;;jd----填充图案旋转角度,以度计
;;;;sca---填充图案的比例,实数
;;;;示例:(ljx-hatch (getpoint "\n边界内选一点") "ANSI31" 90 5)
;;;;函数作者:jixiangluo
;;;;最后修改日期2019.11.09
本帖最后由 lxl217114 于 2019-11-10 16:34 编辑
ljxkm 发表于 2019-11-10 11:48
使用很简单的,先加载,在命令行输入:(ljx-hatch (getpoint "\n边界内选一点") "ANSI31" 90 5),会提示 ...
1. AutoCAD 2014、AutoCAD 2020可用
2. AutoCAD 2016 出现如下错误
命令: (ljx-hatch (getpoint "\n边界内选一点") "ANSI31" 90 5)
边界内选一点; 错误: no function definition: LJX-HATCH
本帖最后由 ljxkm 于 2019-11-14 09:08 编辑
angel066499 发表于 2019-11-14 00:05
点了一个多段线封闭空间,显示此命令不能透明使用,是什么意思呢?
刚才看了一下,你那种情况应该是前面有什么命令没有执行完,就输入新命令,故里上一个执行的命令是什么很关键,如果老是这样就证明与前面命令冲突了,发样图看看 lxl217114 发表于 2019-11-10 11:16
楼主,如何使用啊?
使用很简单的,先加载,在命令行输入:(ljx-hatch (getpoint "\n边界内选一点") "ANSI31" 90 5),会提示输入一点,在填充边界内选一点就行了,在你的程序中就把他当做一个函数使用, 谢谢楼主,这是好东西! 楼主,如何使用啊? 谢谢楼主,分享学习!!!!! 试用了一下 确实很速度 lxl217114 发表于 2019-11-10 16:22
1. AutoCAD 2014、AutoCAD 2020可用
2. AutoCAD 2016 出现如下错误
命令: (ljx-hatch (getpoint "\n边 ...
那是函数没有定义成功啊,一般不会,检查一下看看,高版本加载这些东西是越来越不好用 2010好用,多谢楼主分享 ljxkm 发表于 2019-11-10 17:55
那是函数没有定义成功啊,一般不会,检查一下看看,高版本加载这些东西是越来越不好用
谢谢答疑,好用