首页 > 其他分享 >AutoCAD P&ID 工作平台的搭建

AutoCAD P&ID 工作平台的搭建

时间:2023-08-17 11:55:59浏览次数:46  
标签:projSymbolStyle AutoCAD 自定义 添加 dwg 图层 ID 管线 搭建

AutoCAD P&ID 工作平台的搭建

AutoCAD P&ID用于绘制工艺流程图,管理员可以配置软件,量身打造自定义 P&ID 绘图环境。首先我们来了解一下AutoCAD P&ID的工作方式。

AutoCAD P&ID是一个以块和变量操作为基础 AutoCAD二次开发软件,集合了多种国际相关标准,比如 PIP、ISO、ISA、DIN等,基本上标准里有的图形规范和规定,AutoCAD P&ID中都已经做成现成的块和选项板,实际制图过程中,几乎不需要使用 AutoCAD中的“绘图”工具,通过对块的操作,就能完成工艺流程图的绘制。

AutoCAD P&ID 通过项目的方式工作,按照你选择的制图标准配置数据库和选项板,按一套命名办法来定义块属性,通过对图形中各属性的提取和整理,实现设计数据的输出。

AutoCAD P&ID 把“工具选项板”按功能划分类别,在内部数据中,每种类别有不同的属性列表,你可以设置默认值、可以增加属性、可以定义位号格式、可以定义注释内容,还可以添加自定义图形,并将其设置为相关类别,从而具有该类别的属性,最后可将该图块添加到选项板,方便调用。

下面以本人发酵设计工作为例,讲解一下平台的搭建过程。

颜色与图层

在项目建立后,对应的文件夹内,AutoCAD P&ID 生成了一个项目图库文件projSymbolStyle.dwg,每个项目都是靠这个文件作为支撑,所有符号、自定义设备等都保存在该文件中,并在 processpower.dcf文件中记录相关设置数据。事实上,你在项目完成过程中可能会不断扩充完善其工作环境,这些修改都会体现在 projSymbolStyle.dwgprocesspower.dcf 里。

keyword:projSymbolStyle.dwg文件中保存了项目所有符号、自定义设备;processpower.dcf文件中记录相关设置数据。

AutoCAD P&ID 不按颜色而按位号来区别不同介质的管线,默认自带了它按施工时间顺序提供了三类管线样式,一是主、次工艺管线,蓝色实线分粗细,二是新增工艺管线,绿色虚线现分粗细,三是现有工艺管线,蓝色虚线现分粗细,个人认为这种划分实用性不强,一般而言,搭建绘图环境首先就是自定义管线面板。

keyword:按位号来区别不同介质的管线;自定义管线面板

那么,管线图层的建立,显然就是对 projSymbolStyle.dwg 操作,为方便快捷,使用 VBA 生成一个宏,将所需要的管线图层名、颜色和样式放置到变量里,便于修改,一键完成,对于管理员来说,是为首选。管线图层的颜色可参考“工业管道颜色及标识规范”来确定。

下面是VBA脚本文件内容:

Sub LayersInitialization() 
On Error Resume Next 
Dim LayersName(8) 
Dim LayersColor(8) 
Dim LayersLineType(1) 

LayersName(0) = "L - 冷水" 
LayersName(1) = "L - 热水" 
LayersName(2) = "L - 自来水"
LayersName(3) = "L - 蒸汽" 
LayersName(4) = "L - 物料" 
LayersName(5) = "L - 空气" 
LayersName(6) = "L - CIP" 
LayersName(7) = "L - CO2" 

LayersColor(0) = "110" 
LayersColor(1) = "22" 
LayersColor(2) = "3" 
LayersColor(3) = "1" 
LayersColor(4) = "30" 
LayersColor(5) = "253" 
LayersColor(6) = "214" 
LayersColor(7) = "2" 

LayersLineType(0) = "DASHED"
LayersLineType(1) = "Continuous"

DelLayers
Dim layerObj As AcadLayer
For i = 0 To UBound(LayersName)
Set layerObj = ThisDrawing.Layers.Add(LayersName(i))
layerObj.color = LayersColor(i)
layerObj.Linetype = LayersLineType(1)
Next
End Sub 

Sub DelLayers()
Dim entry As AcadLayer
For Each entry In ThisDrawing.Layers
If entry.Name <> "0" Then 
entry.Delete
End If 
Next 
End Sub

keyword:对 projSymbolStyle.dwg 按介质增加图层

图层建立之后,就是将管线添加到工具选项板中,方便调用,这个过程略为繁琐,好在只是一次性的。

首先,选择“工具选项板”中的“线”,为下步做准备。

