CAD制图中“面状符号填充”的快速算法

来源 :中国学术研究 | 被引量 : 0次 | 上传用户:ameiameiiou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   一、引言
  
  在CAD和数字化制图中,大面积的植被符号(面状符号)填充是系统必不可少的功能。实现此功能,传统的计算机算法大体分为两类:(1)通过在填充轮廓内做晕线填充,求得每条晕线与外轮廓线的包含关系来计算各个填充符号的数学位置。此法简称为"晕线法" [1] 。(2)基于填充轮廓的坐标,通过典型数学计算的方法解析各个填充符号的坐标位置是否落在轮廓线内。此法简称为"解析法" [2]。这两种方法在理论上没什么缺陷,但在实际应用中,存在下列不足:(1)计算的工作量大,数学模型复杂。(2)对于圆弧和拟合的轮廓边界,就会出现边界点的坐标解析困难或填充出现偏差。(3)一般技术人员实现此功能有些难度。
  
  二、新算法及实现步骤
  
  随着开发语言的智能化和开发工具的进步,CAGD(计算机辅助函数设计)的合理、巧妙运用,传统的复杂算法得到了优化、简化。
  AutoCAD是目前在测绘、制图和GIS前端应用较广泛的一种图形处理系统。其强大的绘编工具和内置的二次开发语言(如AutoLisp和VBA)的结合使用,又将CAD的功能得到更大的发挥,CAGD是CAD的智能扩充。下面就解剖如何利用CAGD实现"面状符号填充"。
  假设有一封闭区域S
  1、编辑面状填充图案文件(.pat)
  在Notepad下打开acadiso.pat文本文件,在尾部添置如下语句:
  *dot45,dot lines at 45 degree
  45,0,0,0,14.14,0,-14.14
  2、利用Hatch功能进行面状填充
  用dot45图案填充封闭区域S。图案是点状的,点的水平间距为20mm,点的垂直间距为10mm,点之间的排列符合地形图植被类符号制图要求。
  编程实现方式:
  Lisp编程 (vl-cmdf"Hatch""dash45"比例0区域S"" )
  VBA编程 Set hatch_Obj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
  3、打散填充物
  通过编程的方式,利用Explode功能(炸开),分解区域填充,使之成为分散的单体-一条封闭的多段线和很多几何排列规则的点。
  Lisp编程(vl-cmdf"explode"hatch_obj )
  VBA编程 hatch_obj.explode
  4、收集打散物,提取坐标
  将打散的点收集,形成实体集合,分别提取其坐标,形成坐标集。
  Lisp编程 (setq objs(ssget "x" (list (cons 0"point")(cons 8layername))
   i0cors'(00))
   (repeat(sslength objs)
  (setq obj (ssname objs i)
  (setq cor1(vla-get-coordinates (vlax-ename->vla-objectobj)))
  (setq cors(cons cors cor))
  (setq i (1+ i))
   )
  VBA编程
  Dim obj As AcadObject
  Dim objs As AcadSelectionSet
  Dim xdata(0 To 1) As Integer
  Dim xvalue(0 To 1) As Variant
  Dim cor1 As Variant , cors As Variant '坐标集
  Dim i As Single
  Set objs = ThisDrawing.SelectionSets.Add("song")
  xdata(0) = 0: xvalue = "point"
  xdata(1) = 8: xvalue = layername 'layername是点的层名
   i = 0
  objs.Select acSelectionSetAll, , , xdata, xvalue '点实体集合
  For Each obj In objs
  cor1 = obj.Coordinates
  cors(i) = cor1(0): cors(i + 1) = cor1(1)
   i = i + 2
  Next
  5、用对应的符号(图块block或者形shape)替换点
  提取填充区域内点(point)的坐标,形成坐标集(coordinates),删除填充区域的点实体,按照坐(下转第46 页) (上接第41页)标集的数据,重新插入单体面状符号(例如块文件128.dwg)。
  Lisp编程:
   (setq I 0)
   (repeat n
   (setqpt1 (nth I cors)
   (entmake(list '(0 . "INSERT")(cons 10 pt1)(cons 41 1)
   (cons 42 1) (cons 43 1)))
   (setq I(1+I ) )
   )
  VBA编程:
   For i!=0 to ubound(cors)step 3
   Pt1(0)=cors(i)
   Pt1(1)=cors(i+1)
   Pt1(2)=0
   ThisDrawing.ModelSpace.InsertBlock pt1, "128.dwg", 1, 1, 1, 0
   Next i!
   结论:
   比较复杂的图形填充功能,通过编写普通的程序,很完美的完成了符号的快速填充,达到了计算机制图算法简化的目的;同时,本文也为测绘和CAD制图的智能化、简易化提供了一点借鉴。
  
  参考文献:
  [1]谈晓军、边馥苓、何忠焕:地图符号可视化系统的面向对象设计与实现.测绘通报,2003,(1)。
  [2]赵江洪、殷赣华:通用地图符号库的算法设计及其实现.测绘通报,2002,(4)。
其他文献
苹果树冬剪是一项技术性强,操作相对复杂的管理工作,它以品种、树龄、长势、修剪反应、树体结构、花芽量、自然条件和综合栽培为依据。同时与作业者生产技能、操作程序、规范程度等密切相关。初学时,容易造成许多失误,应遵循操作程序,保持思维清晰,做到理论联系实  际,走出冬剪的误区。    1、因树而异、忌一概而论  许多初学者对品种、树龄、长势不能准确辨认,盲目下剪,一概而论,用一种修剪方法剪到底,常常导致
期刊
在知识经济时代,创新是一个民族的灵魂,是一个国家兴旺发达的原动力。  古人说治天下之政在人才,成天下之才在教育。教师作为人力资源的开发者,为了构筑人类昨天和明天之间的桥梁,必须率先投身终身学习。从教不息,探索不止。  语文课本主要是有积极的思想意义和鲜明生动的审美情趣的古今中外的文学名篇。培养学生对文学作品的鉴赏能力,以及通过对语言文字、文学的学习,提高对语言的感受能力和表达能力,是语文教学的重要
期刊
摘 要:农田水利建设是农业发展的基本条件,抓好工程建设和管理,必将促进我国农业的发展,提高粮食总产量,为提高农民物质生活水平做出贡献。我国农业是用水大户,其用水量占到了60%左右,要建立节约型社会,必须抓好农田水利工程的建设和管理,建立一个完善的节水灌溉体系。  关键词:小型农田水利;工程建设;工程管理;节约型社会。     小型农田水利建设是农业发展的最基础的条件,是实施农业可持续发展的关键,同
期刊
创新是一个民族的灵魂,是一个国家兴旺发达的不竭动力。教育家苏霍姆林斯基说过:"学生来到学校不仅仅是为了取得一份知识的行囊,更主要是为了变得更聪明。"全新的人才观更是把是否具有创新能力作为衡量人才的重要标准。因此,我们在教学中要把创新意识和创新能力的培养放在首位。语文是各门学科的基础,坚持在语文教学中实施创新教育就显得优为重要。那么,如何实施有效的语文创新教育,我个人认为关健要做好下面几点工作 。 
期刊
摘 要:社会实践作为大学生思想政治教育的重要途径之一,历来受到国内外大学的重视。文章基于对高校社会实践活动的观察,分析了当前高校对大学生社会实践认识、运行机制等方面的问题,并借鉴相关国内外高校的实践经验,提出了对社会实践进行理性思考、注重形式创新和内容挖掘、开展社会化操作等对策。   关键词:素质教育;社会实践;对策。    社会实践是高校对学生进行素质教育,培养学生的创新精神和实践能力,提高大学
期刊
摘要:信息技术教师在中学学校教育中已成为一道亮丽的风景,他以多样化的角色对学校教育改革和信息时代学生形象的塑造起到了举足轻重的作用。本文旨在通过浅析信息技术教师在中学学校教育中的角色,提出他在学校教育中的作用。  关键词:信息技术教师;中学学校教育;角色;作用。    随着信息时代的到来,多媒体计算机技术和网络技术已渗透到教育领域,教育技术得到了进一步的发展。它的主要任务是运用现代教育思想理论和先
期刊
摘 要: 针对目前建筑结构设计当中墨守成规的现象,提倡采用概念设计思想来促进结构工程师的创造性,推动结构设计的发展。所谓的概念设计一般指不经数值计算,尤其在一些难以作出精确力学分析或在规范中难以规定的问题中,从整体的角度来确定建筑结构的总体布置和抗震细部措施的宏观控制。  关键词: 建筑设计; 概念设计。    在不断的结构设计研究与实践中,人们积累了大量有益的经验,并体现在设计规范、设计手册、标
期刊
在生物科中,实验教学和创新探索是不可忽视的两个重要课题。我们知道:生物科学是通过实验发现的,所以要想学好生物,不重视实验是不行的。同时实验对培养学生学习生物学的兴趣,掌握实验的基本技能,发展他们的智力和能力,都有重要作用。因此,生物教师如何上好实验课,是提高生物教学质量的关键。  以往生物教材中安排的基本上是验证性的实验,这处实验安排对于教学有有利的一面,比如实验目的明确,实验步骤规范,结果易于预
期刊
摘 要:随着社会经济的快速发展,人民生活水平的不断提高,水质的好与坏,直接关系到人民群众的生命健康与否,对此,临沭县人民政府按照《山东省水利发展"十一"规划》的要求,从政策、制度、资金等方面倾斜,大力发展集中供水和联片供水,尤其是双龙湖等集中供水工程的建成投入使用,取得了大型集中供水工程设计施工的成功经验,并实现了两年任务一年完成,提前一年实现村村自来水的既定目标。  关键词:临沭县;集中供水;村
期刊
摘 要:我国畜禽传染病有200多种,其中病毒性疾病约80种,细菌性疾病约111种,真菌性疾病约11种,传统兽医单位体制和机制,严重阻碍"预防为主"方针的贯彻和执行,给疾病危害创造了条件,大力营造,积极推行现代兽医体制和机制是发展现代畜牧业的必然选择。  关键词:现代农业;科学饲养;畜牧兽医;保驾护航。    一、我国畜禽疫病现状    当前,我国畜禽疫病种类繁多、损失大,畜禽疫病有增无减,危害日益
期刊