欢迎来到天天文库
浏览记录
ID:21784993
大小:55.00 KB
页数:5页
时间:2018-10-24
《autocad平台下最短路径问题的研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、AutoCAD平台下最短路径问题的研究与实现:本文讲述了在CAD平台下,利用AutoLISP编程语言,以一个收索图形为例对最短路径问题进行的研究,以及如何提高最短路径的检索速度,快速得出检索结果。 关键词:AutoCAD;AutoLISP;最短路径 Abstract:ThispaperdescribesintheCADplatform,usingAutoLISPprogramminglanguage,takeareceivedacablegraphicsforexampletoresearchontheshortestpathproblema
2、ndhoprovetheretrievalspeedoftheshortestpath,andquicklyetoretrieveresults.Key最小生成树算法都采用了和宽度优先搜索类似的思想。 2.1.1在存储扩展成果表时采用分段存储方式,将点号按大小分成四段存储在四个表中,便于在检索点号时只检索其中的一个表即可,缩小检索点范围。 2.1.2设置检索距离,当检索距离大于已找到的终点检索距离后停止检索,避免做无用的检索。 2.1.3程序以起始点到终点的有向线段方向预设优先检索方向,先收索与之方向夹角小的路径,争取最短时间得到终点检索距
3、离值,减小检索范围。 2.1.4在检索存储点号时对存储表采用二分法检索,以提高点号的获取速度。 2.2程序原代码 (defunc:drj() (setvar"CMDECHO"0) (setqSEHfbl1nilSEHfbl2nilSEHfbl3nilSEHfbl4nil);;设置存储块点点表 (setqlstDZbl1nillstDZbl2nillstDZbl3nillstDZbl4nil);;设置对照点表 (setqSEHfh(SEHBLPX));;初始化块点点表 (setqQiShiDian(car(entsel"选择起始
4、点:"))) (setqSelQSDlst(entgetQiShiDian)) (setqSelQSDxyh(cdr(assoc10SelQSDlst))) (setqSelQSDh(fix(lastSelQSDxyh)));;起始点点号 (princ"您选择的起始点为:") (princSelQSDh) (setqZhongDian(car(entsel"选择目的点:"))) (setqSelZDlst(entgetZhongDian)) (setqSelZDxyh(cdr(assoc10SelZDlst))) (se
5、tqSelZDh(fix(lastSelZDxyh)));;起始点点号 (princ"您选择的目的点为:") (princSelZDh) (mand".zoom""e") (alert"程序即将运行,可能需要一点时间,请耐心等候!") (setqlstDKblnil);;预置待扩点表 (setqlstJieGuonil) (setqfinddist0) (setqlstTmpnil) (setqlstKYbltmpnil);;预置扩延临时表 (setqFirstflag0) (setqlstTmp(LJDBallSelQ
6、SDh));;对起始点扩展 (if(vl-consplstTmp)(progn;;如果lstTmp不为空表 (setqmaini0) (repeat(lengthlstTmp) (setqmainys(nthmainilstTmp)) (setqmainysb(listSelQSDhmainys)) (if(mainysSEHfh)(mainys(*2SEHfh))(mainys(*3SEHfh))(setqlstDZbl4(consmainysblstDZbl4))) (setqlstDKbl(consmainysblstDKbl
7、)) (setqmaini(+maini1)) ) (setqlstDKbl(reverselstDKbl));;生成待扩点表 (if(vl-consplstDZbl1)(progn;;如果lstDZbl1(对照点表1)不为空
此文档下载收益归作者所有