在PDMS中使用python直接生成管口方位图(开源分享第三集)
距离上一次发推送已有5个月之久,上周立了冬,这二季我为五斗米折了腰,最近才缓过气来。
令我没想到的是,大家竟然对这个主题这么有兴趣,有关注者几次在私信询问我什么时候更新,大家的期盼无形之中给了我继续分享的动力。
上一集给大家介绍了如何生成设备的轮廓及相位中心线。
这一集里要完成生成3个顶部管口的平面图形及位号标注功能。
其主要步骤如下:
1:提取设备管口的基本信息(这里可以通过宏文件在PDMS提取,本集不做详细介绍),其提取的信息要包含如下内容:管口号,管口端面型式,端面坐标,管口朝向,管口法兰OD值及管口接管的OD值;
2:生成管口图形,其图形将以2个同心圆表示,这两个同心圆分别表示法兰外径及接管端的外径;
3:生成管口位号标签(管口号外面以一个圈的型式表示)。
本集主要的精华部分在将管口图形及管口位号标签以块的型式生成,特别是管口位号标签块是以属性块的型式表示(如下图所示)。
其对应视频如下:
原代码如下(本集代码与上一集代码的增加集中在第81行至116行):
1 | __author__ = 'fenchane@wo.cn' |
2 | # date@2020-11-16 |
3 | import ezdxf # 导入ezdxf模块 |
4 | import math # 导入math模块 |
5 | # ezdxf 文档网址为https://ezdxf.mozman.at/docs/ |
6 | dxfile = 'd:\\nozzdraft.dxf' # 将要生成的NOZZ方位文件 |
7 | doc = ezdxf.new('R2010', setup=True) # 2010 格式, setup值为True时会加载默认的线型等设置,建议设置为True |
8 | doc.header['$INSUNITS'] = 4 # 文件为mm为单位 |
9 | msp = doc.modelspace() # modelspace 与CAD里的model模型相对应 |
10 | |
11 | # layer setting 下面将定义层新建一个列表 |
12 | # [层名称 线型 颜色索引 线宽(-1表示默认,30表示的的是0.3mm, 线宽依次类推] |
13 | layerset = (['level_cl', 'CENTER2', 255, -1], # 中心线用 |
14 | ['level_nozz', 'CONTINUOUS', 3, 30], # 管口图型用 |
15 | ['level_outline', 'CONTINUOUS', 1, 30], # 设备外形用 |
16 | ['level_tagText', 'CONTINUOUS', 2, -1], # 管口TAG用 |
17 |