然后,打开“项目设置”面板,找到“管线段”,右键新建类别,命名(统一为其所在图层名),参考系统管线的设置内容进行“线设置”,注意图层的选择。

最后,“添加到工具选项板…”。

keyword:为每种介质增加一种管线

工具选项板的布局显示等等是可以调整的,不过当你选择“图标和文字”后,你会发现文字显示占据了较大空间,你往往不能在一屏内找到所需图标,而“仅图标”方式只有当鼠标移动到其上时,才会出现文字提示,也略有不便。AutoCAD P&ID对此也提供了解决途径,那就是自定义显示图标,你可以把图标做成带文字的线条,然后替换原图标。对于管线而言,做成50x20 的PNG图片就行了,如下图:

然后你右键点击“工具选项板”上你想替换的图标,“指定图像…”中选择对应的图片就可以了。

完成后的选项板如下图:

如果屏幕分辨率足够大的话,上面这些自定义图标的操作就没必要了。

keyword:工具选项板自定义显示图标

对于管线图层来说,你也可以不按图层来区别管线类别,而是在系统“进程”图层中按颜色来区别,从而减少图层数量,如此还可省去建立图层的步骤,只在“线设置”中设置线型颜色即可。只不过当你想总体调整某类管线的参数(比如粗细颜色等)时,你只能通过颜色来“快速选择”,色号的记忆也许是个问题。而使用图层管理管线时,只要知道图层名就可以了,图层名是可选的,这样,在使用“快速选择”工具时,实在是要方便的多。

并且在绘图时,不管当前图层是否在某个管线层,你在“工具选项板”中点选某线时,所画的管线自动添加到该层,这在“线设置”中已经讲解。

keyword:在绘图时,不管当前图层是否在某个管线层,你在“工具选项板”中点选某线时,所画的管线自动添加到该层。

总结:

管道主要参数:直径,材质,压力等级,介质

自定义图块

你首先会自定义本公司特有的设备,因为这些设备在软件中并不一定能找到或者合适,其次就是阀门管件,说实话,系统自带的有点少,最后就是设备容器的信息标签,比如你想把发酵罐的容量放到标签里,可是自带的容器信息标签里没使用这个属性。

需要自定义的图块:特有的设备,阀门管件,设备容器的信息标签

1、自定义设备

1.1 文件域的自定义设备

比方我们现在要加入一个发酵罐到“工具选项板”中,你在项目图形里随便找个地方,参考实际尺寸按一定的比例画好,然后选取所画的图形,右键“转换为 PI&D 对象”,选择“碟型封头容器”类别,就可以了,此方法看似简单,其实可移植性不高,因为该设备只在当前图形中有效,你在“项目选项”面板里也找不到它,你必须在“项目选项”面板里打开这个文件进行添加后才可使用。不过对于临时性不常用的设备,这种办法是可取的,也可以被系统收集相关信息进行统计。

在项目图形里,定义一个块,“转换为PI&D对象”,选择类别。这个自定义设备,只在当前图形中有效,在“项目选项”面板里找不到它。

1.2 项目域的自定义设备

实用的可移植的办法还是从projSymbolStyle.dwg 文件着手。前面说过,项目中的所有符号、自定义设备等都保存在该文件中,那么,直接在该文件中绘制自定义设备即可。方法如下:

打开projSymbolStyle.dwg,在此图形文件中定义块。绘制发酵罐,选取发酵罐包含的所有图形,用“b”命令,弹出“块定义”对话框,按一定规则给块命名,你也可以从其它 DWG 文件中复制块到 projSymbolStyle.dwg 中,之后保存并关闭文件。

步骤1:块定义

回到项目中,打开“项目设置”对话框,找到“储罐”,右键新建“发酵罐”,在“添加符号”时找到你项目文件夹下的projSymbolStyle.dwg 文件,此时对话框会列出 projSymbolStyle.dwg 中的所有块,找到你前面制作的块,添加之后下一步,在“添加符号-编辑符号设置”中配置相关参数,注意图层应选择“设备”,“位号”应允许使用,否则无法添加容器信息标签。

keyword:“项目设置”对话框,找到类别,“添加符号”,找到projSymbolStyle.dwg 中预制的块;在“添加符号-编辑符号设置”中,注意图层应选择“设备”,“位号”应允许使用,否则无法添加容器信息标签。

完成配置后,点击“添加到工具选项板”则该图块显示在面板中。

“添加到工具选项板”

2、自定义阀门

阀门的制作多一个步骤,就是需要添加点参数,以使程序识别,实现插入时打断管线,移出时闭合管线等效果。绘制阀门应以系统原阀门图样为基础,比方你想绘制一个手动蝶阀,你在 CAD 程序的安装目录下,找到 SymbolLibrary 文件夹,打开其中的ISO_Valves.dwg文件,是不是有些恍然,双击蝶阀块,使用块编辑器打开 ISO Butterfly Valve,记下两个点参数的名称和位置:

