网站首页  词典首页

请输入您要查询的论文:

 

标题 基于AutoLISP语言智能生成工程图纸表面粗糙度符号
范文

    张瀚升 宋昕一

    摘 要 利用 AutoCAD 软件内部自带的二次开发工具 Visual LISP 编写此程序。该程序能够自动判断和计算用户输入的数据,智能生成二维工程图纸中的表面粗糙度符号。将其按用户需求显示在图纸当中。本程序使用简单,能够在一定程度上减轻绘图工作者重复绘制表面粗糙度的工作负担。

    关键词 Visual LISP 智能判断 表面粗糙度符号 绘图工具

    中图分类号:TP391文献标识码:A

    0引言

    AutoCAD是一款在国际上非常流行的计算机辅助设计软件,可以用于二维图纸绘制和三维立体建模。尤其是二维绘图功能更是在机械行业发挥着重要作用。在一张完整的工程图中有许多的设计要素,包括结构、尺寸、形位公差、表面粗糙度和注意事项等。而其中的表面粗糙度标注是一项简单却又具有重复性特点的工作,事实上用户利用AutoCAD內部自带的LISP语言进行二次开发,编写可以自动绘制表面粗糙度符号的程序就可以解决这个问题。本文即是采用AutoLISP编程语言简略说明如何实现此功能。

    1项目背景

    1.1 AutoLISP语言简介

    LISP是一种计算机的表处理语言,在人工智能学科领域广泛应用。该语言作为嵌入在AutoCAD内部的具有智能特点的编程语言,是开发应用AutoCAD不可缺少的工具。AutoLISP将LISP和AutoCAD有机结合,可直接调用几乎全部的AutoCAD命令。并且该语言对于编写环境没有特殊要求,只要是一般的文书的编辑软件(如记事本、Word等)都能用,不需要二次编译在其他CAD软件也能很好地执行。

    1.2表面粗糙度在工程图中的重要性

    零件表面粗糙度在机械加工中占有十分重要的地位,其好坏能够直接影响与之形成配合关系后零件表面间的相互作用。若表面粗糙度差或达不到规定要求,一方面会影响零件间配合的实际效果,极易引起零件表面磨损,引起实际配合超差。另一方面会影响工作精度,降低精度灵敏性,降低零件间接触刚度,引起振动。还可能影响零件强度及抗腐蚀性,导致零件对应力集中较敏感,使零件表面产生裂痕加剧腐蚀而导致损坏。因此,在工程图中正确标注表面粗糙度有利于零件的加工生产,避免上述一系列问题的发生。

    1.3自动绘制粗糙度符号程序的产生

    该程序通过判断和计算用户输入的数据自动绘制表面粗糙度符号,并根据用户鼠标点击位置显示在二维工程图中。在一定程度上解决绘图人员重复工作的问题。

    2程序介绍

    2.1设置运行环境并初始化数值

    (defun c:ccd()

    (setq v1 (getvar "cmdecho"))(setq v2 (getvar "blipmode"))

    (setq old (getvar "osmode"))(setvar "osmode" 0)

    (setvar "cmdecho" 0)

    2.2获取用户输入数据

    (setq p0 (getpoint" 点击或输入插入点: "))

    (setq p01 (osnap p0 "nea")) ;捕捉最近的点

    (setq h (getdist p0 "\n粗糙度数值字高<3.5>: "))

    (if (not h)(setq h 3.5))

    (setq h1 (* h 1.61658))

    (if p01(progn ;捕捉最近点

    (setq c (angle p01 p0))(setq p0 p01)(setq b (- c (* 0.5 pi))))

    (progn ;未捕捉最近点

    (setq b (getangle p0 "\n旋转角度<0>: "))

    (if (not b)(setq b 0.0))))

    (setq a (+ b (/ pi 3)))(setq p1 (polar p0 a (* 2 h1)))(setq p2 (polar p0 a h1))

    (setq a (+ b (/ pi 1.5)))(setq p3 (polar p0 a h1))(setq a (+ b (* 0.5 pi)))

    (setq p4 (polar p0 a (* 1.4 h1)))(setq s (getstring "\n输入表面粗糙度数值<6.3>: "))

    2.3绘制表面粗糙度符号

    (if (= 0 (strlen s))(setq s "6.3"))

    (setq b (/ (* b 180) pi));判断数字方向

    (setq b (cond

    ((and (> b 90) (<= b 270)) (- b 180))((> b 270) (- b 360))

    ((= b -90) 90)(t b)))(setvar "blipmode" 0)

    (if (= s "0")

    (progn;标注未加工表面符号

    (setq p4 (polar p0 a (* 0.933 h)))(command "line" p1 p0 p3 "")

    (command "circle" p4 (* 0.466 h)))

    (progn ; 标注加工表面符号

    (command "line" p2 p3 p0 p1 "")

    (if (> (strlen s) 3)

    (setq p4 (polar p4 (+ a (* 0.5 pi)) (* 0.4 h))))

    (command "text" "m" p4 h b s) ; m为中点定位

    ))

    2.4恢复系统初始设置并退出

    (setvar "cmdecho" v1)

    (setvar "blipmode" v2)

    (setvar "osmode" old)

    (princ)

    )

    3结论

    经实际检验,本程序可以成功运行并绘制出任何方向表面粗糙度符号,包括标注加工表面符号和标注未加工表面符号,在一定程度上方便和节省了用户的绘图时间。Visual LISP语言简单易学,具有很好的应用前景。

    参考文献

    [1] 付自力.表面粗糙度的重要性及正确获得方法[J].职业,2007(17).

    [2] 仲梁维等.计算机辅助设计教程[M].上海:复旦大学出版社,1997.

    [3] 清宏计算机工作室.AutoCAD工程二次开发[M].北京:机械工业出版社,2000.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/4/16 12:41:53