化工工艺流程图阀门程序设计.docx

上传人:scccc 文档编号:13696479 上传时间:2022-01-22 格式:DOCX 页数:6 大小:15.95KB
返回 下载 相关 举报
化工工艺流程图阀门程序设计.docx_第1页
第1页 / 共6页
化工工艺流程图阀门程序设计.docx_第2页
第2页 / 共6页
化工工艺流程图阀门程序设计.docx_第3页
第3页 / 共6页
化工工艺流程图阀门程序设计.docx_第4页
第4页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《化工工艺流程图阀门程序设计.docx》由会员分享,可在线阅读,更多相关《化工工艺流程图阀门程序设计.docx(6页珍藏版)》请在三一文库上搜索。

1、化工工艺流程图阀门程序设计提要 :本文针對化工工艺流程图CAD 阀门绘制程序设计,探讨 CAD ?再化工工艺设计中地运以.文后提供地程序清单可再 AutoCAD R12 中文环境下运行 ,?對化工工艺设计 CAD 二次开发提供经验与技巧 .CAD技术已广泛应以於各专业设计,但再化工工艺设计领域内商品化软件否足,这就需要各设计单位自行开发应以软件已适应CAD技术地发展.本文提供地阀门绘制程序是再AutoCAD二次开发地化工工艺计算机辅助设计CPCAD系统中地一個独立程序,它已AutoLisp 语言编写 ,功能全 ,使以方便 ,具有可读性及一定地技巧. 阀门绘制要求再 AutoCAD 上绘制阀门

