找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1052|回复: 15

[编程申请]:请问CAD如何自定义填充

[复制链接]
发表于 2005-9-7 16:55:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请问CAD如何自定义填充
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-9-8 10:09:07 | 显示全部楼层
我看了cad的帮助说明,都是一些代码,看起来很简单的,可还是没有看明白。希望这方面的高手给指点一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 19:24:01 | 显示全部楼层
期待高手
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-9 11:38:49 | 显示全部楼层
一个生成填充图案的好工具
http://p4.xdcad.net/forum/showth ... y=&pagenumber=1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-9 19:47:51 | 显示全部楼层
你可以编辑acad.pat文件,在后面加上你自己编辑的自定义图案填充内容就可以了!

比如一个六角星图案

*stars,star of david

0,0,0,0,0.866,0.5,-0.5

60,0,0,0,0.866,0.5,-0.5

120,0.25,0.433,0,0.866,0.5,-0.5

或者打开记事本,创建新图案填充文件*.pat文件,将自己编辑的自定义图案填充内容输入后,与标准图案填充文件acad.pat存于相同的目录下,即可以调用。

但要遵循以下规则:

1、用户自定义的图案文件中只能包涵一种图案,且图案名与文件名必须相同。若要新建多个图案,则要同时新建多个图案文件。

2、复杂的图案无非是由多组角度不同的平行虚线组成的,虚线中短线部分参数为正值,空格部分参数为负,参数的绝对值大小为短线或空格的长度。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-12 10:00:21 | 显示全部楼层
5楼说的很好,在2002中好像用你的第一种方法编辑acad.pat,好像不能行,可是编辑acadiso.pat
是可以的。不知这是不是和cad版本有关系呢?还有在cad2004中,好像找不到acad.pat和acadiso.pat填充文件以及.lin线型编辑文件在哪里?请高手指点一二。不胜感激。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-12 10:20:45 | 显示全部楼层
在2002以前版本,以上你所说文件都在AUTOCAD安装目录的SUPPORT文件夹下,而2004及以后版本都作了变动,你可在系统盘中用搜索功能查找,或者打开AUTOCAD,在选项-文件选项卡的支持文件搜索路径中应该会有!
我的路径是这样的C:\Documents and Settings\Owner\Application Data\Autodesk\AutoCAD 2005\R16.1\chs\Support
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-12 10:26:58 | 显示全部楼层
有篇文章,可以看看


在AutoCAD中用程序制作岩性填充图案
谭光杰 (成都理工大学环境与土木工程学院 成都 610059)
【摘 要】在工程制图中经常要使用到各种填充图案,但AutoCAD中所提供的图案是有限的,通常也不能满足作图的要求,因此需要自定义许多填充图案。岩性填充图案通常是很复杂的,用手工进行制作几乎是不可能的。本文提供了程序制作图案的基本算法,并提供了程序的核心部分。
【关键词】岩性填充图案;程序算法;LISP源程序
AutoCAD的图案填充方式是偏移线生成方式,在进行图案制作时会有一些基本的限制。地质制图中所用到的岩性填充图案通常较为复杂,按上述方式生成的填充图案基本上不能用手算方式,因此有必要采用程序制作方式来实现。
在AutoCAD的帮助文件中可以找出有关填充图案的具体描述,本文不再重复有关内容,而主要是讨论如何用LISP程序来实现岩性填充图案的制作。
1 图案制作的基本限制
                             
   图1 填充限制示图                    图2 单条直线计算图
在AutoCAD中,只有点(point)、直线(line)、多段线(polyline)和轻量多段线(lwpolyline)才能用于制作填充图案,圆和圆弧不能用于制作填充图案,但可以用线性图元进行多段线拟合。
如图1所示,填充图案通常是方形排列的。在一个正方形内的图形要在其它正方形内不会产生变形,必然要求直线的斜率或其倒数为整数。
2 程序制作图案
2.1 直线填充算法
图1所示较为复杂的图形可以由多条直线组成,因此直线是进行图案填充的基本元素。按此思路,可以设定直线是限定在1*1单位的矩形框内。以下就按照此基本假设来得到单条线段的填充算法公式。
我们用图2所示单条直线的计算图予以说明。图2中的每个正方形的边长都是1个单位。直线AC通过偏移算法可以填充到每一个正方形之中,这里假定坐标原点位于O点。以下按照单条直线填充的文本文件描述顺序给出具体的公式。
填充角度:ang=atan(dy/dx)= ∠CAE;
填充线起点坐标:即为A点的坐标。
填充的偏移距离,首先给出斜率大于1时的计算公式。
X方向的偏移距离D1。
D1=|AB|*cos∠BAF=|AB|*sin∠CAE;又因为|AB|=1,所以公式可简化为D1=dy/dist。
Y方向的偏移距离D2。
D2=|AB|*sin∠BAF=|AB|*cos∠CAE;又因为|AB|=1,所以公式可简化为D2=dx/dist。
直线的长度:dist=|AC|。
空格的长度:span=-(|AG|-|AC|)。
对于斜率为其它形式时,可以依照上述方法得出计算公式,参见2.2节的LISP源程序。
2.2 填充图案制作的核心程序
以下程序中所用的变量名与上节含义相同。参数point1和point2是直线的两个端点。Slope为直线的斜率或其倒数。
(defun compute(point1 point2 / ang dist dx dy temp D1 D2 slope span)  
(setq ang (* 180(/(angle point1 point2)pi))
      dist (distance point1 point2)
      dx (- (car point2) (car point1))
      dy (- (cadr point2) (cadr point1))
    )
(cond((and (/= dx 0)(/= dy 0))  
(if (> (abs dx)(abs dy))
(setq temp dx dx dy  dy (* temp -1.0)))
(setq D1 (/ dy dist)
      D2 (/ dx dist)
      slope (/ dy dx)
     span (- dist (sqrt (+ 1 (* slope slope))))));斜率为整数
  ((or(= dx 0)(= dy 0));水平线或垂直线
   (setq D1 0 D2 1 span (-  dist 1)))
     )
  )