AttachmentPoint1:EndCode0
AttachmentPoint2:EndCode180

再复制阀门图形,关闭ISO_Valves.dwg

步骤1摘要:点参数实现插入时打断管线,移出时闭合管线效果。系统原阀门图样在 CAD 程序的安装目录下,找到 SymbolLibrary 文件夹,打开其中的ISO_Valves.dwg文件,块编辑器打开ISO Butterfly Valve,复制此块定义。

回到projSymbolStyle.dwg,使用块编辑器命名新建一个块,粘贴阀门,把图形中心放置到原点,添加手柄,添加点参数,命名点参数,保存退出。

步骤2:将步骤1复制的块定义复制到projSymbolStyle.dwg,完成块定义步骤。

再回到项目中,打开“项目设置”对话框,找到“手动阀”,新建“手动蝶阀”,“添加符号”,选取项目文件夹下的projSymbolStyle.dwg,找到刚才制作的块,添加后下一步,命名,设置参数后完成。最后“添加到工具选项板”,制作结束。

步骤3:“项目设置”对话框,找到类别,“添加符号”,找到步骤2预制的块定义;在“添加符号-编辑符号设置”中,注意图层应选择“设备”,“位号”应允许使用,否则无法添加容器信息标签。

当然,你也可以用下面第 3 条“自定义信息标签”另存块的方式来制作,那样更省事。事实上在实际工作中,这个方法是最好的,前面的方法只是讲述如何从头开始制作块。

摘要:“自定义信息标签”另存块,可以实现步骤2相同的效果。

管件的制作类似,不再详述。

制作排污符号,取样符号,虚拟管件。基于管堵头管道配件。

3、自定义信息标签

首先提取projSymbolStyle.dwg 中的所有标签块到一个DWG 文件中,按一定规则修改标签块名,块属性修改完成后,再插回projSymbolStyle.dwg中,在项目设置的注释栏里(上图右下角),可以进行添加。

当然,你可以在projSymbolStyle.dwg中直接复制块,打开块后另存,见右图。

用设计中心把需要的块定义拖到新建的文件中,修改成你需要的定义。

英文中文属性参数对照,见下表:

Capacity 容量 
Comment 注释 
Description 说明 
DesignPressure 设计压力 
DesignTemperature 设计温度 
DisplayName 显示名称 
EndConnections 端点连接 
EquipmentSpec 设备等级库 
Failure 失败
From 自 
GraphicalStyleName 图形样式名称 
HasFlowDirection 流向 
Height 高度 
Insulation 壁厚等级 
InsulationType 保温类型 
Location 位置 
LoopNumber 回路数 
Manufacturer 制造商 
MaterialOfConstruction 构造材质 
ModelNumber 型号 
Normally 正常 
Number 编号 
OperatingPressure 工作压力 
OperatingTemperature 工作温度 
PostWeldHeatTreatment PWHT 
SetPoint 设置点 
SetPointType 设置点类型 
Size 尺寸 
Size2 端口2 
Spec 等级库 
Substitution 代替
Supplier 供应商 
SupportedStandards 支持标准 
Tag 位号 
TagFormatName 位号格式名称 
TestingFluid 测试液体 
TestPressure 测试压力 
To 至 
Tracing 伴管 
Type 类型 
ValveCode 阀代码 
Weight 重量

块属性参数设置方法:

下图为系统自带的容器信息标签,系统以#()格式使用变量。

如果你不想列出尺寸、设计温度与设计压力,而是以容积代替,删除那两个属性,加上#(TARGETOBJECT.CAPACITY)L 属性即可。如下图:

需要注意的是,自定义的属性会自动以大写字母表示,以示区分。

摘要:系统以#()格式使用变量。如#(TARGETOBJECT.CAPACITY)L 属性显示目标对象的容积。自定义的属性会自动以大写字母区分于原生属性。
P&ID中的实体,包括每个管线,设备都是以位号来区分,每个实体只有一个独特的位号,除了需要程序自动计算填写的属性(如直径,材质,压力,介质,来源,目标等)外,附加属性(如:容器大小,泵的压头,流量,型号)都应该删除,而是通过位号作为索引保存在可查询的表格中,如Excel数据表,数据库等形式。名称属性一般可以保留利于人类看图。

工作环境移植

最后来说一下工作环境移植的具体过程。

“复制现有项目中的设置”

打开“项目管理器”,“新建项目”,在“项目设置向导”中,点选“复制现有项目中的设置”,找到原项目XML文件(文件名为Project.xml)后,一路下一步即可。

