你讲的太好了,可是我很笨,不能举一反三,我现在用意大利的FIDIA系统的机床,在用POST时我只修改了一个后处理程序,编出来的程序需要修改,我想请问怎样修改它,使编出来的程序不用修改能直接使用。 主要修改的地方是F值使它不带小数点。还有怎样加上您上述的注解? 还有就是自动样使钻孔程序也编制正确,我的钻孔代码是:
G82 E X Y Z R P 普通钻孔
G83 E L X Y Z R P 琢孔钻
G84 E L X Y Z R P 玫丝
谢谢!
以下是我的后处理程序, 请多指教。 email: persistcr@sohu.com
# Post Name : FIDIA
# Product : MILL
# Machine Name : DIALOG
# Control Name : 11
# Description : DIALOG 11
# Associated Post : NONE
# Mill/Turn : NO
# 4-axis/Axis subs. : NO
# 5-axis : NO
# Subprograms : NO
# Executable : MP 9.0
#
# WARNING: THIS POST IS GENERIC AND IS INTENDED FOR MODIFICATION TO
# THE MACHINE TOOL REQUIREMENTS AND PERSONAL PREFERENCE.
#
# ---------------
#| REVISION LOG |
# ------------------------------------------------------------------------
# Programmers Note:
# CNC 01/12/01 - Initial post update for V8.1, grt
# CNC 01/09/02 - Initial post update for V9.0, rjm
#
# ---------------
#| FEATURES: |
# ------------------------------------------------------------------------
# MP Post processor customization file for the Dialog 11
#
# Canned text:
# Entering cantext on a contour point from within Mastercam allows the
# following functions to enable/disable.
# Cantext value:
# 1 = Stop = output the "M00" stop code
# 2 = Ostop = output the "M01" optional stop code
#
# --------------------------------------------------------------------------
# Format Statements - i=incr, n=nonmodal, l=leave ldg, t=leave trlg, d=delta
# --------------------------------------------------------------------------
fs 1 1.4
fs 2 1.3ld
fs 3 4 0
fs 4 2 0ln
fs 5 3.1
fs 6 4 0ln
# --------------------------------------------------------------------------
# Format Assignments
# --------------------------------------------------------------------------
fmt X 1 x # X axis position
fmt Y 1 y # Y axis position
fmt Z 1 z # Z axis position
fmt I 2 i # Arc center in X axis
fmt J 2 j # Arc center in Y axis
fmt K 2 k # Arc center in Z axis
fmt N 6 n # Sequence number
fmt T 4 t # Tool Number
fmt 4 tloffno # Tool diameter offset number
fmt 4 tlngno # Tool length offset number
fmt F 5 fr # Feedrate
fmt 5 plane # Modal plane code selector
fmt M 3 cc # Cutter Comp.
fmt S 3 ss # Spindle Speed
fmt 6 wcs # make Work Coord. string 'sgwcs' non-modal
fmt 6 drillcyc # make string 'sgdrlcyc' non-modal
fmt M 4 ssrange # Spindle Speed Range (mi2 - M42 = hi, M43 = low)
fmt M 4 sscode # Spindle Speed Code (M59 - M77 from tbl 1)
fmt 3 gcode # Format linear G-code selector for modality only
fmt Z 1 depth
fmt R 1 refht
fmt Q 1 dwell
fmt Z 1 initht
fmt Q 1 peckincr1
fmt 4 dirchg
fmt 4 coolant # Format coolant M-code selector for modality only
fmt F 5 frplunge
fmt 3 ccomp # Modal format for ccomp
fmt M 4 cantext
# --------------------------------------------------------------------------
# Formulas - Use ':' instead of '=' to initialize variables
# --------------------------------------------------------------------------
plane : 0 # Initialize plane code to suppress first G17
spaces : 1 # Number of spaces to add between fields
seqmax : 10000 # Max. sequence number
omitseq : no # Omit sequence numbers?
frrapid : 300 # Rapid feedrate? 300.0
frmax : 300 # Maximum feedrate? 300.0
ssmax : 3000 # Maximum spindle speed? 3000
breakarcs : 1 # Break arcs, 0 = no, 1 = quadrants, 2 = 180deg. max arcs
arctype : 1 # Arc center 1=abs, 2=inc, 3=st-cen, 4=unsigned inc.
do_full_arc : 0 # Allow full circle output? 0=no, 1=yes
helix_arc : 0 # Support helix arc output, 0=no, 1=all planes, 2=XY plane only
arccheck : 1 # Check for small arcs, convert to linear
ltol : .002 # Length tolerance for arccheck
ncldr : 20 # Number of leader characters
ldrcode : 65 # Leader character dec. equiv.
tooltable : no # Build next tool table
g : -1 # g code initialize
# Global Formulas
wcs = mi1 # Work coord. system
ssrange = mi2
sscode = frange(1,ss) # Spindle speed code
# --------------------------------------------------------------------------
# USE CANNED CYCLES?
# --------------------------------------------------------------------------
usecandrill : yes # Use canned cycle for drill?
usecanpeck : yes # Use canned cycle for Peck?
usecanchip : yes # Use canned cycle for Chip Break?
usecantap : yes # Use canned cycle for Tap?
usecanbore1 : yes # Use canned cycle for Bore1?
usecanbore2 : yes # Use canned cycle for Bore2?
usecanmisc1 : no # Use canned cycle for Misc1?
usecanmisc2 : no # Use canned cycle for Misc2?
# --------------------------------------------------------------------------
# DEBUG - Switches for debugging purposes
# --------------------------------------------------------------------------
fastmode : yes # Enable Quick Post Processing, (set to no for debug)
bug1 : 1 # 0=No display, 1=Generic list box, 2=Editor
bug2 : 0 # Add postline label to each line at column 'bug2'
bug3 : 0 # Add whatline to each line? yes/no
bug4 : 0 # Add -.nci line no. to each line? yes/no
whatno : yes # Ignore whatline branches to plin1 etc.?
get_1004 : 1 #Find gcode 1004 with getnextop?
rpd_typ_v7 : 1 #Use Version 7 style contour flags?
strtool_v7 : 2 # Use Version 7 toolname?
cant_tlchng : 1 #Ignore cantext entry on move with tlchng_aft
# --------------------------------------------------------------------------
# Lookup table definitions - for Math Functions FLOOK and FRANGE
# --------------------------------------------------------------------------
flktbl 1 12 # Lookup table no. No. of entry pairs
58 63 # Code 1 (output) Match 1
59 90 # Code 2 Match 2
63 112 # . .
64 180 # . .
65 224 # . .
66 355
67 450
73 710
74 900
75 1400
76 1800
77 2800
# --------------------------------------------------------------------------
# Strings - String labels must start with 's' - they are not pre-assigned
# --------------------------------------------------------------------------
sg00 G00 # Linear movement at rapid feedrate G code
sg01 G01 # Linear movement at feedrate G code
sg02 G02 # Circular interpolation CW G code
sg03 G03 # Circular interpolation CCW G code
sgcode # Target string for linear/circular motion G code
fstrsel sg00 gcode sgcode # Select motion G code string
# --------------------------------------------------------------------------
sm09 M09 # Coolant off no coolant
sm08f M08 # Coolant on flood
sm08m M09 # Coolant on mist (off if not supported)
sm08t M09 # Coolant on tool (off if not supported)
smcool # Coolant code target string
fstrsel sm09 coolant smcool # coolant = 0 - coolant off
# coolant = 1, 2, 3 - coolant on
# --------------------------------------------------------------------------
sm04 M04 # Spindle reverse - no coolant
sm05 M05 # Spindle off - no coolant
sm03 M03 # Spindle forward - no coolant
sm04f M04 # Spindle reverse - flood
sm05f M05 # Spindle off - flood
sm03f M03 # Spindle forward - flood
sm04m M04 # Spindle reverse - mist
sm05m M05 # Spindle off - mist
sm03m M03 # Spindle forward - mist
sm04t M04 # Spindle reverse - tool
sm05t M05 # Spindle off - tool
sm03t M03 # Spindle forward - tool
spdlon # Target Spindle-on M-string
spdlsel = fsg2(coolant) * 3 + fsg3(ss) #Spindle on selector based on coolant
# 0 = off, 1 = flood, 2 = mist,
# 3 = thru tool
fstrsel sm04 spdlsel spdlon
# --------------------------------------------------------------------------
scc0 # cutter compensation state not changed
sg40 G40 # cancel cutter compensation
sg41 G41 # cutter compensation left
sg42 G42 # cutter compensation right
sg140 G40 # last linear move --> cancel cutter comp
sccomp
fstrsel scc0 ccomp sccomp
# --------------------------------------------------------------------------
sg17 G17 # XY plane code
sg19 G19 # XZ plane code
sg18 G18 # YZ plane code
sgplane # Workplane G code
fstrsel sg17 plane sgplane # Select work plane G code
# --------------------------------------------------------------------------
sg53 G53 # Work coordinate system G code #1
sg54 G54 # Work coordinate system G code #2
sg55 G55 # Work coordinate system G code #3
sg56 G56 # Work coordinate system G code #4
sg57 G57 # Work coordinate system G code #5
sg58 G58 # Work coordinate system G code #6
sg59 G59 # Work coordinate system G code #7
sgwcs # Work coordinate system G code
fstrsel sg53 wcs sgwcs
# --------------------------------------------------------------------------
sg81 G81G99 # drill - no dwell
sg82 G82G99 # drill - with dwell
sg83 G83G99 # peck drill - no dwell
sg83d G83G99 # peck drill - with dwell
sg73 G73G99 # chip break - no dwell
sg73d G73G99 # chip break - with dwell
sg84 G84G99 # tap
sg84d G84G99 # tap # must be here for selector to work
sg85 G85G99 # bore #1 - no dwell
sg89 G89G99 # bore #1 - with dwell
sg86 G86G99 # bore #2 - no dwell
sg86d G86G99 # bore #2 - with dwell
sgm1 GGGG99 # misc #1 - no dwell
sgm1d GGGG99 # misc #1 - with dwell
sgm2 GGGG99 # misc #2 - no dwell
sgm2d GGGG99 # misc #2 - with dwell
sgdrill # Target drill cycle G code
drlgsel = drillcyc*2 + fsg2(dwell) # 16 possible combinations:
# drillcyc = 0..7
# dwell = 0 or non-zero (2 states)
fstrsel sg81 drlgsel sgdrill # Drill cycle G string select
# --------------------------------------------------------------------------
sgaccel G8 # Axis acceleration code
sgdecel G9 # Axis deceleration code
sgacc
fstrsel sgaccel dirchg sgacc # Select accel/decel code with dir. chg. flag
# --------------------------------------------------------------------------
#Cantext string definitions (spaces must be padded here)
sm00 "M00"
sm01 "M01"
strtextno
strcantext
strm M
sblank
# --------------------------------------------------------------------------
# USER DEFINED POSTLINES
# --------------------------------------------------------------------------
ptllncomp # Tool length compensation
"G43", *tlngno
pcool # Coolant on/off - init. off (coolant = 0)
if coolant <> prv_coolant, n, smcool
psg00 # Output "G00" via String Select Function to maintain modality
gcode = 0
*sgcode
pfr # Don't output neg. feedrate
if fr > 0, fr
# --------------------------------------------------------------------------
# PREDEFINED POSTLINES
# --------------------------------------------------------------------------
pheader # File header
# "%"
psof0 # Start of file for tool zero
pcan
# pcan1, n, sg00, *xh, *yh, *zh, spdlon, strcantext
pcan1, n,"M03"
pcan2
psof # Start of file for non-zero tool number
pcan
# pcan1, n, sg00, *xh, *yh, *zh, t, spdlon, strcantext
pcan1,n,"M03"
pcan2
ptlchg0 # Null tool change
ptlchg # Tool change
n, sg00, zh
pcan
pcan1, n, sg00,xh ,yh, strcantext
pcan2
n, t
peof0 # End of file for tool zero
# n, sg00, zh,
n, "M30"
# "%"
peof # End of file for non-zero tool
# n, sg00, zh,
n, "M30"
# "%"
prapid # Linear line movement - at rapid feedrate
pcan
pcan1, n, sccomp, *sgcode, x, y, z, pfr, strcantext
pcan2
pzrapid # Linear movement in Z axis only - at rapid feedrate
pcan
pcan1, n, sccomp, *sgcode, z, pfr, strcantext
pcan2
plin # Linear line movement - at feedrate
pcan
pcan1, n, sccomp, *sgcode, x, y, z, pfr, strcantext
pcan2
pz # Linear movement in Z axis only - at feedrate
pcan
pcan1, n, ptllncomp, *sgcode, z, pfr, strcantext
pcan2
pijk # Force Plane Change "I, J, K" Values
if plane = 0, *i, *j, k
if plane = 1, i, *j, *k
if plane = 2, *i, j, *k
pcir # Circular interpolation
pcan
pcan1, n, sgplane, sccomp, *sgcode, x, y, z, pijk, pfr, strcantext
pcan2
pdrill # Canned Drill Cycle
n, psg00, *x, *y
n, *tlgth, *initht
n, sgdrill, *x, *y, *depth, *refht, *dwell, *frplunge
ppeck # Canned Peck Drill Cycle
n, psg00, *x, *y
n, *tlgth, *initht
n, sgdrill, *x, *y, *z, *refht, *peckincr1, *dwell, *frplunge
pchpbrk # Canned Chip Break Cycle
n, psg00, *x, *y
n, *tlgth, *initht
n, sgdrill, *x, *y, *z, *refht, *peckincr1, *dwell, *frplunge
ptap # Canned Tap Cycle
n, psg00, *x, *y
n, *tlgth, *initht
n, sgdrill, *x, *y, *z, *refht, *dwell, *frplunge
pbore1 # Canned Bore #1 Cycle
ptap
pbore2 # Canned Bore #2 Cycle
ptap
pmisc1 # Canned Misc #1 Cycle
pmisc2 # Canned Misc #2 Cycle
pdrill_2 # Canned Drill Cycle
n, x, y
ppeck_2 # Canned Peck Drill Cycle
pdrill_2
pchpbrk_2 # Canned Chip Break Cycle
pdrill_2
ptap_2 # Canned Tap Cycle
pdrill_2
pbore1_2 # Canned Bore #1 Cycle
pdrill_2
pbore2_2 # Canned Bore #2 Cycle
pdrill_2
pmisc1_2 # Canned Misc #1 Cycle
pdrill_2
pmisc2_2 # Canned Misc #2 Cycle
pdrill_2
pcanceldc # Cancel canned drill cycle
n, "G80"
pcancelcc # Cancel cutter comp.
#n, "G40"
pwrtt # Tool table line format
# --------------------------------------------------------------------------
# Canned Text
# --------------------------------------------------------------------------
pcan #Canned text - before output call
strcantext = sblank
if cant_no > 0,
[
if cant_pos1 = 0, pcant_1
if cant_pos2 = 0, pcant_2
if cant_pos3 = 0, pcant_3
if cant_pos4 = 0, pcant_4
if cant_pos5 = 0, pcant_5
if cant_pos6 = 0, pcant_6
if cant_pos7 = 0, pcant_7
if cant_pos8 = 0, pcant_8
if cant_pos9 = 0, pcant_9
if cant_pos10 = 0, pcant_10
n, strcantext, e
strcantext = sblank
]
pcan1 #Canned text - with move
strcantext = sblank
if cant_no > 0,
[
if cant_pos1 = 1, pcant_1
if cant_pos2 = 1, pcant_2
if cant_pos3 = 1, pcant_3
if cant_pos4 = 1, pcant_4
if cant_pos5 = 1, pcant_5
if cant_pos6 = 1, pcant_6
if cant_pos7 = 1, pcant_7
if cant_pos8 = 1, pcant_8
if cant_pos9 = 1, pcant_9
if cant_pos10 = 1, pcant_10
]
if cstop, strcantext = strcantext + sm00
if cgstop, strcantext = strcantext + sm01
#Output of strcantext occurs at the end of the output line
pcan2 #Canned text - after output call
strcantext = sblank
if cant_no > 0,
[
if cant_pos1 = 2, pcant_1
if cant_pos2 = 2, pcant_2
if cant_pos3 = 2, pcant_3
if cant_pos4 = 2, pcant_4
if cant_pos5 = 2, pcant_5
if cant_pos6 = 2, pcant_6
if cant_pos7 = 2, pcant_7
if cant_pos8 = 2, pcant_8
if cant_pos9 = 2, pcant_9
if cant_pos10 = 2, pcant_10
n, strcantext, e
strcantext = sblank
]
pcant_1 #Canned text - output call
cantext = cant_val1
pcant_out
pcant_2 #Canned text - output call
cantext = cant_val2
pcant_out
pcant_3 #Canned text - output call
cantext = cant_val3
pcant_out
pcant_4 #Canned text - output call
cantext = cant_val4
pcant_out
pcant_5 #Canned text - output call
cantext = cant_val5
pcant_out
pcant_6 #Canned text - output call
cantext = cant_val6
pcant_out
pcant_7 #Canned text - output call
cantext = cant_val7
pcant_out
pcant_8 #Canned text - output call
cantext = cant_val8
pcant_out
pcant_9 #Canned text - output call
cantext = cant_val9
pcant_out
pcant_10 #Canned text - output call
cantext = cant_val10
pcant_out
pcant_out #Canned text - build the string for output
#Assign string select type outputs
#Build the cantext string
if cantext = 1, strcantext = strcantext + sm00
if cantext = 2, strcantext = strcantext + sm01
if cantext > 2,
[
strtextno = no2str(cantext)
strcantext = strcantext + strm + strtextno
]
# --------------------------------------------------------------------------
# Numbered questions for Mastercam Mill
# --------------------------------------------------------------------------
38. Rapid feedrate? 300.0
1538. Rapid feedrate (metric)? 10000.0
80. Communications port number for receive and transmit (1 or 2) ? 1
81. Baud rate (110, 150, 300, 600, 1200, 2400, 4800, 9600)? 1200
82. Parity (E/O/N)? E
83. Data bits (7 or 8)? 7
84. Stop bits (1 or 2)? 2
85. Strip line feeds? N
86. Delay after end of line (seconds)? 0.0
87. Ascii, Eia, or Binary (A/E/? A
88. Echo keyboard to screen in terminal emulation? n
89. Strip carriage returns? N
90. Drive and subdirectory for NC files?
91. Name of executable post processor? MP
92. Name of reverse post processor?
93. Reverse post PST file name?
103. Maximum spindle speed? 5000
107. Average time for tool change (seconds)? 2.0
161. Enable Home Position button? y
162. Enable Reference Point button? n
163. Enable Misc. Values button? y
164. Enable Rotary Axis button? n
165. Enable Tool Plane button? n
166. Enable Construction Plane button? n
167. Enable Tool Display button? y
168. Check tplane during automatic work origin creation? n
# --------------------------------------------------------------------------
# Default Miscellaneous Real Values
# --------------------------------------------------------------------------
201. Default Index start angle? 0.0
202. Default Index incremental angle? 0.0
203. Default miscellaneous real variable 3 (mr3)? 0.0
204. Default miscellaneous real variable 4 (mr4)? 0.0
205. Default miscellaneous real variable 5 (mr5)? 0.0
206. Default miscellaneous real variable 6 (mr6)? 0.0
207. Default miscellaneous real variable 7 (mr7)? 0.0
208. Default miscellaneous real variable 8 (mr8)? 0.0
209. Default miscellaneous real variable 9 (mr9)? 0.0
210. Default miscellaneous real variable 10 (mr10)? 0.0
# --------------------------------------------------------------------------
# Default Miscellaneous Real Values (METRIC)
# --------------------------------------------------------------------------
1601. Default miscellaneous real variable 1 (mr1) (metric)? 0.0
1602. Default miscellaneous real variable 2 (mr2) (metric)? 0.0
1603. Default miscellaneous real variable 3 (mr3) (metric)? 0.0
1604. Default miscellaneous real variable 4 (mr4) (metric)? 0.0
1605. Default miscellaneous real variable 5 (mr5) (metric)? 0.0
1606. Default miscellaneous real variable 6 (mr6) (metric)? 0.0
1607. Default miscellaneous real variable 7 (mr7) (metric)? 0.0
1608. Default miscellaneous real variable 8 (mr8) (metric)? 0.0
1609. Default miscellaneous real variable 9 (mr9) (metric)? 0.0
1610. Default miscellaneous real variable 10 (mr10) (metric)? 0.0
# --------------------------------------------------------------------------
# Enable/Disable Miscellaneous Real Variable switches
# --------------------------------------------------------------------------
1611. Enable miscellaneous real variable 1? y
1612. Enable miscellaneous real variable 2? y
1613. Enable miscellaneous real variable 3? y
1614. Enable miscellaneous real variable 4? y
1615. Enable miscellaneous real variable 5? y
1616. Enable miscellaneous real variable 6? y
1617. Enable miscellaneous real variable 7? y
1618. Enable miscellaneous real variable 8? y
1619. Enable miscellaneous real variable 9? y
1620. Enable miscellaneous real variable 10? y
# --------------------------------------------------------------------------
# Default Miscellaneous Integer Values
# --------------------------------------------------------------------------
301. Default Work Coordinate System (0=G53,1=G54 to 6=G59)? 0
302. Default Use automatic indexing (1=Yes, 0=No)? 0
303. Default number of index repetitions? 1
304. Default miscellaneous integer variable 4 (mi4)? 0
305. Default miscellaneous integer variable 5 (mi5)? 0
306. Default check for axis change of direction (0=No, 1=Yes)? 0
307. Default miscellaneous integer variable 7 (mi7)? 0
308. Default miscellaneous integer variable 8 (mi8)? 0
309. Default miscellaneous integer variable 9 (mi9)? 0
310. Default miscellaneous integer variable 10 (mi10)? 0
# --------------------------------------------------------------------------
# Enable/Disable Miscellaneous Integer Variable switches
# --------------------------------------------------------------------------
1621. Enable miscellaneous integer variable 1? y
1622. Enable miscellaneous integer variable 2? y
1623. Enable miscellaneous integer variable 3? y
1624. Enable miscellaneous integer variable 4? y
1625. Enable miscellaneous integer variable 5? y
1626. Enable miscellaneous integer variable 6? y
1627. Enable miscellaneous integer variable 7? y
1628. Enable miscellaneous integer variable 8? y
1629. Enable miscellaneous integer variable 9? y
1630. Enable miscellaneous integer variable 10? y
# --------------------------------------------------------------------------
# Configuration File association parameters (default is "y")
# --------------------------------------------------------------------------
#400. Name of associated cfg file?
401. Read SYSTEM COLORS section? y
402. Read ALLOCATIONS section? y
403. Read TOLERANCES section? y
404. Read DATA PATHS section? y
405. Read COMMUNICATIONS section? y
406. Read DRAFT SETTINGS section? y
407. Read MISCELLANEOUS section? y
408. Read NC SETTINGS section? y
409. Read DIALOG SCRIPTS section? y
410. Read DESIGN SETTINGS section? y
411. Read PLOTTER SETTINGS section? y
412. Read ALT-KEY ASSIGNMENTS section? y
413. Read CAD section? y
414. Read START/EXIT section? y
415. Read SCREEN section? y
416. Read FILE NAMES section? y
1500. Chook to execute from 'Misc. values' button?
1501. Insert parameter information in the ascii NCI? n
1502. Write operation information to binary file (.ops)? n
1520. Display a warning when cutter compensation in control simulation finds an error? n
# Do NOT manually change the answer for Q.1999 !
1999. Product major version number that post supports? 9
|