点可以看成是长度为0的水平线或垂直线。
多重描述的填充图案是由多条线段的描述组成的,因此,读者如果要对程序进行扩展,可以按以下顺序编写程序:获取1*1方框内的所有图元名→对每个图元进行检查,看其是否满足图案制作的要求→建立图案填充文件→获取每个图元的坐标→检查斜率是否满足要求→调用上面的程序进行计算→将计算结果输出到图案填充文件。在每一次检查不满足要求时应有相应的错误处理函数。
2.3 圆形填充图案的制作
在AutoCAD中不能用圆形图元进行图案制作,在不改变AutoCAD的算法的情况下可以用直线段来进行拟合。对于方形排列的圆形图案可以用16边外接多边形进行拟合,如图3。
从图3可知道,第一相和第二相可以分别用4条边拟合,第三相可以用8条边进行拟合,因此圆形图案可以用16边外接多边形进行拟合。
对于圆弧图案可以将圆形图案中的某些边去掉后进行拟合。用直线、点、圆弧和圆可以组成任何复杂的图案。这样,可以满足工程作图中岩性填充图案的需要。
            
  图3 圆形图案方形排列图                     图4 图案制作例子
笔者使用上述的方法作出如图4所示的复杂填图案。
如果对曲线拟合的要求很高,可以使用下面的外部参照的方法以满足作图的要求。
3 外部参照的制作方法
以下的方法转引自《VISUAL LISP程序设计—技巧与范例》(陈伯雄,冯伟  北京:人民邮电出版社 2002.8)。当上述方法达不到理想的方法可以考虑以下的方法。
许多特殊的剖面图案是AutoCAD所提供的功能无法制作的。例如,如图5所示的木纹图案,是由同心的曲线组合而成的。将木纹图填充于其它的图形之中,交互操作的解决方案如下。
建立木纹图案,在图形文档中生成,以mm为单位应当足够小,基点放在年轮的中心附近。
用xref命令将图案填充至目标图案之中。
用xclip命令对外部参照进行修剪,如图5所示。
当然,也可以将木纹做成内部、外部块(block),也能达到同样的效果。
外部参照剪裁边界不支持弧线段,解决的方法是用直线段对弧线段进行拟合。在《VISUAL LISP程序设计—技巧与范例》一书中给出了具体解决方案的程序。
                                                      图5:木纹图
4 结语
用程序绘制填充图案的思路是用直线代替弧线并且不改变AutoCAD的基本算法。以上方法可以方便地制作出任何满足地质要求的岩性填充图案。对岩性填充图案来说,使用外部参照有一定的局限性,不能任意地改变填充比例,只能生成相似的图案以满足作图要求。
参考文献(略) (收稿日期:2003-06-18;Email:tanguangjie@sohu.com)

【编辑评述】关于制作AutoCAD图形花纹问题,协作网任鸣春大师早在1996年就自编了图案生成工具软件,并作为协作网的自由软件在互联网上广为流传(下载地址:本刊网站软件园地栏目)。上面这篇文章给出了算法程序,请在这方面有一定研究基础和应用经验的读者朋友参与讨论,把您的体会告诉大家,也可以把您的经验和快乐与大家分享。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-13 09:04:53 | 显示全部楼层
我搜索了一下,确实在系统盘找到了,不过是以快捷方式存在的。快捷方式的目标文件还是cad2002目录下support里面的acad.pat和acadiso.pat,根本就没有自身的supprt文件夹,不知7楼的机子上是不是只有2004?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-13 10:29:24 | 显示全部楼层
我是2005
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-14 08:56:56 | 显示全部楼层
终于找到了,原来是隐藏文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-14 10:20:38 | 显示全部楼层
8楼的介绍看得我头晕目眩,看来我只能拿来主义了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-16 13:01:55 | 显示全部楼层
高手好多,叹为观止
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-3 13:18:45 | 显示全部楼层
好复杂哦.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-11 17:35:30 | 显示全部楼层
如果不下载就没有别的方法制作图案填充了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-27 04:02 , Processed in 0.480439 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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