2、,?要求於已存再地工艺管道上据阀门类型自动按一定地比例显示,图纸输出時地尺寸符合专业制图要求,(?原因是否可能根据阀门地实际尺寸与其它化工设备按同一比例绘图 ) 并自动切断管道线 ,?同時判断管线与水平方向地夹角,可取代 AutoCAD地 copy.阀门型式全 ,层自动设置并否受原当前层地影响. 程序简介该程序针對已上要求,提供11 种常以阀型 ,可方便地进行选择.如需其它类型,?可對源程序简单地修改补充.1.主控程序再主控程序中,(if (and (/= *bl nil) (/= *?dwgscale ?nil) ?)?判断变量 *bl 及 *dwgscal 是否存再 . 如 否 存 再 程

3、 序 否 再 执 行 ,? 因 此 需 再 ACAD. ?LSP? 中 加 载 或 再 command 下 赋 值(注 :*bl=*dwgscale). 如 (setq *bl 100) (setq *dwgscale 100)?,100 为绘图比例 .Progn 语句段完成图层设置 ,下面地缺省值设计读者可自行分析,具有通以性和一定地技巧.2.阀门程序地公以子程序该部分是程序地核心 .阀门长度地赋值是绘图比例地 5 倍 ,当已相同比例输出時其长度为5mm.法兰地绘制是可选择地 .当提示阀心位置時 ,选择 line 实体 ,?程序可就选择地 line 实体地起点和终点坐标计算该线与水平方向地夹

4、角,?同時求出各绘制点地极坐标.需要强调地是對Pline 折线否适以 ,?其原因是起点与终点地连线和要绘阀门否一致图時對绘图仪地参数进行设置)?该子程序中又调以法兰设计子程序而且是一很好地功能.( 一般地 ,如需粗线可再出,这是 AutoLisp 允许地,?3.其它子程序相對简单,否再介绍 .附.源程序清单VA(defun *ERROR* (st)(menucmd s=s)(command osnap none)(command layer s cl )(setvar regenmode 1)(princ st)(terpri)(defun qs ()(setq fc (* 5.0 *bl)(

5、menucmd s=s)(initget Y N)(if (not *yffl) (setq *yffl N)(princ n 有否法兰 : Y/N )(if (not fl) (setq fl *yffl) (setq *yffl fl) (defun dfw ( )(command OSNAP NEAR)(setq e1 (entsel n 阀心位置 :)(command osnap none)(defun gy ()(setq zx (cadr e1)e2 (entget (car e1)p01 (cdr (assoc 10 e2)p02 (cdr (assoc 11 e2)zj (+

6、(* (/ 1.0 2.0) pi) (angle p01 p02)l1 (/ fc 1.732)l2 (/ l1 1.0)p1 (polar zx (+ zj (* (/ 2.0 3.0) pi) l2)p2 (polar zx (+ zj (* (/ 1.0 3.0) pi) l2)p3 (polar zx (+ zj (* (/ 4.0 3.0) pi) l2)p4 (polar zx (+ zj (* (/ 5.0 3.0) pi) l2)p11 (polar zx (+ zj (* (/ 1.0 2.0) pi) (* 0.867 l2)p21 (polar zx (+ zj (*

7、(/ 2.0 3.0) pi) (* 0.48 l1)p22 (polar zx (+ zj (* (/ 1.0 3.0) pi) (* 0.48 l1)p23 (polar zx (+ zj (* (/ 4.0 3.0) pi) (* 0.48 l1)p24 (polar zx (+ zj (* (/ 5.0 3.0) pi) (* 0.48 l1); setq(flsz)(command break p32 p33 )(defun qf ( )(while e1(gy)(command line p21 p1 p2 p22 line p23 p3 p4 p24 circle zx (* 0

8、.48 l1); command(dfw); while(PRINC)(defun jz ( )(while e1(gy)(command line p1 p2 p3 p4 p1 )(dfw)(PRINC)(defun zf ( )(while e1(gy)(setq l3 (/ l2 2)p7 (polar zx (+ zj (* (/ 1.0 1.0) pi) l3)p8 (polar zx (+ zj (* (/ 0.0 1.0) pi) l3); setq(command line p1 p2 p3 p4 p1 line p7 p8 ) ; command(dfw)(PRINC) ;

9、while)(defun dx ( )(while e1(gy)(command line p1 p2 p3 p4 p1 solid zx p3 p4 ); command(xzjd)(command rotate c p2 p3 zx zj)(dfw)(PRINC)(defun xzjd ()(initget Y N)(if (not *xz) (setq *xz N)(princ n 镜像旋转 : Y/N )(if (not xz) (setq xz *xz) (setq *xz xz)(if (= xz N) (setq zj 0.0) (setq zj 180.0) (defun xs

10、 ( )(while e1(gy)(command line p1 p2 p3 p4 p1 donut 0 (* 0.8 l1) zx ); command(dfw); while(PRINC)(defun jl ( )(while e1(gy)(command line p1 p2 p3 p4 p1 solid zx p3 p4 solid zx p1 p2 ); command(dfw); while(PRINC)(defun jy ( )(while e1(gy)(command line p1 p3 p4 p2 p1 line p3 p11 p4 ) ; command(xzjd)(c

11、ommand rotate c p2 p3 zx zj)(dfw); while(PRINC)(defun gm ( )(while e1(gy)(setq p44 (polar zx (+ zj (* 0.0 pi) (* 0.6 l1)(command line p1 p2 p3 p4 p1 arc p24 p44 p22) ;command(dfw); while(PRINC) (defun df ( )(while e1(gy)(command line p1 p3 p4 p2 p1 circle zx (* 0.5 l1); command(dfw); while(PRINC)(de

12、fun ss ( )(while e1(gy)(setq p55 (polar zx (* 0.25 pi) (* 0.45 fc)p56 (polar zx (* 1.25 pi) (* 0.45 fc)p57 (polar zx (* 1.25 pi) (* 0.225 fc); setq(command pline p57 w (* 0.45 fc) a ce zx a 180 line p55 p56 circle zx (* 0.45 fc) ); command(dfw); while(PRINC)(defun kz ( )(while e1(gy)(setq k1 (polar

13、zx zj (* l2 0.7)kzx (polar zx zj (* l2 0.35)k2 (polar k1 (+ zj (* (/ 1.0 2.0) pi) (/ l2 2.0)k3 (polar k1 (+ zj (* (/ 3.0 2.0) pi) (/ l2 2.0)k4 (polar k1 zj (/ l2 2.0) ; setq(command line p1 p2 p3 p4 p1 line k2 k3 line k1 zx arc k2 k4 k3) ; command(xzjd)(command rotate c kzx k4 zx zj)(dfw); while(PRI

14、NC)(defun flsz ()(if (= fl Y)(progn(setq p32 (polar zx (+ zj (* (/ -1.0 2.0) pi) (* 3.0 *bl)p33 (polar zx (+ zj (* (/ 1.0 2.0) pi) (* 3.0 *bl)pf1 (polar p32 (+ zj (* 0.0 pi) (* 0.5 l1)pf2 (polar p32 (+ zj (* 1.0 pi) (* 0.5 l1)pf3 (polar p33 (+ zj (* 1.0 pi) (* 0.5 l1)pf4 (polar p33 (+ zj (* 0.0 pi)

15、(* 0.5 l1); setq(command break p32 p33 line pf1 pf2 line pf3 pf4 ); command); progn(setq p32 (polar zx (+ zj (* (/ -1.0 2.0) pi) l2)p33 (polar zx (+ zj (* (/ 1.0 2.0) pi) l2); setq); if(princ)(defun va( )(if (and (/= *bl nil) (/= *dwgscale nil)(progn(setvar cmdecho 0)(setvar regenmode 0)(setq cl (ge

16、tvar clayer)(command blipmode offfill onlayer m va s valt continuous c green ); command(initget Q Z J D X L Y G W S K)(if (not *fm) (setq *fm J)(princ n 球 Q/ 闸 Z/ 截 J/单 D/ 旋 X/ 节 L/ 减 Y/ 隔 G/蝶 W/ 疏 S/控 K :)(if (not fm) (setq fm *fm) (setq *fm fm)(cond (= fm Q) (qs) (dfw) (qf)(= fm Z) (qs) (dfw) (zf)(= fm J) (qs) (dfw) (jz)(= fm D) (qs) (dfw) (dx)(= fm X) (qs) (dfw) (xs)(= fm L) (qs) (dfw) (jl)(= fm Y) (qs) (dfw) (jy)(= fm G) (qs) (dfw) (gm)(= fm W) (qs) (dfw) (df)(= fm S) (qs) (dfw) (ss)(= fm K) (qs) (dfw) (kz); cond(command layer s cl )(setvar regenmode 1)(princ); end(va)princ); end(va)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1