装修知识
模具知识|化工工艺流程图阀门程序设计
2017-03-10  浏览:62
模具之家讯:提要:本文针对化工工艺流程图CAD阀门绘制程序设计,探讨CAD在化工工艺设计中的运用。文后提供的程序清单可在AutoCAD R12中文环境下运行,对化工工艺设计CAD二次开发提供经验与技巧。

CAD技术已广泛应用于各专业设计,但在化工工艺设计领域内商品化软件不足,这就需要各设计单位自行开发应用软件以适应CAD技术的发展.本文提供的阀门绘制程序是在AutoCAD二次开发的化工工艺计算机辅助设计CPCAD系统中的一个独立程序,它以AutoLisp语言编写,功能全,使用方便,具有可读性及一定的技巧。

● 阀门绘制要求

在AutoCAD上绘制阀门,要求于已存在的工艺管道上据阀门类型自动按一定的比例显示,图纸输出时的尺寸符合专业制图要求,(原因是不可能根据阀门的实际尺寸与其它化工设备按同一比例绘图) 并自动切断管道线,同时判断管线与水平方向的夹角,可取代AutoCAD的copy。阀门型式全,层自动设置并不受原当前层的影响。

● 程序简介

该程序针对以上要求,提供11种常用阀型,可方便地进行选择.如需其它类型,可对源程序简单地修改补充。

1.主控程序

在主控程序中,(if (and (/= *bl nil) (/= *dwgscale nil))判断变量*bl及*dwgscal是否存在.如不存在程序不再执行,因此需在ACAD.LSP中加载或在command下赋值(注:*bl=*dwgscale)。如(setq *bl 100) (setq *dwgscale 100),100为绘图比例。Progn语句段完成图层设置,下面的缺省值设计读者可自行分析,具有通用性和一定的技巧。

2.阀门程序的公用子程序

该部分是程序的核心.阀门长度的赋值是绘图比例的5倍,当以相同比例输出时其长度为5mm。法兰的绘制是可选择的。当提示阀心位置时,选择line实体,程序可就选择的line实体的起点和终点坐标计算该线与水平方向的夹角,同时求出各绘制点的极坐标。需要强调的是对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))

(menucmd "s=s")

(initget "Y N")

(if (not *yffl) (setq *yffl "N"))

(princ "\n有否法兰: [ Y/N ]< ")

(princ *yffl)

(setq fl (getkword " >"))

(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 (+ (* (/ 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 (* (/ 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.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));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 ]< ")

(princ *xz)

(setq xz (getkword " >"))

(if (not xz) (setq xz *xz) (setq *xz xz))

(if (= xz "N") (setq zj 0.0) (setq zj 180.0))

) (defun xs ( )

(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)

(command "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)

)

(defun 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 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

(PRINC)

)

(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)) (* 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 (getvar "clayer"))

(command "blipmode" "off"

"fill" "on"

"layer" "m" "va" "s" "va"

"lt" "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 < ")

(princ *fm)

(setq fm (getkword " >:"))

(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)
模具之家为您提供最全面的塑胶,塑料,模具,模具设计,塑胶模具品牌的装修知识点和各种塑胶模具的导购与在线购买服务,拥有最便宜的塑胶模具价格和最优质的售后服务,敬请登陆模具之家:http://www.ju26.com/
更多»您可能感兴趣的文章:
更多»有关 模具 的产品:
广州模具货架,重型货架,带抽屉模具架

广州模具货架,重型货架,带抽屉模具架

价格:3200.00/套

广州模具架

广州模具架

价格:3800.00/套

品质优8407模具钢圆钢【一胜百】

品质优8407模具钢圆钢【一胜百】

价格:到店咨询

S136H模具钢板 大圆棒

S136H模具钢板 大圆棒

价格:到店咨询

718S板【一胜百】塑胶模具钢

718S板【一胜百】塑胶模具钢

价格:到店咨询

20CrMnTi齿轮钢【塑胶模具钢】板

20CrMnTi齿轮钢【塑胶模具钢】板

价格:5.30/千克

易博仕铝方通吊顶木纹铝方通厂家直销

易博仕铝方通吊顶木纹铝方通厂家直销

价格:7.50/米

易博仕勾搭式垂帘铝挂片吊顶天花

易博仕勾搭式垂帘铝挂片吊顶天花

价格:8.50/米

供应易博仕氟碳铝单板幕墙铝单板厂家直销

供应易博仕氟碳铝单板幕墙铝单板厂家直销

价格:198.00/平方米

供应易博仕氟碳铝单板幕墙铝单板厂家直销

供应易博仕氟碳铝单板幕墙铝单板厂家直销

价格:198.00/平方米

易博仕铝天花吊顶明架跌级铝扣板600*600厂家直销

易博仕铝天花吊顶明架跌级铝扣板600*600厂家直销

价格:38.00/平方米

供应易博仕c型铝条扣 防风铝条扣天花厂家直销

供应易博仕c型铝条扣 防风铝条扣天花厂家直销

价格:38.00/平方米

  • 行业资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 陶瓷之家 照明之家 防水之家 防盗之家 博一建材 卫浴之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved