ljxkm 发表于 2019-11-9 17:03:37

绘制边界填充函数,适用各种常用图形围成的边界

本帖最后由 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:22:16

本帖最后由 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 08:59:47

本帖最后由 ljxkm 于 2019-11-14 09:08 编辑

angel066499 发表于 2019-11-14 00:05
点了一个多段线封闭空间,显示此命令不能透明使用,是什么意思呢?
刚才看了一下,你那种情况应该是前面有什么命令没有执行完,就输入新命令,故里上一个执行的命令是什么很关键,如果老是这样就证明与前面命令冲突了,发样图看看

ljxkm 发表于 2019-11-10 11:48:25

lxl217114 发表于 2019-11-10 11:16
楼主,如何使用啊?

使用很简单的,先加载,在命令行输入:(ljx-hatch (getpoint "\n边界内选一点") "ANSI31" 90 5),会提示输入一点,在填充边界内选一点就行了,在你的程序中就把他当做一个函数使用,

panliang9 发表于 2019-11-10 10:32:43

谢谢楼主,这是好东西!

lxl217114 发表于 2019-11-10 11:16:24

楼主,如何使用啊?

yoyoho 发表于 2019-11-10 12:21:05

谢谢楼主,分享学习!!!!!

love1030312 发表于 2019-11-10 14:53:23

试用了一下 确实很速度

ljxkm 发表于 2019-11-10 17:55:20

lxl217114 发表于 2019-11-10 16:22
1. AutoCAD 2014、AutoCAD 2020可用
2. AutoCAD 2016 出现如下错误
命令: (ljx-hatch (getpoint "\n边 ...

那是函数没有定义成功啊,一般不会,检查一下看看,高版本加载这些东西是越来越不好用

sunny_8848 发表于 2019-11-10 20:25:58

2010好用,多谢楼主分享

lxl217114 发表于 2019-11-11 10:59:02

ljxkm 发表于 2019-11-10 17:55
那是函数没有定义成功啊,一般不会,检查一下看看,高版本加载这些东西是越来越不好用

谢谢答疑,好用
页: [1] 2 3
查看完整版本: 绘制边界填充函数,适用各种常用图形围成的边界