如果是为他人配置工作环境,可将整个项目文件夹复制到其电脑上,再按以上操作即可。

keyword: “新建项目”,“复制现有项目中的设置”,(文件名为Project.xml

移植“工具选项板”中的设置

这个操作只是复制了项目设置,但对另外电脑而言,“工具选项板”中的设置并不会一同复制,此时需要将你电脑上包含工具选项板设置内容的文件夹复制过去就可以了。文件夹位置如下:

C:\Users\Administrator\AppData\Roaming\Autodesk\Autodesk AutoCAD Plant 3D 2023\R24.2\chs\Support

复制其中的ToolPalette(中文意思“工具选项板”)文件夹到另外电脑上覆盖对应的文件夹。

标签:projSymbolStyle,AutoCAD,自定义,添加,dwg,图层,ID,管线,搭建
From: https://www.cnblogs.com/cuishengli/p/17637229.html

相关文章

  • Android Rxjava :最简单&全面背压讲解 (Flowable)
    1.前言Rxjava背压:被观察者发送事件的速度大于观察者接收事件的速度时,观察者内会创建一个无限制大少的缓冲池存储未接收的事件,因此当存储的事件越来越多时就会导致OOM的出现。(注:当subscribeOn与observeOn不为同一个线程时,被观察者与观察者内存在不同时长耗时任务,就会使发送与接收速......
  • Android实战:APP换肤功能,并自动适配手机深色模式
    Android换肤功能已不是什么新鲜事了,市面上有很多第三方的换肤库和实现方案。之所以选择腾讯的QMUI库来演示APP的换肤功能,主要原因:1、换肤功能的实现过程较简单、容易理解;2、能轻松适配Android10提供的DarkMode(深色模式);3、还能白嫖QMUI的各种组件、效果(这才是重要的,......
  • Android 实现开机自启APP
    原文地址:https://www.cnblogs.com/stars-one/p/16329968.html公司有个项目,需要实现自启动的功能,本来想着是设置桌面启动器的方式去实现,但是设备是华为平板(EMUI系统),不允许设置第三方桌面且监听开机广播也无效,本来以为没法实现了,没想到公司的另一款APP确实支持,于是便是研究了下,发......
  • C# Microsoft.Win32.TaskScheduler方式创建任务计划程序报错: System.ArgumentExceptio
    使用Microsoft.Win32.TaskScheduler创建任务计划程序可参考本人之前的一篇文章:https://www.cnblogs.com/log9527blog/p/17329755.html最新发现个别账户使用Microsoft.Win32.TaskScheduler创建任务计划程序报错:System.ArgumentException:(12,21):UserId:Account一种情况是账户......
  • Streamlit项目:搭建舌体分割的初步展示应用
    1前言去年在社区发布了有关中医舌象诊断的博文,其中舌象识别板块受到了极高的关注和关注。......
  • 常见id
    雪花id type=IdType.ASSIGN_ID连表比较好用,最好用字符串存储,因为使用long在前端会有精度丢失,存在后三位都是0的情况自增id就是type=IdType.AUTO    安全性有点问题,可能被人推算出来,但是小公司系统这种使用和接触人都比较少的,一般没什么问题uuid 雪花id出现后好......
  • 零代码搭建一个微信小程序
    本文分享自华为云社区《【新手指引】体验通过AstroZero零代码快速搭建微信小程序》,作者:华为云Astro。您将学会如何基于Astro零代码能力,DIY开发,完成问卷、投票、信息收集、流程处理等工作,还能够在线筛选、分析数据。实现一站式快速开发个性化应用,体验轻松拖拽开发的乐趣。您需......
  • C# 获取Windows系统设备唯一标识方法及代码(Unique Identifier)
    唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保证你的软件在授权后才能在特定机器上使用)、软件License,设备标识,设备身份识别等。一、网卡MAC地址     MAC地址可能是最常用的标识方法,但是现在这种方法基本不可靠:一个电脑可能存在多个网卡,多个......
  • 根据druid将慢sql通过钉钉的方式进行告警功能记录
          想要借助接入的druid把日志里面输入的慢sql通过钉钉的方式进行告警,由于项目里面之前接入了druid,格式大概如下:    这个是接入druid并且配置了slowsql为true的情况下,日志里面打印的slowsql。刚开始我的想法是通过重写log4j的日志来进行记录,然后看了dr......
  • mormot2 笔记(二) Http服务的简单搭建
    mormot2框架中有个THttpServer类,它有一个Router属性,定义如下:propertyRouter:TUriRouterreadfRoute;Router是添加路由的入口点,它有和http协议对应的get,post,put,delete等方法,这些方法可以添加路由,下面常用的get方法定义。procedureGet(constaUri:RawUtf8;......