PML 範例
一個簡單的 Macro
NEW EQUIP /FRED
NEW BOX
XLEN 300 YLEN 400 ZLEN 600
NEW CYL DIA 400 HEI 600
CONN P1 TO P2 OF PREV
參數化巨集Parameterized Macro
NEW EQUIP /$1
NEW BOX
XLEN $2 YLEN $3 ZLEN $4
NEW CYL DIA $3 HEI $4
CONN P1 TO P2 OF PREV
變數給屬性賦值
New Pipe
Desc 'My Description'
Temp 100
Pspec /A3B
Purp PIPI
!desc = desc
!temp = temp
!pspec = pspec
!purp = purp
New Pipe
Desc '$!desc'
Temp $!temp
!pspec $!pspec
!purp $!purp
字串方法實例
!line = 'hello how are you'
!newline = !line.after('hello').trim().upcase()
q var !newline
!newline = !newline.replace('how', 'where').replace('you', 'you?')
定義函數
define function !!Area( !Length is REAL, !Width is REAL ) is REAL
!Area = !Length * !Width
return !Area $*函數!!Area有兩個參數一個返回值
Endfunction
練習-新建函數計算園的面積,測試函數
define function !!circleArea( !radius is REAL) is REAL
!Area = PI * pow(!radius,2)
return !Area
Endfunction
條件判斷語句(If Construct)
!Type = Type
!OwnType = Type of Owner
IF (!Type eq 'BRAN') THEN
$P CE is Branch.
ELSEIF (!OwnType eq 'BRAN') THEN
$P CE is Branch member.
ELSE
$P CE is $!Type,Pls select Branch.
ENDIF
練習-條件判斷
!n = 0
!type = type
if(!type eq 'BRAN') then
!href = href
!tref = tref
if(!href.set()) then
!n = !n + 1
add href
endif
if(!tref.set()) then
!n = !n + 1
add tref
endif
endif
if(!type eq 'NOZZ') then
!cref = cref
if(!cref.set()) then
!n = !n + 1
add cref
endif
endif
$p Total $!n reference
迴圈賦值
!Total = 0
Do !x From 1 To 100 By 1
!Total = !Total + !x
Enddo
中斷迴圈 Break
!Total = 0
Do !x From 1 To 100
!Total = !Total + !x
If(!Total gt 500) then
Break $*或者Break if(!Total gt 500)
Endif
Enddo
用skip 跳過奇數
Do !x From 1 To 100
If(Int(!x / 2) NE (!x / 2)) then
Skip $*或者Skip If(Int(!x / 2) NE (!x / 2))
Endif
!Total = !Total + !x
Enddo
練習-跳轉
!n = 0
label /start
!type = type
if(!type eq 'BRAN') then
!href = href
!tref = tref
if(!href.set()) then
!n = !n + 1
add href
endif
if(!tref.set()) then
!n = !n + 1
add tref
endif
endif
if(!type eq 'NOZZ') then
!cref = cref
if(!cref.set()) then
!n = !n + 1
add cref
goto cref
golabel /start
endif
endif
$p Total $!n reference
錯誤提示
Next
$p OK
錯誤處理(Error Handling)
Next
Handle (2,113)
$p Last element.
EndHandle
$p OK
陣列(Array)
!Str = 'Benz,Bmw,Audi'
!BestCar = !Str.Split(',')
Q var ! BestCar
!BestCar[4] = 'Cadillac'
!BestCar.Append('Lincoln')
賦值迴圈Do value
do !Name values !BestCar
$p Array element is $!Name
Enddo
索引迴圈Do indices
do !n indices !BestCar
!Car = !BestCar[!n]
$p Array element $!n is $!Car
Enddo
管道排序
Var !Pipes Coll all Pipe for ce
Var !Names Eval name for all from !Pipes
!Name.sort().invert()
Do !n indices !Names
reorder $!names[$!n] before $!n
EndDo
練習-選擇一個設備,將所有Nozzle連接的管道添加進來
Var !nozzles Coll all nozzle for ce
Do !nozzle value !nozzles
Add cref of $!nozzle
EndDo
文件處理(Handling Files)
!Input = object FILE('%pdmsexe%abc.txt')
!Lines = !Input.ReadFile() $* ReadFile將檔內容寫到字串陣列中
!ResultArray = ARRAY() $* 聲明新陣列
do !Line VALUES !Lines
!Column1 = !Line.Part(1)
!ResultArray.Append( !Column1)
Enddo
!Output = object FILE('%pdmsexe%def.txt')
!Output.WriteFile('WRITE', !ResultArray) $* WriteFile將陣列寫到檔
練習-文件處理
!Input = object FILE('%pdmsexe%abc.txt')
!Lines = !Input.ReadFile()
do !Line VALUES !Lines
$p $!line
Enddo
顯示輸出視窗
var !isshown form _CADCBTH display
if(!isshown eq 'Off') then
show _CADCREQ
endif
var !date clock date
var !time clock time
$p Begin report at $!date $!time
一個簡單的對話方塊(Form)
setup form !!hello
Title 'Hello'
paragraph .Message text 'Hello world'
button .bye 'Goodbye' OK
exit
缺省構造方法(Constructor method)
setup form !!hello
Title 'Hello'
paragraph .Message text 'Hello world'
text .input 'Enter text' width 10 is string $*字串類型的編輯框
button .bye 'Goodbye' OK
exit
Define method .hello() $*缺省構造方法,與Form同名,不帶參數
!this.input.callback = ‘!this.doinput()’ $*Callback指明回應操作
endmethod
Define method .doinput() $*回應操作
!this.message.val = !this.input.val $*!this = !!hello, val 表示value
endmethod
控制項定位
setup form !!hello
Title 'Hello'
paragraph .Message text 'Hello world'
text .input 'Enter text' at x0 ymax width 10 is string
button .bye 'Goodbye' at x0 ymax OK
exit
控制項定義
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
設置控制項初始值
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
define method .addvolumn()
!this.bran.val = true
!this.input.val = '1500'
endmethod
按鈕的應用實例
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
define method .addvolumn()
!this.bran.val = true
!this.input.val = '1500'
!this.ce.callback = '!this.ce()'
endmethod
define method .ce()
!this.cename.val = fullname
endmethod
對話方塊控制屬性-Apply
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
define method .addvolumn()
!this.bran.val = true
!this.input.val = '1500'
!this.ce.callback = '!this.ce()'
!this.apply.callback = '!this.apply()' $*不關閉對話方塊
endmethod
define method .ce()
!this.cename.val = fullname
endmethod
define method .apply()
!dist = !this.input.val
!name = !this.cename.val
$p CE is $!name ,Dist = $!dist
endmethod
多選框的應用實例
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
define method .addvolumn()
!this.bran.val = true
!this.input.val = '1500'
!this.ce.callback = '!this.ce()'
!this.apply.callback = '!this.apply()' $*不關閉對話方塊
endmethod
define method .ce()
!this.cename.val = fullname
endmethod
define method .apply()
!name = !this.cename.val
!dist = !this.input.val
!elements = array()
if(!this.bran.val) then
var !elements append coll all bran Within Volume $!name $!dist
endif
if(!this.equi.val) then
var !elements append coll all equip Within Volume $!name $!dist
endif
var !names eval name for all from !elements
do !element value !elements
add $!element
enddo
endmethod
列表框應用實例
setup form !!addvolumn
title 'Add volumn'
button .ce 'CE' at x0 ymax tooltip 'Select pipe'
paragraph .cename text 'no name' width 15
text .input 'Enter text' at x0 ymax width 10 is string
Frame .frame1 'Include' at x0 ymax
toggle .bran 'Branch'
toggle .equi 'Equipment'
Exit
list .list 'Drawlist' at x0 ymax+0.3 width 18 height 5
button .ok 'OK' at x0 ymax OK
path right
button .apply 'Apply' apply
button .cancel 'Cancel' Cancel
!modifyOnIcon = !!pml.getpathname('modmodeon16.png')
button .pick pixmap /$!modifyonicon at x0 ymax
exit
define method .addvolumn()
!this.bran.val = true
!this.input.val = '1500'
!this.ce.callback = '!this.ce()'
!this.apply.callback = '!this.apply()' $*不關閉對話方塊
!this.list.callback = '!this.doselection()'
endmethod
define method .ce()
!this.cename.val = fullname
endmethod
define method .apply()
!name = !this.cename.val
!dist = !this.input.val
!elements = array()
if(!this.bran.val) then
var !elements append coll all bran Within Volume $!name $!dist
endif
if(!this.equi.val) then
var !elements append coll all equip Within Volume $!name $!dist
endif
var !names eval name for all from !elements
!this.list.dtext = !names
do !element value !elements
add $!element
enddo
endmethod
define method .doselection()
!name = !this.list.selection()
$!name
endmethod
Alpha Views
Setup Form !!alphaview
title ' Input & Output'
view .Input ALPHA hei 10 width 40
channel REQUESTS
channel COMMANDS
Exit
button .apply 'Apply' at x0 ymax Apply
button .Dismiss 'Cancel' at Xmax form-size Cancel
Exit
Volumn View
setup form !!poptest
view .vol volume width 50 hei 9
exit
path down
button .press 'swap popup' call '!this.popswap()'
menu .popmenu
add 'hello' ' '
add 'world' ' '
exit
exit
define method .popswap()
!this.vol.popup = !this.popmenu
endmethod
PDMS 指令縮寫-NEW
--PDMS COMMAND ABBREVIATION (FU-TAI)
--BRAN
$S HH=BRAN $/CONN PH TO
$S TT=BRAN $/CONN PT TO
$S HHH=BRAN $/FOR $/CONN PH TO FIRST MEM $/SEL HSTU
$S TTT=BRAN $/FOR $/CONN PT TO LAST MEM
--QUERY
$S QA=Q ATT
$S QW=Q POS IN WORL
$S QS=Q POS IN SITE
$S QZ=Q POS IN ZONE
$S QE=Q POS IN EQUI
--SAVEQORK
$S SS=SAVEWORK $/GETWORK
--CHK ISO NO PLOT/PLOT
$S CISO = ISODRAFT $M/I:\PDMS\ISO\ISO.MAC
$S CISOP = ISODRAFT $M/I:\PDMS\ISO\ISOP.MAC
--FINAL ISO NO PLOT/PLOT
$S FISOP = ISODRAFT $M/I:\PDMS\ISO\ISOFP.MAC
$S FISO = ISODRAFT $M/I:\PDMS\ISO\ISOF.MAC
--MESS FILE
$S MESS = $M/I:\PDMS\MAC\QMESS
--PLAN
$S PE=PLAN E THR ID@ $S PW=PLAN W THR ID@
$S PN=PLAN N THR ID@
$S PS=PLAN S THR ID@
$S PU=PLAN U THR ID@
$S PD=PLAN D THR ID@
說明: 1.直接下指令 例如: SS 即可 SAVEWIK & GETWORK
2. 直接下指令 例如: CISO 即可得CE所在之CHECK ISO
3. 直接下指令 例如: CISOP 即可得CE所在之CHECK ISO 且列印.
4. 直接下指令 例如: HH TEE 即可得BRAN HEAD CONN TO TEE 或 HH ID@ 即可得BRAN HEAD CONN TO 滑鼠所點選 ITEM
5.MESS--- 開啟 ISO MESSAGE FILE.
5.如有相關常用指令亦可寫為簡易指令.
PDMS 錯誤訊息
PDMS 錯誤解釋
一、 資料一致性判斷資訊
當發出“CHECK”指令後,DEGIGN掃描相關資料庫提取適當的設計和目
資料,執行上一步所說的詳細檢查操作,無論何時,只要有設計資料不一致或錯誤發現,判斷資訊就輸出到螢幕或附件。
判斷資訊經常是指出的錯誤是合併的參考資訊(可能真正的錯誤發生在相鄰的元件上)。
如果檢查結束而沒有錯誤,則出現下列資訊:
*NO DATA INCONSISTENCIES*
1、 全局判斷
R10 BAD OWNER PEFERENCE
解釋:從屬關係是指在不存在元素或不存在所需元素在列表中,這種錯誤說明,一個或多個資料庫已經發生中斷。
2、 BRANCH –SPECIFIC diognostics
BRANCH 起點錯誤
A10 HEAD REFERENCE NOT SET
解釋:起點的參考沒有設定,當有下列情況時顯示此錯誤:當起點的連接形式(HCONN)爲:OPEN、VENT、CLOS或DRAN時。
A20 HEAD REFERENCE POINTS TO NONEXISTENT ELEMENT
解釋:由於起點原參考點已被殺掉,例如:一個NOZZLE是原來的Branch的起點,被殺掉後,就會出現這種資訊。
A30 BAD HEAD RETURN REFERENCE
解釋:Branch的起點參考的元素並沒有相對Branch的參考資訊。主要發生在某一個Branch連接的另一個Branch時,它暗示應該有一個TEE形式放置於第二條Branch上。
當不注意情況下,將兩個或多個Branch連接到了同一個終點時,也會出現這種錯誤。
A100 EHAD TERMINAL PROBLEM WITH SPREF
解釋:Branch的起點沒有設定SPREF或SPREF指向一個不存在的SPCOM。
A110 HEAD TERMINAL PROBLEM WITH CATREF
解釋:Branch的起點沒有設定CATREF或CATREF指向一個不存在的資料庫元件。
A120 HEAD TERMINAL PROBLEM IN ACCESSING P-POINT
解釋:在訪問Branch起點的P-Point時出現的資料庫問題。
A130 HEAD TERMINAL PROBLEM P-POINT NO DOES NOT EXIST
解釋:Branch的起點末端需要的P-Point沒有存在於P-Point組中。
A200 DIRECTION HDIR NOT SAME AS TERMINAL DIRECTION
解釋:如果Branch起點連接到一個末端,如:管口、TEE(支管形式),這時HDIR的方向應該是與對應的終點的P-Point的方向一致。
A210 POSITION HPOS NOT SAME AS TERMINAL POSITION
解釋:如果Branch的起點連接到一個末端時,如:管口、 TEE(支管形式),這時,HPOS的位置應該和對應終點的P-Point的位置一致。
A220 HBORE NOT SAME AS TERMINAL BORE
解釋:如果Branch的起點連接到一個末端時,例如:管口、TEE等,這時,HBORE的管徑應與對應的終點的P-Point點的管徑一致。
A230 CONNECTION TYPE HCONN NOT SAME AS TERMINAL CONNECTIONTYPE
解釋:如果Branch的起點連接一個末端時,如管口、TEE等,這時HCONN的連接形式應與對應末端的P-Point點的連接形式一致。
A300 REFERENCE HSTUBE UNSET
解釋:在Branch的起點和第一個管件的入口之間有超過1mm的管子,但HSTUBE沒有設定。
A310 REFERENCE HSTUBE REFERS TO A NONEXISTENT SPCOM
解釋:如果SPEC中這部分被刪除時,可能發生這種情況。
A320 HSTUBE PROBLEM ,CATREF IN SPCOM IS UNSET
解釋:這表示規範中的一個錯誤。
A330 HSTUBE PROBLEM ,CATREF IN THE SPCOM REFERS TO NONEXISTENT Catalogve COMPONENT
解釋:在資料庫的一部分被刪除或資料庫對應關係沒有建立時,才會出現這種情況。
A340 HSTUBE PROBLEM,GTYPE OF CATALOGVE COMPONENT IS NOT SET TO TUBE
解釋:HSTUBE 所指定的元件不是資料庫中TUBE的形式。
A350 HSTUBE NOT SAME AS BORE OF HSTUBE
解釋:這是個資料庫錯誤,是在訪問被HSTUBE指定的TUBE的P-Point點時出現的。
A400 HBORE NOT SAME AS BORE OF HSTUBE
解釋:任何由Branch起點引出的管段(TUBE)的外徑必須與HBORE一致(由資料庫決定的)。
A410 HCON NOT COMPATIRLE WITH CONNECTION TYPE OF HSTUBE
解釋:由Branch起點所有的直管段(TUBE)的連接形式必須有對應適當的連接形式。
A420 ISPEC REFERENCE POINTS TO NONEXISTENT ELEMENT
解釋:例如,ISPEC 指定的保溫規範已被刪除時就會發生。
A430 INSULATION CAN NOT BE SELECTED USING HBORE
解釋:在資料庫中沒有合適的溫度和直徑的組合,(HEMP。HBORE)被選用時。
3、 Branch尾端錯誤判斷
B10 TAIL REFERENCE NOT SET
解釋:Branch的尾端點(終點)未指定,也就是無效的,如果Branch的尾端點(終點)的連接形式是TCONN、OPEN、VENT、CLOS或者DRAN。
B20 TAIL REFERENCE POINTS TO NONEXISTENT ELEMENT
解釋:參見A20。
B30 BAD TAIL RETURN REFERENCE
解釋:參見A30。
B100 TAIL TERMINAL PROBLEM WITH SPREF
解釋:參見對應的A100。
B110 ~B230 均參見相應的A110~A230。
B150 TAIL (BRANCH)TERMINAL PROBLEM INCONSISTANT FLOW ACROSS BRANCH PLAIN BRANCH ERROR
4、 沒有管件的Branch會出現的問題
C500 TUBE TOO SHORT BETWEEN HEAD AND TAIL
起點(HPOS)到終點(TPOS)的距離大於0,小於給定最小允許距離(默認爲100)。
C510 BAD HEAD TO TAIL GECMETRY
起點位置(HPOS)在正距離上沒有對齊終點(TPOS)在終點方向(TDIR),或者終點位置(TPOS)沒有在起點方向上(HDIR)對齊起點(HPOS)。
下面就是幾種簡單圖例:
C520 HBORE NOT SAME AS TBORE
當一個Branch上沒有管件時,起點外徑(HBORE)應和終點(TBORE)外徑保持一致。
C530 HCONN IS NOT COMPATIBLE WITH TCONN
這就意味著Branch的起點與終點間沒有管子或管件而直接相連,因此起點的連接形式(HCONN)和終點的連接形式(TCONN)必須匹配。
C540 THIS BRANCH HAS NO COMPONENTS
這不是一個錯誤,僅僅是對設計者的一個警告。
二、元件細節判斷
下列的錯誤資訊提供的是單個管線元件和他們相鄰的元件的錯誤資訊,其中一些資訊是指出支架元件和(或)管口。
1、 所有的元件判斷,這些適用於任何元件,無論其在管子中的位置。
D100 REFERENCE SPREF UNSET
解釋:大概意思是指設計者忘記選中管道元件了。
D110 REFERENCE SPREF REFERS TO A NON-EXISTENT SPCOM
解釋:這可能發生在規範中的一部分被刪除了。
D120 SPREF PROBLEM,CATREF IN SPCOM IS UNSET
解釋:這顯示在SPEC 資料中有錯誤。
D130 SPREF PROBLEM CATREF IN THE SPCOM REFERS TO NON-EXISTENT CATALOUGE COMPONENT
解釋:資料庫中的部分被刪除或者CATREF在SPCOM 中沒有設定,才會發生這個資訊。
D140 SPREF PROBLEM GTYPE OF CATALOGUE COMPONENT IS NOT SAME AS TYPE OF DESIGN DATA COMPONE。
解釋:資料庫元件的GTYPE 必須和管件在設計資料中要一致。
D150 CATREF PROBLEM IN ACCESS P=POINT。
解釋:在讀取被CATREF 指定的資料庫元件的P-POINT點時發生錯誤。
D160 REFERENCE CATREF UNSET
解釋:這只是出現在對管口時,CATREF必須設定。
D170 REFERENCE CATREF REFERS A NON-EXISTENT CATALOGUE。
解釋:資料庫的對應部分被刪除時出現,它只針對管口。
D200 ARRIVE P-POINT NOT IN PTSET OF CATALOGUE COMPONENT。
解釋:進口P-POINT號碼在資料庫元件的PTSET 中沒有。
D210 LEAVE P-POINT NOT IN PTSET OF CATALOGVE COMPONENT。
解釋:出口P-POINT號碼在資料庫元件PTSET中沒有。
D300 REFERENCE CREF NOT SET
解釋:多分支元件不做連接的口,相應的P-POINT的連接形式是OPEN,CLOS,VENT或無效的形式才可以不接。
D310 REFERENCE CREF POINTS TO NON-EXISTENT BRANCH。
解釋:CREF 指向的BRANCH已經被刪除。
D320 BAD CREF RETURN REFERENCE。
解釋:CREF 指向的BRANCH已經被別的末端連接時出現。
D330 REFERENCE CRFA N NOT SET。
解釋:如果對應的P-POINT在資料庫裏不存在,或者對應點的連接形式是VENT,OPEN,CLOS或無效的連接參考陣列中的一個入口將不設定。
D340 REFERENCE CRFA N POINTS TO NON-EXISTENT BRANCH。
解釋:在連接參考陣列中的(第N個)參考指定的BRANCH 被刪除時出現。
D350 BAD CRFA n RETURN REFERENCE。
解釋:在連接參考陣列中的第n個參考指定的元素被第n條BRANCH 連接時出現。
D400 ARRIVE TUBE [ROD]LESS THAN [ROD] MINIMUM,ACTUAL TUBE [ROD] LENGTH IS …..
解釋:從上一個元件或起點出口到這個元件的入口之間的距離大於0小於給定的最小距離,直管的長度預設值爲100。
D410 BAD ARIVE GEOMETRY +details of geometric errors。
解釋:此元件的進口P-POINT的位置和方向與相對應的上一個元件的P-POINT是不正確的對應,這個或上一個或兩者的位置不正確可能引起這個。典型圖例如下:
D420 BAD ARRIVR BORE [ROD DAMETER]
解釋:這個元件進口的外徑不等於前面管子的直徑,(沒有管子時)或不等於上一個元件出口直徑或Branch起點直徑。
D430 BAD ARRIVE CONNCTION TYPE。
解釋:這個元件進口的連接形式與前面管子的連接形式(沒有布管子時)與上一個元件出口連接形式或起點的連接形式(HCONN)不匹配。
D500 REFERENCE LSTUBE [LSROD] UNSET
解釋:設計者可能忘記選擇管線或支架元件了。
D510 REFERENCE LSTUBE [LSROD] REFERS TO A NON-EXISTENTSPCOM。
解釋:(資料庫)規範中可能已將這部分刪除。
D520 LSTUBE [LSROD] PROBLEM ,CATEREF IN SPCOM IS UNSET。
解釋:(資料庫)中規範的錯誤。
D530 LSTUBE PROBLEM,CATREF IN THE SPCOM REFERS TO NON-EXISTENT CATALOGUE COMPONENT。
解釋:可能是資料庫的部分被刪除。
D540 LSTUBE PROBLEM GTYPE OF CATALOGUE COMPONENT IS NOT SET TO TUBE。
解釋:被LSTUBE 指定的元件不是在資料庫中的TUBE形式。
D550 LSTUBE [LSROD] PROBLEM IN ACCESSING P-POINTS。
解釋:在讀取由LSTUBE[LSROD]指定的管子[ROD]的P-POINT點時存在的資料庫錯誤。
D600 LEAVB BORE [DIAMETER] NOT SAME AS BORE [DIAMETER]OF LSTUBE [LSROD]。
解釋:這個元件的出口外徑不等於這個元件後的管子外徑。
D610 LEAVE CONNECTION TYPE NOT COMPATIBLE WITH CONNECTION TYPE OF LSTUBE [LSROD]。
解釋:這個元件出口的連接形式與這個元件後的管子的連接形式不一致。
D620 INSULATION CANNOT BE SELECTED USING LEAVE BORE。
解釋:在資料庫中沒有合適選擇保溫厚度對應此溫度與外徑的組合。
D630 ATTACHMENT TYPE INVILID—MUST BE NOE OF FLOW xxxx ssss cccc CCNN。NULORNUL。
解釋:修改了一個不正確的TYPE屬性爲ATTA。
D740 ANGLE OF COMPONENT IS GREATER THAN MAXIMUM ANGLE SPECIFID IN SPREF。
解釋:彎管彎頭或焊接的設計角度超過了SPECS 中允許的最大角度。
D740 ANGLE OF COMPONENT IS LESSTHEN MINIMUM ANGLE SPECIFID IN SPREF。
解釋:彎管彎頭或焊接的設計角度小於SPECS 中允許的最小角度。
D740 ANGLE GREATER THAN m DEGREES ACTUAL ANGLE IS n。
解釋:彎管和彎頭的設計角度大於使用者設定的最大角度(參照TOLERANCE MAXANGLE)。
END-Component Diagnostics 結束Branch元件的判斷
下列資訊是關於Branch上最後一個元件的。
E700 LEAVE TUBE LESS THAN TUBE MINIMUM ACTUAI TUBE LENGTH IS….
解釋:元件出口的P-POINT到Branch終點(TPOS)的距離大於0小於給定的最小管段長度(默認爲100)。
E710 BAD LEAVE GEOMETRY。
解釋:元件出口的P-POINT的位置方向與Branch終點位置(TPOS)方向(TDIR)不對應元件終點或兩者的不正確定位。
E720 LEAVE BORE NOT SAME AS TBORE。
解釋:元件出口P-POINT外徑與Branch終點的外徑不一致(TBORE)。
E730 LEAVE CONNECTION TYPE NOT COMPATIBLE WITH TCONN。
解釋:元件出口的P-POINT的連接形式和Branch終點的連接形式(TCONN)不對應。
PDMS ISO 圖框製作
1.PDMS -ISO 圖框製作
在I:\PDMS\BORDER下
執行 PLOT DXF TAO_A3.PLT TAO_A3.DXF
將 PLT 檔 轉換成 DXF檔
.用AUTOCAD 開啟 DXF檔編輯,加上中文字,完成後全部炸開
(使用EXPRESS 中之EXLODE TEXT),
.存檔成 R12 DXF 格式.
2. 執行 PLOT PDMS TAO_A3.DXF TAO_A3.PLT
.將 DXF檔 轉換成 PLT檔
. TITLE BLOCK 填寫
依據座標值填入設計溫度,壓力
以ISOFINAL.EDG.DEM為例
POSI $!P1 AT X504 Y4 CHAR H 3
POSI TEMP AT X202 Y53 CHAR H 2.5
POSI PRES AT X250 Y53 CHAR H 2.5
POSI CCLA AT X202 Y44 CHAR H 2.5
POSI DSCO AT X250 Y44 CHAR H 2.5
POSI XSTRESS AT X317 Y5 CHAR H 2.5
POSI XTPRESS AT X253 Y31 CHAR H 2.5
POSI CCEN AT X202 Y35 CHAR H 2.5
POSI EREC AT X250 Y35 CHAR H 2.5
POSI XPWHT AT X302 Y53 CHAR H 2.5
POSI INSC AT X200 Y25 CHAR H 2.5
PS. 設計及繪圖者名字為中文字必須在圖框中製作
MODI SPEC 原有管線E1P0 已完成後, 如今欲修改為C1P0 游標停在PIPE OR BRANCH 選擇 UTILITY>MODIFY SPEC 選想要變更之PIPING SPEC 程式會自動修改,如遇到無法找到相對之管件,則會顯示交談框讓你挑選.
.增加CALL-OUT 秘訣
PCOM 增加一屬性
:XPCOM HYDRANT/MONITOR編號可放在這裡.
SPECTACLE BLIND 標註 NORMAL CLOSE/NORMAL OPEN可放在這EX. :XPCOM 'FH-104'
另外在ISOFINAL.DEM.EDG 加入此行 OUTCOM :XPCOM on PCOM WITH BOXSTYLE STRAIGHT
WITH BOXSTYLE STRAIGHT 可以產生 有STRAIGHT BOX
CALL-OUTWITH BOXSTYLE DIAMOND可以產生菱形
CALL-OUTWITH BOXSTYLE ROUND可以產生圓形
CALL-OUT其他管件可依照辦理.
目前有使用較多者
:RUPT FOR INST:XBOX FOR GENERAL USE
:XPCOM FOR PCOM:CALL-OUT FOR ELBO SR
:XNOZC FOR GASKET (CALL-OUT NOZZLE RATING)**TIE-IN 符號可依狀況加在WELD 或 其他元件上.
PDMS 常用指令
PDMS常用命令 2006-06.30 by Jacky
--Equipment
Q NAME ----查詢作用中物件名稱
Name /P-001 ----修改物件名稱
Q ATT ----查詢物件屬性
EQUI 使用
Q POS ----查詢設備原點座標
POS E 1200 N 2100 U 1500 直接修改設備原點座標
Q POS IN WORL 查詢元件的原點座標 相對整個座標.
NOZZ
Q HEIG ---查詢NOZZ之實體長度
HEIG 400 -- 修改NOZZ之長度
平移
BY E 100 --向E方向移動 100
PIPEWORK
名詞解釋
PA : 管件進入點
PL : 管件離開點
P3: 管件第三點,如閥桿方向,TEE,OLET
POS:管件原點
PH: BRANCH HEAD
PT: BRANCH TAIL
HREF: HEAD Reference (記錄branch head 接什麼)
TREF : TAIL Reference (tail 接什麼)
CREF : Connect Reference ( tee,olet 接什麼)
建檔注意事項:
1.同一PIPE中須CHANGE PEC或CHANGE 保溫時,請另建BRANCH,
即同一BRANCH中PSPE/ISPE須相同.
ELBO
DIR R 指定ELBO離開方向.
管件定位方式-連接
CONN --連接前一個MEMBER
CONN TO NEX --連接下一個MEMBER
CONN TO PT --連接至BRANCH TAIL
CONN AND P3 IS U --連接且P3 方向 IS U
CONN PT TO LAST --結尾至最後一個元件
FCONN ---強制連接
管件定位方式-距離
DIST 100 FROm PRE
DIST 200
DIST 100 FROM ID@
DIST 300 FROM PL OF PREV
POS PA DIST 300 FROM PL OF PRE 指定SPOOL 長度POS PA DIST 6000 FROM PL OF PREVPOS PA DIST 6000 FROM PL OF PRE COUP修改方位ORI AND P3 IS N45U ---P3 點朝N45UORI AND PL IS D ---修改RELIEF VALVE 之離開點方向FLOW BACK --建檔順序逆流向FLOW UNSET --建檔順序順流向選定物件PRENEXTENDSAMEFLAN 12/PW-101/PG-1301 跳至PG-1301BRANCH 查詢Q PHQ PTQ HREF Q TREFQ HCONNQ TCONNQ HBOREQ TBOREOELT/TEE 查詢Q CREFINST 查詢Q HEIGQ RADIQ ANGL出ISO圖前審核CH CE --可用於 ZONE /PIPE /BRAN中查詢
查詢屬性
Q Att
查詢類型
Q Type
查詢可以生成的類型
Q List
查詢環境變數
Q evar pdmsuser
清屏 命令行清屏
Alpha request clear
新建 生成
New (Type)
刪除Delete (Type)
命名 查詢
q nameq fullname
命名
Name /Newname
去掉命名
Unname
重新命名所有
Rename AllRen all /100 /200
鎖定 查詢
Q Lock
鎖定
Lock ce
解鎖
Unlock ce
Unlock All
顯示
加入顯示
Add CE
自動顯示到螢幕中央
Auto CE 移去顯示
Remove CE
Remove All
標記
標記
Mark ce
移去標記
UnMark ce
查詢
Q pos
Q POS IN WORL
Q pos wrt Site
相對定位
By E1500
By E1000By X20 Y30
導航
查詢成員
Q Mem
導航
First,Last,Next,Previous,Owner,End
追蹤參考
Goto Spref
回到上一次的層次
Same
排序
重新排序,必須在Owner級
Reorder 3 Before(After)1
轉移層次
Include
轉移層次,首先定位在應該去的位置
Incl /Name
Incl Mem Of /Name
Incl /EQUIP BEF 3
拷貝組合命令
名字記憶
Setstar 將名字放到*中
拷貝
New (Type) Copy Pre
組合命令
SetNEW EQUI /TEST-EQUI COPY * REN * /TEST-EQUI
滑鼠選擇
滑鼠選擇
Id CursorId@
滑鼠選擇關鍵點
Id PpointIdP@
基本體連接
Connect P1 TO IDP@
保存
保存
Savework
最新設計
Getwork
退出到Monitor
Quit
退出Pdms
Finish
直接進入模組,切換模組
建立批次檔案,直接進入Design
d:\cadcentre\pdms11.4.sp1\pdms.bat SAM
SAMPLE/SAMPLE /SAMPLE DESIGN
切換模組
Design
Draft
Paragon
Isodraft
切換MDB
切換MDB
MDB update
User username/password/MDBnameexit
PDMS管道建模常用命令
新建Pipe,Branch
建立Pipe,指定等級
New Pipe /100-P-2003-2.5A1-ST(1)Pspec /2.5A1
Ispec /IRWP
Tspec /1X25
建立Branch,自動繼承等級
New Branch /100-P-2003-2.5A1-ST(1)/B1
Branch 頭尾連接 分支頭是PH,分支尾是PT
– CONN PH TO /1205-N5 (/1205-N5 is a Nozzle)
– CONN PT TO LAST MEM
– CONN PT TO /100-A8/T2 (/100-A8/T2 is a TEE)
– CONN PT TO P4 OF /VF205 (/VF205 is a VFWA.)
– CONN PH TO PT OF /100-A8/1 (/100-A8/1 is anotherBranch)
– CONN PH TO ID NOZZ@
新建元件
Choose
設置自動連接
Choose AutoConnect On
從Branch等級中選擇元件,顯示元件描述
New Gask Choose Rtext(Or Stex,Ttex)
New Flan Choose RtextNew Elbo Choose All
通過Stype選擇元件
New Elbo Choose With Stype E
New Redu Choose With Stype CONC Abor 100 Lbor 80
Branch方向
Branch方向轉換
Forward
Backward
反向配管
Back
New Elbo Choose All
反向從Branch Tail配管
Back
Tail
New Gask Choose元件連接
Connect
與前一個連接
Conn 與後一個連接
Conn To Next
強制連接
Force Connect
Fconn
Fconn To Next
Fconn To Tail
改變方向Dir
改變方向,同時修改Angle
屬性Dir E
繼續… 改變P3點的方向
Dir And P3 Is U45E
元件繞軸旋轉
Orientate
一般用於旋轉P3點
Ori And P3 Is Up
改變元件出入口點
改變Arrive和Leave屬性
Arr 1 Leav 3
定位點對齊
Through
定位點沿前一個元件的出口方向與參照物對齊
– Thr /TANK5
– Thr E3000
– Thr ID@
– Thr Nex
– Thr Pt
定位選項組合方法
定位選項組合方法定位點定位
Distance
元件定位點之間的距離
Dist 1000
定位點與參照物的中心定位
From,To
定位點與參照物的中心定位
– DIST 200 FROM /TANK5
– DIST 1000 TO NEXT
Spool
定位
POS PA DIST 100 FROM PL OF PREVS
POOL
DISTANCE
P0 P0
定位點與參照物的外輪廓定位
Infront,Behind
定位點沿軸線與參照物的外輪廓定位
– DIST 30 INFRONT /WALL
– DIST 125 BEHIND ID@
定位點與參照物的外輪廓定位
Onto,Under
定位點與參照物的外輪廓垂直方向定位
– DIST 35 ONTO /BEAM
– DIST 125 UNDER IDP @
外輪廓定位
Clearance
元件外輪廓定位
Clea 500
管底定位
Bop
管底和管頂
Bop/Top
– Bop Onto Id@
– Bop 50 Onto Id@
Branch 頭尾定位 利用最後一個元件
CONN PT TO LAST MEMPOS PT DISTANCE 1000
綜合實例 自動生成放空閥綜合實例
新建Branch New Bran
連接Branch Head Conn PH to ID@
流向For 設置自動連接
Choose AutoConnect On
第一個螺紋短節New Ftub choose All
螺紋放空閥
New Valv choose All
第二個螺紋短節
New Ftub choose All
返回
Branch Bran Branch
收尾
Conn PT to Last mem