- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《CAD程序设计》课程设计指导书.doc
《CAD程序设计》课程设计
指 导 书
环境与建筑工程学院测绘教研室
《CAD程序设计》课程设计大纲
课程类别:比修 学 时:1周
课程性质:实践教学 开课学期:第7学期
开课专业:测绘工程
先修课程: AutoCAD,计算机高级语言
课程设计的基本目的与任务
本课程设计是测绘工程的专业技术实践课。本实践课的主要目的和任务是:(1)、掌握Visual Lisp程序设计的方法;(2)掌握Visual Lisp操纵AutoCAD的程序设计方法;(3)掌握在 Visual LISP 中使用AutoCAD ActiveX 对象的方法;(4)掌握在 Visual LISP 中使用可编程对话框制作用户界面的方法;(5)掌握自定义 AutoCAD
教学内容 学时 地点 1、集中学习 半天 教室 资料查阅与学习,讨论 1天 图书馆、实验室 设计程序算法、绘制流程图 2天 实验室 建立AutoCAD菜单、工具条、按钮 半天 实验室 设计程序的用户界面 1天 实验室 编写程序代码、调试程序 1天 实验室 编写课程设计报告 1天 教室 注:课程设计总结论文业余时间完成。
课程设计总结论文要求
综述;
设计程序算法、绘制流程图;
建立AutoCAD菜单、工具条、按钮的方法;
设计程序的用户界面;
设计总结。
(6) 附录:源程序
参考题目
判断一个点是否在闭合多边形的里面,该多边形的边界是由线段和园弧组成。
判断一个闭合多段线是否交叉,该多段线是由线段和园弧组成。
用多段线生成Hatch实体的边界线。
设计一个程序解决汉诺塔问题:有三根柱子,分别为A、B、C,A柱上有一叠按大小顺序叠好的盘子,要求每次只能移动一个盘子,盘子的大小顺序不能改变,且盘子不能离开这三根柱子,将A柱上的盘子全部移到C柱。
设计一个程序将指定区域外的图形剪断,并将区域内的图形保存到一个文件中。
主要参考资料
《AutoCAD 2004 命令参考AutoCAD 2004 自定义手册AutoLISP Developers Guide》
《AutoLISP Reference》
《DXF 参考ActiveX 和 VBA 开发人员指南ActiveX and VBA Reference》
《计算机图形学》
几个Visual Lisp程序设计实例
第一个实例:判断一指定点与某个三角形的关系(用autolisp实现)
判断一指定点与某个三角形的关系:1.在三角形三边上;2.在三角形内;3.在三角形外
算法:
一.输入的数据
假设三角形的三顶点为:p1 p2 p3
指定点为:p0
二.作辅助线
1.从p1 p2 p3中选择一点pt使之与p0不相同,三角形的其余点为pta,ptb
2.以pt和p0作一射线(p0端无限延长)RL,以pta和ptb作一构造线(两端无限延长)XL
3.求RL和XL的交点。
三.判断两辅助线是否平行
4.如果无交点,则p0在三角形外;如果有交点,则设交点为xp
四.判断p0是否在三角形的三边上
5.如果xp等于p0,则进一步判断:
如p0在线段(pta--ptb)外,则p0在三角形外;否则p0;在三角形的三边上
6.如果xp等于pta,则进一步判断:
如p0在线段(pt--pta)外,则p0在三角形外;否则p0;在三角形的三边上
7.如果xp等于ptb,则进一步判断:
如p0在线段(pt--ptb)外,则p0在三角形外;否则p0;在三角形的三边上
五.判断p0是否在三角形外
8.如果xp在线段(pta--ptb)外,则p0在三角形外
9.如果p0在线段(pt--xp)外,则p0在三角形外
10.以上条件都不满足,则p0在三角形内
实现方案
1.定义一函数GetTrianglePoints,获取三角形的三顶点表lst
2.获取指定点p0
3.调整顶点表lst使其第一点与p0不相等
4.以p0和lst中的第一点组成一构造线,再以lst中的第二,第三点组成另一构造线
并求得其交点xp.如无交点,则p0在三角形外out=1
5.定义一函数IsOutLine(p p1 p2),用以判断一个点p是否在另外两个点p1 p2组成得线段外
6.如果xp与p0相等,作进一步处理
调用IsOutLine判断p0是否在线段((cadr lst)--(caddr lst))外
如p0在该线段外,则p0在三角形外out=1;否则p0在三角形的三边上out=2
7.如果xp与lst中的第二点相等,作进一步处理
调用IsOutLine判断p0是否在线段((car lst)--(cadr lst))外
如p0在该线段外,则p0在三角形
您可能关注的文档
最近下载
- 系统架构设计师高级系统架构原理与原则.pptx VIP
- 1第1章 After Effects入门知识《After Effects 影视后期制作教程》.ppt
- 系统架构设计师高级业务需求分析与架构设计.pptx VIP
- 2024-2025学年北京房山区九年级初三(上)期末数学试卷(含答案).pdf
- pc104总线模块522pc系列总线.ppt
- 系统架构设计师高级数据架构与存储策略.pptx VIP
- 高中英语词组(短语)及固定搭配500个.docx VIP
- 胃肠镜检查注意事项ppt课件.pdf VIP
- 分型笔线段终极版动画日记.ppt
- 2024年江苏省盐城市小学数学四上期末考试试题含解析.doc VIP
文档评论(0)