机械CAD平时小作业——Lisp第2题.docVIP

  • 11
  • 0
  • 约6.05千字
  • 约 9页
  • 2016-10-25 发布于江西
  • 举报
平时小作业——第2题 一、题目 2. 任选一零件图,编制AutoLISP程序实现自动生成。要求绘制标准图框,设置图层和线型。 二、步骤 1. 我选取了一张大二时的金工实习的零件图作为范本。 图纸文件见附件。 图1 AutoCAD图纸范本截图 2. 编制Lisp程序绘制该图纸(不含标题栏,尺寸与标注)。 Dwg文件见附件。 图2 由lisp程序生成的图形 三、编程难点 1.关于线型问题 AutoCAD的线型基于LIN文件,如果没有LIN文件是无法凭空显示线型的。经过多次尝试,我采用了 判断lin文件是否存在-创建临时lin文件用于装载线型-装载线型-删除临时文件 的思路。 将临时lin文件放在C盘根目录下实属无奈之举,是多次尝试失败后妥协的选择,还好能够实现目的。 经搜索,目前网络上能完美解决这个问题的帖子并不多。 详见SetLineType函数。 2.关于图层 我修改了tk_th_txhj.LSP程序,并将图层设置为我自己的习惯。详见SetLayer函数。 3.关于线段端点距离过近而导致绘制偏差的问题 实践中发现有些线段绘制时,由于两点间距离过近,在lisp程序绘制时识别成了一个点。经多种尝试,解决办法为关掉对象捕捉。 以下代码可以实现。 (command osnap none) ;关闭对象捕捉 (setvar LWDISPLAY 1) ;设置系统变量显示线宽 ”w”参数使得多余图元不被选中,顺利完成了镜像操作。 6.关于剖面线过密的问题 在生成lisp绘制的图形时,剖面线始终显得过密,而剖面线比例与全局比例均为1,问题显得十分棘手。 经过大量的查阅之后,我发现问题出在我新建文件时默认模板选择了acad.dwt而不是acadiso.dwt,而acad.dwt是英制尺寸的模板,25.4mm=1in的比例下剖面线显示过密就情有可原了。换用acadiso.dwt模板后,问题解决。 6.关于函数newp(p1 x y) 以下为代码: (defun newp(p1 x y) ;由p1平移x,y方向组成新点 (list (+ (car p1) x) (+ (cadr p1) y) ) ) html提供的《lsp源码着色显示转为htm文件 源文件见附件。 ;xzy2.LSP ;小作业第2题 By TomWillow ;在tk_th_txhj.LSP基础上修改 ;新建线型函数,借助“C:\temp_linetype.lin”临时文件创建线型 (defun SetLineType () (setq fn C:/temp_linetype) (if (not (FindFile (strcat fn .lin))) ;文件不存在 (progn (command -linetype c ;创建线型 GB_Center C:/temp_linetype.lin Center _______________ _ _______________ _ 15,-1,1,-1 c GB_Hidden C:/temp_linetype.lin Hidden _____ _____ _____ _____ _____ _____ 5,-1 ) ) ) (command -linetype l ;载入线型 GB_Center C:/temp_linetype.lin l GB_Hidden C:/temp_linetype.lin ) (vl-file-delete C:/temp_linetype.lin) ) ;layer命令详解 ;n:新建图层 图层名称 ;l:线型 HIDDEN已加载的线型名称 图层名称 ;c:颜色 颜色索引1红 2黄 3绿 4青 5蓝 6洋红 7白 图层名称 ;lw:线宽 线宽 图层名称 ;s:设定当前图层 图层名称 (defun SetLayer () ;图形环境 (SetLineType) (command layer n 边框线 n 粗实线 n 细实线 n 尺寸 n 文字 n 中心线 n 虚线 n 剖面线 n 波浪线 c 7 边框线 c 3 粗实线 c 3 细实线 c 1 尺寸 c 1 文字 c 2 中心线 c 4 虚线 c 6 剖面线

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档