Перейти к публикации

Постпроцессор SolidCAM для 4-х осевой обработки


megakaban

Рекомендованные сообщения

Всем привет!

Народ, выручайте :sad:

Есть SolidCAM2008, постпроцессор FANUK 4-x, пара самосборных постпроц., станок под MACH3.

Деталь при "визуализации на станке" вращается по оси А, инструмент описывает положенные пути, в общем всё как надо. А вот при создании УП получается вот такая штука:

%

O5000 (FANUK_4A_SELECTED_FACES_T1.TAP)

( MCV-OP ) (07-04-2010)

(SUBROUTINES: O2 .. O0)

G90 G17

G80 G49 G40

G54

G91 G28 Z0

G90

M01

N1 M6 T1

(TOOL -1- MILL DIA 6.0 R0. MM )

G90 G00 G40 G54

G43 H1 D31 G0 X49.5 Y-0.001 Z50. S3000 M3

M8

(--------------------------)

(5X-4A-SELECTED-FACES-T1 - )

(--------------------------)

M30

%

Либо подобный... В постпроц. 4-я ось А вроде включена... Подскажите, в чём причина? :wallbash:

Ссылка на сообщение
Поделиться на других сайтах


Возможно пост на 4х, но странно что нет никакой движухи по оси "А" до выхода на клиренс Z50.

На визуализацию влияет не пост а MAC-файл. Возможно там все в порядке. А лучше конечно выложить весь пост.

P.S Станочек случайно не Leadwell?

Ссылка на сообщение
Поделиться на других сайтах

Станочек Syil ))

MAC и gpp файлы выглядят вот так:

@pre_processor

;Internal parms

machine_type = MILLING

post_processor = fanuc

doc_processor = 1000.0000

gpp_file_ext = NC

mac_holder = BT35

tool_table_name = Fanuc 4ax

max_g_name_length = 0

max_tool_numbers = 1000

default_lang = ENGLISH

;Machine Initialize

machine_plane = XY

z_with_xy = Y

mac_axes = XYZC

num_axes = 4

num_simult_axes = 4

abs_coord = N

rotate = Y

mirror = Y

variables = Y

loops = Y

_4th_axes_around = X

first_rotation_angle = Z

_5th_axes_around =

;Program numbers

prog_num_min = 1

prog_num_max = 8999

prog_num_dflt = 5000

get_prog_num = Y

proc_num_min = 1000

proc_num_max = 8999

proc_num_dflt = 3333

get_proc_num = Y

;Procedures control

full_gcode = N

gen_procs = D

drill_proc = y

turn_proc = N

thread_proc = N

gen_internal_proc = y

turn_common_proc = N

gen_1_line_proc = Y

optimize_jobs_loop = Y

G_in_2_cols = Y

seq_sub_number = N

loop_exist = N

same_sub_numbers = N

init_var_after_split = Y

;Home

num_homes = 6

dflt_home = 1

get_job_home = N

abs_zero_chng = Y

home_data_at_start = N

;Positioning

dflt_start = 0.0000 0.0000 200.0000, 0.0000 0.0000 7.8740

dflt_end = 0.0000 0.0000 200.0000, 0.0000 0.0000 7.8740

set_xy_chng = N N

set_z_chng = Y N

dflt_tool_chng = 0.0000 0.0000 200.0000, 0.0000 0.0000 7.8740

;Compensation

comp_exist = Y N

comp_arc_arc = Y

comp_arc_line = Y

comp_line_line = Y

next_angle = N

comp_x_start = N

comp_by_arcs = N

chng_tool_table = N

look_forward = 2

delta_for_TOOL_H = 0

;Arc definitions

arc_exist = Y

arc_3d = Y

arc_quadrants = N

arc_gt_180 = Y

arc_max_chord = 30.0000, 1.1811

arc_max_angle = 10.0000

arc_max_radius = 2000.0000, 78.7402

arc_min_length = 0.0000, 0.0000

;Epsilon values

eps_angle = 0.0020, 0.0001

eps_line = 0.0010, 0.0000

zero_value = 0.0010, 0.0000

movement_precision = 0.0010, 0.0000

min_delt_arc_rad = 0.0100, 0.0004

safety_dist = 5.0000, 0.1968

;Feed-Spin

rapid_feed = 5000.0000, 196.8503

max_spin = 10000.0000

max_feed = 6000.0000, 236.2205

spin_direction = CW

;Timing

time_factor = 1.0000

block_time = 0.2000

change_tool_time = 15.0000

;Part options

options = COLENT INTEGER

;Part options_chi

;Part options_dan

;Part options_eng

;Part options_fre

;Part options_ger

;Part options_heb

;Part options_ita

;Part options_jap

;Part options_kor

;Part options_por

;Part options_rus

;Part options_spa

;Job options

job_opt_type = OPT1 Y DELY FEAD

job_opt_type = D_Num N D_Number

;Job options_chi

;Job options_dan

;Job options_eng

;Job options_fre

;Job options_ger

;Job options_heb

;Job options_ita

;Job options_jap

;Job options_kor

;Job options_por

;Job options_rus

;Job options_spa

;Drill cycles

drill_type = Drilling Drilling Y

drill_type = F_Drill F_Drill Y Delay

drill_type = Peck Peck Y Delay

drill_type = Tapping Tapping Y

drill_type = Boring Boring Y Delay

drill_type = R_Boring R_Boring Y Delay

drill_type = F_Boring F_Boring Y Delay

;Drill cycles_chi

;Drill cycles_dan

;Drill cycles_eng

;Drill cycles_fre

;Drill cycles_ger

;Drill cycles_heb

;Drill cycles_ita

;Drill cycles_jap

;Drill cycles_kor

;Drill cycles_por

;Drill cycles_rus

;Drill cycles_spa

;Turning cycles

;Turn cycles_chi

;Turn cycles_dan

;Turn cycles_eng

;Turn cycles_fre

;Turn cycles_ger

;Turn cycles_heb

;Turn cycles_ita

;Turn cycles_jap

;Turn cycles_kor

;Turn cycles_por

;Turn cycles_rus

;Turn cycles_spa

;Threading cycles

;Threading cycles_chi

;Threading cycles_dan

;Threading cycles_eng

;Threading cycles_fre

;Threading cycles_ger

;Threading cycles_heb

;Threading cycles_ita

;Threading cycles_jap

;Threading cycles_kor

;Threading cycles_por

;Threading cycles_rus

;Threading cycles_spa

;Grooving cycles

;Grooving cycles_chi

;Grooving cycles_dan

;Grooving cycles_eng

;Grooving cycles_fre

;Grooving cycles_ger

;Grooving cycles_heb

;Grooving cycles_ita

;Grooving cycles_jap

;Grooving cycles_kor

;Grooving cycles_por

;Grooving cycles_rus

;Grooving cycles_spa

;Wire Cut cycles

;Wire Cut cycles_chi

;Wire Cut cycles_dan

;Wire Cut cycles_eng

;Wire Cut cycles_fre

;Wire Cut cycles_ger

;Wire Cut cycles_heb

;Wire Cut cycles_ita

;Wire Cut cycles_jap

;Wire Cut cycles_kor

;Wire Cut cycles_por

;Wire Cut cycles_rus

;Wire Cut cycles_spa

;Turning definitions

turning_cycle = Y N

groove_cycle = Y N

combined_cycles = N

optimize_cycle = N

finish_retreat = N

semi_finish_retreat = N

fanuc_cycle = Y

;Fourth axis

indexial_4th_axis = Y

indexial_increment = 0.0000, 0.0000

init_cpos = Y

polar_4x = Y

cartez_4x = Y

set_dir = Y

fourth_axis_letter = C

;Sim Five axis

kinematic_type = HEAD_HEAD

spindle_direction = 0.0000 0.0000 1.0000

rotate_axis_dir1 = 0.0000 0.0000 -1.0000

rotate_axis_dir2 = 0.0000 -1.0000 0.0000

rot_axis_base_pnt1 = 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000

rot_axis_base_pnt2 = 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000

abs_machine_coord = N

pivot_length = 0.0000, 0.0000

first_rot_axis_name = C

second_rot_axis_name = B

machine_simulation = HeadHead

rot_axis_min_limit0 = -100000.0000

rot_axis_min_limit1 = -100000.0000

rot_axis_max_limit0 = 100000.0000

rot_axis_max_limit1 = 100000.0000

;Wire Cut parameters

lower_guide_level = 0.0000, 0.0000

group_def = N

offset_group_name =

wc_pos_proc = Y

u_max = 100.0000, 3.9370

v_max = 100.0000, 3.9370

xy_abs = Y

uv_abs = N

agie = N

;GCTOOL

int_is_illegal = N

devision_factor = 1000.0000

gc_procs_file_name = NO_FILE

change_tool_at_ref = Y

endp

______________________________________________________________________

______________________________________________________________________

;

; FANUC0M

; -----

;

@init_post

global string tool_diameter_f spin_f

global numeric use_feed

; Non GPPL variables

num_user_procs = 1

;-------------------------------------------------

global integer save_part_home_number

GLOBAL LOGICAL main

global numeric xold yold zold d_step

;------------------------------------------------------

line_labels = FALSE ; Jump to N...

; GPPL variables

pre_processor = 'HAAS'

numeric_def_f = '5.3'

integer_def_f = '5.0(p)'

gcode_f = '2.0(p)'

mcode_f = '2.0(p)'

xpos_f = '5.3'

ypos_f = '5.3'

zpos_f = '5.3'

feed_f = '4.5'

tool_diameter_f = '5.3/1'

blknum_f = '5.0(p)'

blknum_gen = FALSE

blknum_exist = TRUE

blknum = 5

blknum_delta = 5

blknum_max = 32000

trace "all":5

main = TRUE

endp

;-------------------

@start_of_file

; before tools definition

{'%'}

{nl, 'O'program_number, ' (', g_file_name, ')'}

if rotate_used then

gcode = 69

{nb, 'G'gcode}

endif

{nb, '(SUBROUTINES: O'first_proc_number, ' .. O'last_proc_number, ')'}

endp

;-------------------

@start_program

; after tools definition

; skipline = false

{nb,'G80 G40 '}

{nb, 'G28 G91 Z0 '}

{nb, 'G90 '}

; call @home_number

skipline = true

endp

;-------------------

@end_program

{nb, 'M9'}

{nb, 'M5'}

{nb, 'G91 G28 Z0'}

{nb, 'G28 Y0'}

{nb, 'G90 X0'}

{nb, 'G90 A0'}

{nb, 'M30'}

main = FALSE

endp

;-------------------

@end_of_file

label = first_user_proc

CALL @home_data1

{nl, '%%'}

endp

;-------------------

@relative_mode

gcode = 91

{nb, 'G'gcode, ' '}

skipline = FALSE

endp

;-------------------

@absolute_mode

gcode = 90

{nb, 'G'gcode, ' '}

skipline = FALSE

endp

;-------------------

@machine_plane

if machine_plane eq XY

gcode = 17

endif

if machine_plane eq YZ

gcode = 18

endif

if machine_plane eq ZX

gcode = 19

endif

{nb, 'G'gcode}

endp

;-------------------

@call_proc

if x_4_home <> 0

if main eq TRUE

if part_home_number ne save_part_home_number

{nb, 'G65P8090 X'shift_x ' Y'shift_y ' Z'shift_z ' B'angle_4x_around_x:xpos_f ' H'tool_number:xpos_f ' A'home_number:xpos_f ' C0 D0 E0 ( C=TIKUN_X D=TIKUN_Y E=TIKUN_Z HOME ' part_home_number ' B = 'angle_4x_around_x ' )' }

save_part_home_number = part_home_number

endif

endif

endif

if active(parm1) then

gcode = 65

{nb, 'G'gcode, ' P'label}

{' A'parm1, [' B'parm2], [' C'parm3]}

else

{nb, 'M98 P'label}

endif

if proc_count gt 1 then

{' L'proc_count}

endif

{[' ('message, ')']}

endp

;-------------------

@proc

; {nl,'%'}

{nl, 'O'label}

endp

;-------------------

@end_proc

{nb, 'M99'}

endp

;----------------

@loop

local integer var_num

var_num = loop_level + 20

{nb, '#', var_num, ' = 0'}

{nb, 'WHILE [#', var_num, ' LT ', loop_count, '] DO ', loop_level}

call @home_number

endp

;----------------

@end_loop

local integer var_num

var_num = loop_level + 20

{nb '#', var_num, ' = #', var_num, ' + 1'}

{nb 'END ', loop_level}

endp

;----------------

@def_tool

{nb, '(G10 L12 P', (tool_number), ' D'(tool_offset*2), ')'}

endp

;-------------------

@rapid_move

{nb}

gcode = 0

if change(gcode) then

{'G'gcode}

else

{' '}

endif

{[' X'xpos], [' Y'ypos], [' Z'zpos]}

endp

;-------------------

@line

{nb}

gcode = 1

if change(gcode) then

{'G'gcode}

else

{' '}

endif

{[' X'xpos], [' Y'ypos], [' Z'zpos]}

if use_feed eq 1

{' F'feed}

use_feed = 0

else

{[' F'feed]}

endif

endp

; -----------

@arc

{nb}

;-- arc plane --

if change(arc_plane) then

if arc_plane eq XY then

gcode = 17

endif

if arc_plane eq YZ then

gcode = 18

endif

if arc_plane eq ZX then

gcode = 19

endif

{'G'gcode, ' '}

endif

if arc_direction eq CCW then

gcode = 3

else ; CW

gcode = 2

endif

if change(gcode) then

{'G'gcode}

else

{' '}

endif

{[' X'xpos] [' Y'ypos] [' Z'zpos]}

if arc_size eq 360 then

if arc_plane eq XY then

{' I'xcenter_rel, ' J'ycenter_rel}

endif

if arc_plane eq YZ then

{' J'xcenter_rel, ' K'ycenter_rel}

endif

if arc_plane eq ZX then

{' K'xcenter_rel, ' I'ycenter_rel}

endif

else

if arc_size >= 180 then

radius = -radius

endif

{' R'radius}

endif

if use_feed eq 1

{' F'feed}

use_feed = 0

else

{[' F'feed]}

endif

endp

;-------------------

@compensation

if side eq COMP_LEFT then

gcode = 41

endif

if side eq COMP_RIGHT then

gcode = 42

endif

if side eq COMP_OFF then

gcode = 40

endif

if gcode eq 40

{nb, 'G'gcode, ' '}

else

{nb, 'G103'}

{nb, 'G'gcode, ' D'(tool_number),' '}

endif

skipline = FALSE

endp

;-------------------

@delay

gcode = 4

{nb 'G'gcode, ' P'delay_period:integer_def_f}

endp

;-------------------

@change_ref_point

; Given in absolute mode

gcode = 91

{nb, 'G'gcode}

gcode = 10

{' G'gcode ' L2 P'home_number ' X'xhome, ' Y'yhome, ' Z'zhome}

; {' G'gcode ' L2 P'home_number ' X'(-(xhome)), ' Y'(-(yhome)), ' Z'zhome}

{nb 'G90'}

endp

;-------------------

@home_number

gcode = 53 + home_number

{nb, 'G'gcode}

; if first_proc_number eq false

{nb, ' G0 A0.'}

; endif

endp

;-------------------

@rotate

; Not exist in FANUC 6M

if rotate_cancel then

gcode = 69

{nb, 'G'gcode}

else

gcode = 68

{nb, 'G'gcode, ' X0 Y0 G91 R'angle}

{nb, 'G90'}

endif

endp

;-------------------

@fourth_axis

gcode = 0

if prev_command ne '@call_proc'

{nb, 'G'gcode, ' A'angle}

endif

endp

;-------------------

@change_tool

local logical save_blknum_gen

if !first_tool

{nb, 'M5'}

{nb, 'M9'}

endif

{nb, '(*TOOL 'tool_number, ' - DIA 'tool_diameter, '*)'}

{nb, 'G91 G28 Z0'}

{nb, 'M01'}

{nb 'M06 T'tool_number,' ( 'tool_message,' )'}

{nb,'T'next_tool_number}

;--------------------------------------------------------------------------------

if x_4_home <> 0

; {nl}

{nb, 'G65P8090 X'shift_x ' Y'shift_y ' Z'shift_z ' B'angle_4x_around_x:xpos_f ' H'tool_number:xpos_f ' A'home_number:xpos_f ' C0 D0 E0 ( C=TIKUN_X D=TIKUN_Y E=TIKUN_Z HOME ' part_home_number ' B = 'angle_4x_around_x ' )' }

save_part_home_number = part_home_number

; {nl}

endif

;--------------------------------------------------------------------

{nb, 'G90 '}

; skipline = FALSE

xpos = xnext

ypos = ynext

cpos = cnext

xold = xnext

yold = ynext

zold = znext

change(zpos) = false

call @rapid_move

; skipline = true

gcode = 43

{nb, 'G'gcode, ' H'tool_number, ' Z'znext}

; skipline = FALSE

tool_direction = CCW

call @start_tool

; skipline = TRUE

{nb, 'M8'}

endp

;-------------------

@message

;--------------------------------------------------------------------------------

; if x_4_home <> 0

; if part_home_number ne save_part_home_number

; save_part_home_number = part_home_number

; endif

; endif

;----------------------------------------------------------------------------------

{nb, '(', message, ')'}

endp

;-------------------

@drill

if drill_type eq helicoil

call @helicoil

else

call @simple_drill

endif

endp

@simple_drill

call @rapid_move

gcode = 98

{nb, 'G'gcode, ' '}

if drill_type eq drilling then

gcode = 81

endif

if drill_type eq f_drill then

gcode = 82

endif

if drill_type eq peck then

gcode = 83

endif

if drill_type eq tapping then

gcode = 84

endif

if drill_type eq boring then

gcode = 85

endif

if drill_type eq r_boring then

gcode = 86

endif

if drill_type eq f_boring then

gcode = 89

endif

{'G'gcode, ' Z'drill_lower_z, ' R'drill_upper_z}

if drill_type eq peck then

{' Q'down_step}

endif

if drill_type eq f_drill or drill_type eq tapping then

{' P'delay:integer_def_f}

endif

if drill_type eq tapping then

{' F'(feed*spin)} ;*spin:integer_def_f}

else

{' F'feed}

endif

endp

@helicoil

local integer num_step i2 D_STEP_L

local numeric xpos1 xpos_out ypos_out s_step1 sem_fin1 inc_z I_cent_rel

local logical flag_in

local string comp_dir1

;{nb,'start thred'}

{nb,'D'tool_number}

;----- checking if or out -----------

if inn eq 1 and out eq 0 then

flag_in = true

endif

if out eq 1 and inn eq 0 then

flag_in = false

endif

;----- checking if or out -----------

d_step = drill_depth / abs(pitch)

if frac(d_step) > 0

D_STEP_L = d_step + 1

ELSE

D_STEP_L = d_step

endif

if pitch < 0

drill_upper_z = drill_lower_z + (D_STEP_L * abs(pitch))

endif

; {nb,'xpos = ' xpos ' tool_diameter = 'tool_diameter ' diameter = 'diameter}

;----- first moovement form in or out -------

if flag_in eq true

{nb,'G0'[' X'xpos],[' Y'ypos],' Z'drill_clearance_z}

else

{nb,'G0 X'(xpos+diameter/2+tool_diameter/2+2), ' Y'ypos, ' Z'drill_clearance_z}

endif

;----- first moovement from in or out -------

{nb,'G0 Z'drill_upper_z}

;---- avoid division by 0 --------

if s_step == 0

if sem_fin == 0

sem_fin1 = 1

s_step1 = 1

else

sem_fin1 = sem_fin

s_step1 = sem_fin1 / 2

endif

else

sem_fin1 = sem_fin

s_step1 = s_step

endif

;---- avoid division by 0 --------

;---- calculating the number of steps --------

if frac(abs(sem_fin1 / s_step1)) > 0

num_step = abs(sem_fin1 / s_step1 + 1)

else

num_step = abs(sem_fin1 / s_step1)

endif

;---- calculating the number of steps --------

while num_step >= 1

if pitch > 0

{nb,'G1 Z'drill_lower_z ' F'feed}

endif

; --- set the variables for in or out thred -----

if flag_in eq true

if num_step == 1

xpos1 = ((diameter/2) + xpos)

I_cent_rel = -(diameter/2)

else

xpos1 = ((diameter/2) + xpos - sem_fin1 + s_step1);

I_cent_rel = -((diameter/2) - sem_fin1 + s_step1)

endif

if pitch > 0

comp_dir1 = '41'

xpos_out = xpos

gcode = 3

else

comp_dir1 = '42'

xpos_out = xpos

gcode = 2

endif

else

if num_step == 1

xpos1 = ((diameter/2) + xpos)

I_cent_rel = -(diameter/2)

else

xpos1 = ((diameter/2) + xpos + sem_fin1 - s_step1);

I_cent_rel = -((diameter/2) - sem_fin1 + s_step1)

endif

if pitch > 0

comp_dir1 = '42'

xpos_out = (xpos+diameter/2+tool_diameter/2+2)

gcode = 3

else

comp_dir1 = '41'

xpos_out = (xpos+diameter/2+tool_diameter/2+2)

gcode = 2

endif

endif

; --- set the variables for in or out thred -----

{nb,'G1 G'comp_dir1' X'xpos1:xpos_f}

{' F'feed_rate}

; {nb,'G'gcode ' X'xpos1 }

i2 = 0

{nb,'G91'}

while i2 <= ABS(d_step)

{nb,' G'gcode ,' X0 Y0 Z'pitch}

{' I'I_cent_rel, ' J0'}

if i2 == 1

;{' F'feed_rate}

endif

i2 = i2 + 1

endw

{nb,'G90 G40 '}

{'G1 X'xpos_out:xpos_f,' Y'ypos}

s_step1 = s_step1 + s_step1

num_step = num_step-1

{nb,'G0 Z'drill_upper_z}

endw

{nb,'G0 Z'drill_clearance_z}

; {nb,'End thred'}

endp

;-------------------

@drill_point

if drill_type eq helicoil

;{nb,'***************'}

if !first_drill

call @rapid_move

call @helicoil

endif

else

if !first_drill

{nb, ' ', [' X'xpos], [' Y'ypos], [' Z'zpos]}

endif

endif

endp

;-------------------

@mirror

if mirror_type eq MIRROR_OFF then

{nb, 'G50.1 X0 Y0'}

else

{nb, 'G51.1 '}

if mirror_type eq MIRROR_X then

{'X1 Y0'}

endif

if mirror_type eq MIRROR_Y then

{'X0 Y1'}

endif

if mirror_type eq MIRROR_XY then

{'X1 Y1'}

endif

endif

endp

;-------------------

@end_drill

gcode = 80

{nb, 'G'gcode}

endp

;-------------------

@halt_program

{' M0'}

endp

;--------------------

@round_comp

; NOP

endp

;--------------------

@start_of_job

skipline = false

{' ( 'job_name,' )'}

skipline= true

; NOP

endp

;--------------------

@end_of_job

; NOP

endp

;--------------------

@assign_axis

; TBD

endp

; =======================

; USER DEFINED PROCEDURES

; =======================

@call_simple_proc

active(message) = FALSE

active(parm1) = FALSE

active(parm2) = FALSE

active(parm3) = FALSE

proc_count = 1

call @call_proc

endp

;-------------------

@start_tool

if tool_direction eq CW then

mcode = 4

else ; CCW

mcode = 3

endif

{ ' M'mcode, ' S'spin:integer_def_f}

endp

;-------------------

@m_feed_spin

use_feed = 1

endp

;-------------------

@stop_tool

{' M5'}

endp

@line_on

endp

@end_job_procs

endp

@line_4x

endp

@move_4x

endp

@drill4x_pnt

endp

@rotary_info

; if first_proc_number eq false

; {'G0 A0'}

; endif

endp

@chng_tool_cnext

endp

@init_cpos

endp

@move4x_dir

endp

@line4x_dir

endp

@move4x_polar

endp

@line4x_polar

endp

@arc4x_polar

endp

@move4x_cartesian

endp

@line4x_cartesian

endp

@arc4x_cartesian

endp

@drill4x_polar

endp

@drill4x_cartesian

endp

@call_prms

endp

@tool_path_info

endp

@loop_matrix_info

endp

@tmatrix

local numeric hx hy hz

local numeric cosx sinx cosy siny cosz sinz

local numeric dx dy dz

; dx1 = 0

; dy1 = 0

; dz1 = 0

dx = shift_x; + dx1

dy = shift_y; + dy1

dz = shift_z; + dz1

sinx = sin(rotate_angle_x)

cosx = cos(rotate_angle_x)

siny = sin(rotate_angle_y)

cosy = cos(rotate_angle_y)

sinz = sin(rotate_angle_z)

cosz = cos(rotate_angle_z)

hx = cosy*cosz*dx - sinz*cosy*dy + siny*dz

hy = (-sinx*siny*cosy + cosx*sinz)*dx + (sinx*siny*sinz + cosx*cosz)*dy - sinx*cosy*dz

hz = (cosx*cosz*siny + sinx*sinz)*dx + (-sinz*cosx*siny + sinx*cosz)*dy - cosx*cosy*dz

; {nb, 'OLD G54 : X=' DX1 ' Y= 'DY1 ' Z= ' DZ1}

; {nb,' rotate_angle_x = 'rotate_angle_x}

; {nb,' rotate_angle_y = 'rotate_angle_y}

; {nb,' rotate_angle_z = 'rotate_angle_z}

; {nb, 'DX =', Dx}

; {nb, 'Dy =', Dy}

; {nb, 'Dz =', Dz}

; {nb, 'NEW G54 : X=' HX ' Y= 'HY ' Z= ' (-HZ)}

endp

@home_data2

{nl, '%MM' (6000+part_home_number)}

{nl,'N' (6000+part_home_number)}

{nl,'N5 (X) E101=' shift_x ' (Y) E102='shift_y ' (Z) E103=' shift_z }

{' (A) E111=' (-rotate_angle_x) }

{' (B) E112=' (rotate_angle_y) }

{' © E113='(-rotate_angle_z)}

{nl,'N6 E180=0 E181=0 E182=0'}

{nl}

endp

@home_data1

if x_4_home <> 0

{nl}

{nl, 'O8090'}

{nb,'G103 P1'}

{nb,'#5321= 0'}

{nb,'#5322= 0'}

{nb,'#5323= 0'}

{nb,'#5321= [#[5201 +20*#1] + #24]'} ; g59 x

{nb,'#5322= [#[5202 +20*#1]+ #25]'} ; g59 y

{nb,'#5323= [#[5203 +20*#1] + #26]'} ; g59 z

{nb,'#5324= # [5204 +20*#1] '} ; g59 B

{nb,' #140= [#5321 - #5301]'} ; g59 x - g58 x

{nb,' #141= [#5322 - #5302]'} ; g59 y - g58 y

{nb,' #142= [#5323 - #5303]'} ; g59 z - g58 z

{nb,' #143 = [[#141*COS[#2]] - [#142*SIN[#2]]]'}

{nb,' #144 = [[#141*SIN[#2]] + [#142*COS[#2]]]'}

; {nb,'#145 = [#143 - #141]'} ;dy

; {nb,'#146 = [#144 - #142]'} ;dz

{nb,'#5321 = #5301 + #140 + #3'};g59xnew

{nb,'#5322 = #5302 + #143 + #7'};g59ynew

{nb,'#5323 = #5303 + #144 + #8'};g59znew

{nb, 'G28 G91 G0 Z0.'}

{nb, 'G90'}

{nb,'G59 '}

; {nb,' M22'}

{nb,' G90 G0 A-#2'}

; {nb,' M21'}

{nb,'G0 X0 Y0'}

{nb,' G0 G43 H#11 Z100.'}

; {nb,'G103'}

{nb,'G103 '}

{nb,'M99'}

{nl}

endif

endp

@home_data1a

local numeric a5321 a5322 a5323 a5324 ;g59

local numeric a5221 a5222 a5223 a5224 ;g54

local numeric a5301 a5302 a5303 a5304 ;g58

local numeric a140 ;g59x-g58x

local numeric a141 ;g59y-g58y

local numeric a142 ;g59z-g58z

local numeric a143 ;dy from g58

local numeric a144 ;dz from g58

local numeric a24 ;offset x

local numeric a25 ;offset y

local numeric a26 ;offset z

local numeric a2 ; angle b

local numeric a3 a7 a8 ; rejast x y z

a5221 = -200 ;x ;

a5222 = -150 ;y ;

a5223 = -300 ;z ;g54

a5224 = 0 ;0 ;

a24 = 0 ;dx t0 g59

a25 = 0 ;dy t0 g59

a26 = 0 ;dz t0 g59

a5301 = -200 ;x ;

a5302 = -150 ;y ;

a5303 = -350 ;z ;g58

a5304 = 30 ;0 ;

a2 = -90

a3 = 0

a7 = 0

a8 = 0

{nl}

{nl, 'O8090'}

a5321= (a5221 + a24); g59 x

{nb,'#5321= '(a5321)} ; g59 x

a5322= (a5222 + a25); g59 y

{nb,'#5322= '(a5322)} ; g59 y

a5323= (a5223 + a26) ; g59 z

{nb,'#5323= '(a5323)} ; g59 y

a5324= (a5224) ; g59 b

{nb,'#5324= '(a5324)} ; g59 b

{nb, 'G28 G91 G0 Z0.'}

{nb, 'G90'}

a140 = (a5321 - a5301) ; g59 x - g58 x

{nb,'#140= '(a140)} ; g59 x - g58 x

a141 = (a5322 - a5302) ; g59 y - g58 y

{nb,'#141= '(a141)} ; g59 y - g58 y

a142 = (a5323 - a5303) ; g59 z - g58 z

{nb,'#142= '(a142)} ; g59 z - g58 z

a143 =((a141*COS(a2)) - (a142*SIN(a2)))

{nb,'#143 = '(a143)}

a144 = ((a141*SIN(a2)) + (a142*COS(a2)))

{nb,'#144 = '(a144)}

; {nb,'a145 = [a143 - a141]'} ;dy

; {nb,'a146 = [a144 - a142]'} ;dz

a5321 = a5301 + a3 ;g59xnew

{nb,'#5321 = 'a5321} ;g59xnew

a5322 = a5302 + a143 + a7 ;g59ynew

{nb,'#5322 = 'a5322} ;g59ynew

a5323 = a5303 + a144 + a8 ;g59znew

{nb,'#5323 = 'a5323} ;g59znew

{nb,'G59 '}

; {nb,' M22'}

{nb,' G0 A#2'}

; {nb,' M21'}

{nb,'G0 X0 Y0'}

; {nb,' G0 G43 H#11 Z'100}

{nb,'M99'}

{nl}

endp

Ссылка на сообщение
Поделиться на других сайтах

Ага нет символа ; перед trace "all":5 значит пост ковыряется полным ходом. Похвально!

( C=TIKUN_X D=TIKUN_Y E=TIKUN_Z HOME '

Текущие координаты самого поста тоже вроде понятны. :wink:

Теперь по делу. Для начала в вашем МАСе

;Fourth axis

indexial_4th_axis = Y

indexial_increment = 0.0000, 0.0000

init_cpos = Y

polar_4x = Y

cartez_4x = Y

set_dir = Y

fourth_axis_letter = C

Исправить на:

;Fourth axis

indexial_4th_axis = N

indexial_increment = 0.0000, 0.0000

init_cpos = Y

polar_4x = N

cartez_4x = N

set_dir = N

fourth_axis_letter = C

Назначение процедур @tmatrix , @home_data2 и @home_data1a какое то хитрющее.

Зачем там столько локальных переменных? Я конечно не Перельман и разобрать на бегом что-куда, да еще и без пива

не получится.

Из процедуры @fourth_axis думаю надо убрать if prev_command ne '@call_proc' после этого должен появится поворот

в начале. В процедуре @change_tool большой балаган, зачем там G65 и прочее?

Вообще хорошо бы посмотреть трассировку поста с джи-кодом.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за подсказки! Да, ковырялся полным ходом, да только результата никакого((( Подзапарился уже((

Следуя вашим советам, исправил всё что мог, но результат опять плачевный...

%

O1000 (FM_FACEMILL_T1.NC)

( MCV-OP ) (14-APR-2010)

(SUBROUTINES: O3334 .. O3334)

G90 G17

G80 G49 G40

G54

G91 G28 Z0

G90

M01

N1 M6 T1

(TOOL -1- MILL DIA 6.0 R0. MM )

G90 G00 G40 G54

G43 H1 D31 G0 X-18.6 Y-1.5 Z44.998 S4000 M3

M8

(-----------------)

(FM-FACEMILL-T1 - )

(-----------------)

M30

O3334

G91 G90 G91 G90 M99

%

Правда появилось отличие - теперь при визуализации вращается не деталь, а инструмент вокруг неё, но это мелочи, думаю, просто оси переназначить будет достаточно.

А как включить трассировку поста с джи-кодом?

Ну а пиво не вопрос))) Будете в Питере, пишите!))

Ссылка на сообщение
Поделиться на других сайтах

Есть мнение (мое) что в переходе с названием начинающимся с 5X___ все перемещения должны выводиться в процидурках line_5x и Move_5x. Я порылся по сусекам и нашел пару файлов с такими же типами переходов (5X_4A_selected_faces_T1). и они выводятся в УП через line_5x а в посте Fanuc 4x - нет такой процидурки.

Ссылка на сообщение
Поделиться на других сайтах

Есть мнение (мое) что в переходе с названием начинающимся с 5X___ все перемещения должны выводиться в процидурках line_5x и Move_5x. Я порылся по сусекам и нашел пару файлов с такими же типами переходов (5X_4A_selected_faces_T1). и они выводятся в УП через line_5x а в посте Fanuc 4x - нет такой процидурки.

так вроде есть такие у меня, только соответственно не line_5x, а line_4x :

@stop_tool

{' M5'}

endp

@line_on

endp

@end_job_procs

endp

@line_4x

endp

@move_4x

endp

@drill4x_pnt

endp

@rotary_info

; if first_proc_number eq false

; {'G0 A0'}

; endif

endp

@chng_tool_cnext

endp

@init_cpos

endp

@move4x_dir

endp

@line4x_dir

endp

@move4x_polar

endp

@line4x_polar

endp

@arc4x_polar

endp

@move4x_cartesian

endp

@line4x_cartesian

endp

Ссылка на сообщение
Поделиться на других сайтах

Ну, во первых, эти процидурки пустые, а в пустых solidcam ничего не выводит в файл УП, а во вторых, я подозреваю, они используются только при четырехосевой позиционной обработке. Вы же создавали переход "пятиосевая обработка" и фиксировали пятую ось? Или обычную трехмерку, а потом ее размножали через четвертую ось?

Ссылка на сообщение
Поделиться на других сайтах

Ну, во первых, эти процидурки пустые, а в пустых solidcam ничего не выводит в файл УП, а во вторых, я подозреваю, они используются только при четырехосевой позиционной обработке. Вы же создавали переход "пятиосевая обработка" и фиксировали пятую ось? Или обычную трехмерку, а потом ее размножали через четвертую ось?

Честно говоря, пробовал по всякому, и 4-х и 5-ти с отключением 5-й, и фрезерно-токарную. но успеха так и не добился. последний раз пробовал через 4-х осевой пост от фанука, хотя теперь я совсем не уверен в его работоспособности...

Ссылка на сообщение
Поделиться на других сайтах

А как включить трассировку поста с джи-кодом?

Если перед trace:5 не стоит крыжик ; то трасировка включена и при генерациии джи-кода

должен быть примерно такой выхлоп:

@absolute_mode ==> no parameters

>

@machine_plane ==> machine_plane:xy

>

@start_program ==> xpos:1000.000T ypos:0.000T zpos:1000.000T

..> distance_from_home1:6.800

..> start_with_part_in_sub:false single_piece:false

> G50 S2500

@rotary_info ==> rot_axis_type:axis4_face radial_diameter:0.000 center_pos:0.000

..> rot_axis_coord:axis4_cartesian

>

@tmatrix ==> mac_number:1 position:1 home_user_name:''

..> tool_z_level:250.000 clearance_plane:10.000 tool_start_plane:50.000

..> work_upper_plane:0.000 zero_plane:-20.000

..> rotate_angle_x:0.000T rotate_angle_y:0.000T rotate_angle_z:0.000T

..> rotate_angle_x_dir:cw rotate_angle_y_dir:cw rotate_angle_z_dir:cw

..> x_angle_const_z:0.000T y_angle_const_z:0.000T dev_angle_z:0.000T

..> opposite_x_angle_const_z:-180.000T opposite_y_angle_const_z:-180.000T opposite_dev_angle_z:-180.000T

..> x_angle_const_z_dir:cw y_angle_const_z_dir:cw dev_angle_z_dir:cw

..> x_angle_const_y:0.000T z_angle_const_y:0.000T dev_angle_y:0.000T

..> opposite_x_angle_const_y:0.000T opposite_z_angle_const_y:0.000T opposite_dev_angle_y:0.000T

..> x_angle_const_y_dir:cw z_angle_const_y_dir:cw dev_angle_y_dir:cw

..> y_angle_const_x:0.000T z_angle_const_x:0.000T dev_angle_x:0.000T

..> opposite_y_angle_const_x:0.000T opposite_z_angle_const_x:0.000T opposite_dev_angle_x:0.000T

..> y_angle_const_x_dir:cw z_angle_const_x_dir:cw dev_angle_x_dir:cw

..> angle_4x_around_x:0.000T angle_4x_around_y:0.000T

..> angle_4x_around_x_dir:cw angle_4x_around_y_dir:cw

..> shift_x:0.000T shift_y:0.000T shift_z:0.000T

..> tmatrix_I_1:1.000T tmatrix_I_2:0.000T tmatrix_I_3:0.000T tmatrix_I_4:0.000T

..> tmatrix_I_5:0.000T tmatrix_I_6:1.000T tmatrix_I_7:0.000T tmatrix_I_8:0.000T

..> tmatrix_I_9:0.000T tmatrix_I_10:0.000T tmatrix_I_11:1.000T tmatrix_I_12:0.000T

..> tmatrix_I_13:0.000T tmatrix_I_14:0.000T tmatrix_I_15:0.000T tmatrix_I_16:1.000T

..> x = cosy*cosz*x - sinz*cosy*y + siny*z

..> y = (-sinx*siny*cosz + cosx*sinz)*x + (sinx*siny*sinz + cosx*cosz)*y - sinx*cosy*z

..> z = (cosx*cosz*siny + sinx*sinz)*x + (-sinz*cosx*siny + sinx*cosz)*y - cosx*cosy*z

..> around Z

..> x = x*cos(dev_angle) - y*sin(dev_angle)

..> y = x*sin(dev_angle) + y*cos(dev_angle)

..> around Y

..> z = z*cos(dev_angle) - x*sin(dev_angle)

..> x = z*sin(dev_angle) + x*cos(dev_angle)

..> around X

..> y = y*cos(dev_angle) - z*sin(dev_angle)

..> z = y*sin(dev_angle) + z*cos(dev_angle)

>

@home_number ==> home_number:1 home_user_name:''

>

@chng_tool_cnext ==> cnext:44.833

>

@change_tool ==> tool_number:12 tool_position:1

..> tool_diameter:16.000 tool_type:end_mill

..> tool_id_number:0 tool_length:50.000 tool_teeth_number:3 corner_radius:0.000

..> tool_feed:800.000 tool_spin:3500.000

..> tool_message:'MERASEK 16MM T3'

..> tool_user_type:'TOOL END MILL'

..> first_tool:true last_tool:false

..> job_name:'Merasek_16mm' job_type:'profile'

..> xnext:43.510 ynext:43.257 znext:50.000 cnext:44.833

..> xtool:300.000F ytool:0.000F ztool:50.000T

..> next_tool_number:2 next_tool_id_number:0 next_tool_machine_type:milling

..> number_of_jobs_used_tool:1

..> tool_direction:cw

..> spin:3500.000 finish_spin:3500.000

..> tool_length:50.000 corner_radius:0.000

..> tool_name:'' group_tool_name:''

..> holder_name:'' group_holder_name:''

..> tool_description:'' holder_description:''

..> total_tool_length:70.000 cutting_tool_length:50.000 hlength:50.000

..> work_material:'None' tool_material:'None'

..> d_offset:51 h_offset:1

>

> M5

> G00 X700 Z500

> M110

> G94

> N1 X300 Z50 T121212 (MERASEK 16MM T3)

> SB=3500

> M13 M8

@start_of_job ==> job_name:'Merasek-16mm' job_type:'profile'

..> job_machine_type:milling prev_job_mac_type:milling

..> machine_plane:xy safety:2.000

..> compensation:true

..> max_spin:6000.000 msg:''

..> top_num_dril : 0.000

..>

..> depth:5.600 down_step:5.600

..> job_clearance_plane:10.000 job_upper_plane:-1.800 job_lower_plane:0.000

..> spindle:main

..> feed_rate:800.000 finish_feed:800.000 z_feed:500.000 spin_rate:3500.000 finish_spin:3500.000

..> next_job_machine_type:milling next_job_tool_number:2 next_job_tool_id_number:0

..> job_d_offset:51 job_h_offset:1

Солидкам выдает джи-код вместе со всей приблудой. Картина становится ясна и разобратся проще.

Ссылка на сообщение
Поделиться на других сайтах

@line_5x

gcode = 1

{nb, 'G'gcode, [' X'xpos] [' Y'ypos] [' Z'zpos] [' C'apos:cpos_f] }

{[' F'feed]}

endp

На пищи что получилась

получилось вот что:

%

O1000 (1.NC)

( MCV-OP ) (15-APR-2010)

(SUBROUTINES: O3334 .. O3334)

G90 G17

G80 G49 G40

G54

G91 G28 Z0

G90

M01

N1 M6 T1

(TOOL -1- MILL DIA 6.0 R0. MM )

G90 G00 G40 G54

G43 H1 D31 G0 X-18.6 Y-1.5 Z44.998 S4000 M3

M8

(-----------------)

(FM-FACEMILL-T1 - )

(-----------------)

M30

O3334

G91 G90 G91 G90 M99

%

Всё таже печаль...(((

Если перед trace:5 не стоит крыжик ; то трасировка включена и при генерациии джи-кода

должен быть примерно такой выхлоп:

Солидкам выдает джи-код вместе со всей приблудой. Картина становится ясна и разобратся проще.

А, так я уже пробовал что-то не получается((

У меня было:

blknum_max = 32000

;trace "all":5

main = TRUE

endp

Сделал:

blknum_max = 32000

trace "all":5

main = TRUE

endp

Результат:

%

O1000 (FM_FACEMILL_T1.NC)

( MCV-OP ) (15-APR-2010)

(SUBROUTINES: O3334 .. O3334)

G90 G17

G80 G49 G40

G54

G91 G28 Z0

G90

M01

N1 M6 T1

(TOOL -1- MILL DIA 6.0 R0. MM )

G90 G00 G40 G54

G43 H1 D31 G0 X-18.6 Y-1.5 Z44.998 S4000 M3

M8

(-----------------)

(FM-FACEMILL-T1 - )

(-----------------)

M30

O3334

G91 G90 G91 G90 M99

%

Какое-то зло поселилось в этом посте...(((

P.S. Я уже засомнивался, те ли он файлы постов читает, переместил в другое места, запустил солид - ругается, что файл файл фанука не найден и УП не генерит вообще, так что всё верно...

Может у кого есть рабочий постец на 4 оси для пробы?

Изменено пользователем megakaban
Ссылка на сообщение
Поделиться на других сайтах

Попробуй этот.

Да, совсем другое дело:

0 BEGIN PGM FM_FACEMILL_T1 MM

2 BLK FORM 0.1 Z X+0.000 Y+0.000 Z-20.000

4 BLK FORM 0.2 X+100.000 Y+100.000 Z+0.000

(ALON-DATE-19-APR-2010)

6 * - T1 D6 Концевая фреза

8 L M140 MB MAX

10 CYCL DEF 10.0 ROTATION

12 CYCL DEF 10.1 ROT 0.000

14 CYCL DEF 19.0 BEARBEITUNGSEBENE

16 CYCL DEF 19.1 A+0.000 C+0.000 F9999

18 L A+0 C+0 R0 F MAX M126

20 CYCL DEF 19.0 BEARBEITUNGSEBENE

22 CYCL DEF 19.1

24 CYCL DEF 7.0 NULLPUNKT

26 CYCL DEF 7.1 X+0.000

28 CYCL DEF 7.2 Y+0.000

30 CYCL DEF 7.3 Z+0.000

32 L M140 MB MAX

34 L Y+700.000 R0 F MAX M91

36 L M5

38 L M1

40 TOOL CALL 2 Z S4000; A1LX632

42 L M140 MB MAX

44 L M8

46 CALL LBL 201 REP

48 CALL LBL 200 REP

50 L X-18.600 Y-1.5003 Z+5.000 R0 FMAX M3

52 CALL LBL 2 REP

54 * - FM-FACEMILL-T1

56 L M140 MB MAX

58 CYCL DEF 10.0 ROTATION

60 CYCL DEF 10.1 ROT 0.000

62 CYCL DEF 19.0 BEARBEITUNGSEBENE

64 CYCL DEF 19.1 A+0.000 C+0.000 F9999

66 L A+0 C+0 R0 F MAX M126

68 CYCL DEF 19.0 BEARBEITUNGSEBENE

70 CYCL DEF 19.1

72 CYCL DEF 7.0 NULLPUNKT

74 CYCL DEF 7.1 X+0.000

76 CYCL DEF 7.2 Y+0.000

78 CYCL DEF 7.3 Z+0.000

80 L Y+700.000 R0 F MAX M91

82 L M9

84 L M30

86 LBL 201

88 Q51=0; X-NPV

90 Q52=0; Y-NPV

92 Q53=0; Z-NPV

94 Q54= 0

96 * - VERSATZ FUER NULLPUNKT AUF DER EBENE

98 Q25=0.000; X-NPV EBENE

100 Q26=0.000; Y-NPV EBENE

102 Q27=0.000; Z-NPV EBENE

104 LBL 0

106 LBL 2

108 * - FM-FACEMILL-T1 -

110 L Y-1.500 Z+19.998 R FMAX M9

112 L C42.628 R FMAX M

114 L Z+14.998 R F500 M

116 L C-42.625 R F1375 M

118 L Y-1.538 C-43.501 R F1368 M

120 L Y-1.649 C-44.343 R F1315 M

122 L Y-1.830 C-45.119 R F1212 M

124 L Y-2.074 C-45.799 R F1062 M

126 L Y-2.371 C-46.357 R F872 M

128 L Y-2.709 C-46.772 R F648 M

130 L Y-3.077 C-47.027 R F399 M

132 L Y-3.459 C-47.113 R F134 M

134 L Y-3.841 C-47.027 R M

136 L Y-4.208 C-46.772 R F399 M

138 L Y-4.547 C-46.357 R F648 M

140 L Y-4.843 C-45.799 R F872 M

142 L Y-5.087 C-45.119 R F1062 M

144 L Y-5.268 C-44.343 R F1212 M

146 L Y-5.379 C-43.501 R F1315 M

148 L Y-5.417 C-42.625 R F1368 M

150 L C42.628 R F1375 M

152 L Y-5.455 C43.504 R F1368 M

154 L Y-5.566 C44.346 R F1315 M

156 L Y-5.747 C45.122 R F1212 M

158 L Y-5.990 C45.802 R F1062 M

160 L Y-6.287 C46.36 R F872 M

162 L Y-6.626 C46.775 R F648 M

164 L Y-6.993 C47.03 R F399 M

166 L Y-7.375 C47.116 R F134 M

168 L Y-7.757 C47.03 R M

170 L Y-8.125 C46.775 R F399 M

172 L Y-8.463 C46.36 R F648 M

174 L Y-8.760 C45.802 R F872 M

176 L Y-9.003 C45.122 R F1062 M

178 L Y-9.184 C44.346 R F1212 M

180 L Y-9.296 C43.504 R F1315 M

182 L Y-9.334 C42.628 R F1368 M

184 L C-42.625 R F1375 M

186 L Y-9.371 C-43.501 R F1368 M

188 L Y-9.483 C-44.343 R F1315 M

190 L Y-9.664 C-45.119 R F1212 M

192 L Y-9.907 C-45.799 R F1062 M

194 L Y-10.204 C-46.357 R F872 M

196 L Y-10.542 C-46.772 R F648 M

198 L Y-10.910 C-47.027 R F399 M

200 L Y-11.292 C-47.113 R F134 M

202 L Y-11.674 C-47.027 R M

204 L Y-12.041 C-46.772 R F399 M

206 L Y-12.380 C-46.357 R F648 M

208 L Y-12.677 C-45.799 R F872 M

210 L Y-12.920 C-45.119 R F1062 M

212 L Y-13.101 C-44.343 R F1212 M

214 L Y-13.213 C-43.501 R F1315 M

216 L Y-13.250 C-42.625 R F1368 M

218 L C42.628 R F1375 M

220 L Y-13.288 C43.504 R F1368 M

222 L Y-13.399 C44.346 R F1315 M

224 L Y-13.580 C45.122 R F1212 M

226 L Y-13.824 C45.802 R F1062 M

228 L Y-14.120 C46.36 R F872 M

230 L Y-14.459 C46.775 R F648 M

232 L Y-14.826 C47.03 R F399 M

234 L Y-15.208 C47.116 R F134 M

236 L Y-15.591 C47.03 R M

238 L Y-15.958 C46.775 R F399 M

240 L Y-16.296 C46.36 R F648 M

242 L Y-16.593 C45.802 R F872 M

244 L Y-16.837 C45.122 R F1062 M

246 L Y-17.018 C44.346 R F1212 M

248 L Y-17.129 C43.504 R F1315 M

250 L Y-17.167 C42.628 R F1368 M

252 L C-42.625 R F1375 M

254 L Y-17.204 C-43.501 R F1368 M

256 L Y-17.316 C-44.343 R F1315 M

258 L Y-17.497 C-45.119 R F1212 M

260 L Y-17.740 C-45.799 R F1062 M

262 L Y-18.037 C-46.357 R F872 M

264 L Y-18.376 C-46.772 R F648 M

266 L Y-18.743 C-47.027 R F399 M

268 L Y-19.125 C-47.113 R F134 M

270 L Y-19.507 C-47.027 R M

272 L Y-19.874 C-46.772 R F399 M

274 L Y-20.213 C-46.357 R F648 M

276 L Y-20.510 C-45.799 R F872 M

278 L Y-20.753 C-45.119 R F1062 M

280 L Y-20.934 C-44.343 R F1212 M

282 L Y-21.046 C-43.501 R F1315 M

284 L Y-21.083 C-42.625 R F1368 M

286 L C42.628 R F1375 M

288 L Y-21.121 C43.504 R F1368 M

290 L Y-21.232 C44.346 R F1315 M

292 L Y-21.413 C45.122 R F1212 M

294 L Y-21.657 C45.802 R F1062 M

296 L Y-21.954 C46.36 R F872 M

298 L Y-22.292 C46.775 R F648 M

300 L Y-22.660 C47.03 R F399 M

302 L Y-23.042 C47.116 R F134 M

304 L Y-23.424 C47.03 R M

306 L Y-23.791 C46.775 R F399 M

308 L Y-24.130 C46.36 R F648 M

310 L Y-24.426 C45.802 R F872 M

312 L Y-24.670 C45.122 R F1062 M

314 L Y-24.851 C44.346 R F1212 M

316 L Y-24.962 C43.504 R F1315 M

318 L Y-25.000 C42.628 R F1368 M

320 L C-42.625 R F1375 M

322 L Y-25.038 C-43.501 R F1368 M

324 L Y-25.149 C-44.343 R F1315 M

326 L Y-25.330 C-45.119 R F1212 M

328 L Y-25.574 C-45.799 R F1062 M

330 L Y-25.870 C-46.357 R F872 M

332 L Y-26.209 C-46.772 R F648 M

334 L Y-26.576 C-47.027 R F399 M

336 L Y-26.958 C-47.113 R F134 M

338 L Y-27.340 C-47.027 R M

340 L Y-27.708 C-46.772 R F399 M

342 L Y-28.046 C-46.357 R F648 M

344 L Y-28.343 C-45.799 R F872 M

346 L Y-28.587 C-45.119 R F1062 M

348 L Y-28.768 C-44.343 R F1212 M

350 L Y-28.879 C-43.501 R F1315 M

352 L Y-28.917 C-42.625 R F1368 M

354 L C42.628 R F1375 M

356 L Y-28.954 C43.504 R F1368 M

358 L Y-29.066 C44.346 R F1315 M

360 L Y-29.247 C45.122 R F1212 M

362 L Y-29.490 C45.802 R F1062 M

364 L Y-29.787 C46.36 R F872 M

366 L Y-30.126 C46.775 R F648 M

368 L Y-30.493 C47.03 R F399 M

370 L Y-30.875 C47.116 R F134 M

372 L Y-31.257 C47.03 R M

374 L Y-31.624 C46.775 R F399 M

376 L Y-31.963 C46.36 R F648 M

378 L Y-32.260 C45.802 R F872 M

380 L Y-32.503 C45.122 R F1062 M

382 L Y-32.684 C44.346 R F1212 M

384 L Y-32.796 C43.504 R F1315 M

386 L Y-32.833 C42.628 R F1368 M

388 L C-42.625 R F1375 M

390 L Y-32.871 C-43.501 R F1368 M

392 L Y-32.982 C-44.343 R F1315 M

394 L Y-33.163 C-45.119 R F1212 M

396 L Y-33.407 C-45.799 R F1062 M

398 L Y-33.704 C-46.357 R F872 M

400 L Y-34.042 C-46.772 R F648 M

402 L Y-34.409 C-47.027 R F399 M

404 L Y-34.792 C-47.113 R F134 M

406 L Y-35.174 C-47.027 R M

408 L Y-35.541 C-46.772 R F399 M

410 L Y-35.880 C-46.357 R F648 M

412 L Y-36.176 C-45.799 R F872 M

414 L Y-36.420 C-45.119 R F1062 M

416 L Y-36.601 C-44.343 R F1212 M

418 L Y-36.712 C-43.501 R F1315 M

420 L Y-36.750 C-42.625 R F1368 M

422 L C42.628 R F1375 M

424 L Y-36.787 C43.504 R F1368 M

426 L Y-36.899 C44.346 R F1315 M

428 L Y-37.080 C45.122 R F1212 M

430 L Y-37.323 C45.802 R F1062 M

432 L Y-37.620 C46.36 R F872 M

434 L Y-37.959 C46.775 R F648 M

436 L Y-38.326 C47.03 R F399 M

438 L Y-38.708 C47.116 R F134 M

440 L Y-39.090 C47.03 R M

442 L Y-39.458 C46.775 R F399 M

444 L Y-39.796 C46.36 R F648 M

446 L Y-40.093 C45.802 R F872 M

448 L Y-40.336 C45.122 R F1062 M

450 L Y-40.517 C44.346 R F1212 M

452 L Y-40.629 C43.504 R F1315 M

454 L Y-40.666 C42.628 R F1368 M

456 L C-42.625 R F1375 M

458 L Y-40.704 C-43.501 R F1368 M

460 L Y-40.816 C-44.343 R F1315 M

462 L Y-40.997 C-45.119 R F1212 M

464 L Y-41.240 C-45.799 R F1062 M

466 L Y-41.537 C-46.357 R F872 M

468 L Y-41.875 C-46.772 R F648 M

470 L Y-42.243 C-47.027 R F399 M

472 L Y-42.625 C-47.113 R F134 M

474 L Y-43.007 C-47.027 R M

476 L Y-43.374 C-46.772 R F399 M

478 L Y-43.713 C-46.357 R F648 M

480 L Y-44.010 C-45.799 R F872 M

482 L Y-44.253 C-45.119 R F1062 M

484 L Y-44.434 C-44.343 R F1212 M

486 L Y-44.545 C-43.501 R F1315 M

488 L Y-44.583 C-42.625 R F1368 M

490 L C42.628 R F1375 M

492 L Y-44.621 C43.504 R F1368 M

494 L Y-44.732 C44.346 R F1315 M

496 L Y-44.913 C45.122 R F1212 M

498 L Y-45.157 C45.802 R F1062 M

500 L Y-45.453 C46.36 R F872 M

502 L Y-45.792 C46.775 R F648 M

504 L Y-46.159 C47.03 R F399 M

506 L Y-46.541 C47.116 R F134 M

508 L Y-46.923 C47.03 R M

510 L Y-47.291 C46.775 R F399 M

512 L Y-47.629 C46.36 R F648 M

514 L Y-47.926 C45.802 R F872 M

516 L Y-48.170 C45.122 R F1062 M

518 L Y-48.351 C44.346 R F1212 M

520 L Y-48.462 C43.504 R F1315 M

522 L Y-48.500 C42.628 R F1368 M

524 L C-42.625 R F1375 M

526 L Z+19.998 R FMAX M

528 LBL 0

530 LBL 200

532 CYCL DEF 10.0 ROTATION

534 CYCL DEF 10.1 ROT 0.000

536 CYCL DEF 19.0 BEARBEITUNGSEBENE

538 CYCL DEF 19.1 A+0.000 C+0.000 F9999

540 CYCL DEF 19.0 BEARBEITUNGSEBENE

542 CYCL DEF 19.1

544 CYCL DEF 7.0 NULLPUNKT

546 CYCL DEF 7.1 X+0.000

548 CYCL DEF 7.2 Y+0.000

550 CYCL DEF 7.3 Z+0.000

552 L M140 MB MAX

554 CYCL DEF 7.0 NULLPUNKT

556 CYCL DEF 7.1 X+Q51

558 CYCL DEF 7.2 Y+Q52

560 CYCL DEF 7.3 Z+Q53

562 CYCL DEF 19.0 BEARBEITUNGSEBENE

564 CYCL DEF 19.1 A+Q54 F9999

566 L A+Q54 R0 F MAX M126

568 CYCL DEF 7.0 NULLPUNKT

570 CYCL DEF 7.1 IX+Q25

572 CYCL DEF 7.2 IY+Q26

574 CYCL DEF 7.3 IZ+Q27

576 LBL 0

578 END PGM FM_FACEMILL_T1 MM

Спасибо!!! :biggrin:

Видать с моим постом совсем что-то плохо... Жаль только что этот пост не мой формат генерит.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Люди, не получается совсем что-то с моим постом! (((

Киньте, плиз, какой-нить подобный моему рабочий пост на 4 оси для образца. Буду премного благодарен!!!

Ссылка на сообщение
Поделиться на других сайтах

Киньте, плиз, какой-нить подобный моему рабочий пост на 4 оси для образца. Буду премного благодарен!!!

@line_5x

{nb}

gcode = 1

{'G'gcode}

{' X'xpos ' Y'ypos' Z'zpos ' С'apos ' F'feed}

endp

@move_5x

{nb}

gcode = 0

{'G'gcode}

{' X'xpos ' Y'ypos' Z'zpos ' С'apos ' F'feed}

endp

Если пользоваться пятиосевой обработкой - надо добавить вот эти процидурки - будет выводить 4-х осевую непрерывную обработку. и не забудьте зафиксировать пятую ось в операции. И следите за ограничениями поворота 4-й оси станка.

Изменено пользователем Noncompos
Ссылка на сообщение
Поделиться на других сайтах

Киньте, плиз, какой-нить подобный моему рабочий пост на 4 оси для образца. Буду премного благодарен!!!

@line_5x

{nb}

gcode = 1

{'G'gcode}

{' X'xpos ' Y'ypos' Z'zpos ' С'apos ' F'feed}

endp

@move_5x

{nb}

gcode = 0

{'G'gcode}

{' X'xpos ' Y'ypos' Z'zpos ' С'apos ' F'feed}

endp

Если пользоваться пятиосевой обработкой - надо добавить вот эти процидурки - будет выводить 4-х осевую непрерывную обработку. и не забудьте зафиксировать пятую ось в операции. И следите за ограничениями поворота 4-й оси станка.

Спасибо, но, к сожалению, опять 25(((

При визуализации всё хорошо, а код никакой((

Причём при расчёте кода он просчитывает около 1500 строк.

%

O5000 (1.NC)

( MCV-OP ) (13-MAY-2010)

(SUBROUTINES: O3334 .. O3334)

G90 G17

G80 G49 G40

G73

G91 G28 Z0

G90

M01

N1 M6 T1

(TOOL -1- MILL DIA 6.0 R0. MM )

G90 G00 G40 G73

G43 H1 D31 G0 X0.024 Y0.001 Z65. S3000 M3

M8

M98 P3334 (5X-4A-selected-faces-T1)

M30

O3334

(--------------------------)

(5X-4A-SELECTED-FACES-T1 - )

(--------------------------)

M99

%

post-27118-1273730406_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Artas28
      Syntec 220MA Во время смены инструмента, шпиндель по Z уехал выше. После нажатия паузы. Всё встало. Станок находится выше машинного нуля и не опускается. Кто сталкивался? Как опустить?  Ошибка MLCHint R590.7 Plc hint
    • Snake 60
      @Alexey0336  Да, всё работает: https://cloud.mail.ru/public/NGNq/Ft8UAJtf3  
    • Anat2015
      Так оно и есть, китайский клон Сименс-808.  
    • Snake 60
      Что Вы подразумеваете под словом "Конфликтовать"? Мпроп и мой макрос делают одно и тоже действие, создают и заносят свойства в файл солида. Если свойства с одинаковым именем (например Обозначение и Наименование), то Да, свойство перезапишется тем макросом, которой отработал последним. Щас проверю, отпишусь. Изначально Наименование и Обозначение берутся из имени файла, но его всегда можно перезаписать... Если что, это всегда можно переписать под Ваши требования.
    • jtok
      Если у вас SW не выше 18й версии, могу проверить у себя.
    • Orchestra2603
      Ну, есть же, например QZ алгоритм (обобщение QR разложения, для слуая когда матрица масс не равна I). Отлично работает, когда одна из матриц вырожденная. Вот статься:  https://deepblue.lib.umich.edu/bitstream/handle/2027.42/6667/bac9269.0001.001.pdf?sequence=5   вот коротко в Вики     Раскопал это вообще, глядя в справку от матлаба: https://www.mathworks.com/help/matlab/ref/eig.html.   Это все нюансы....  И все эти алгоритмы сущетсвуют уже кучу лет во всяких библиотеках типа LAPACK. Вы думаете, что в Dassault Systemes или Ansys про это не знают, и их модальник - лажа?  
    • karlf
      Сегодня не было времени, завтра посмотрю и пришлю фото как выглядит
    • Bot
      АСКОН выпустил новый релиз среды общих данных Pilot. В нем получили развитие инструменты строительного контроля и авторского надзора, появилась возможность вручную координировать модель объекта капитального строительства. Стройконтроль Вести стройконтроль на площадке, а также авторский надзор за деятельностью арендаторов и собственников поможет привязка панорамных фото объекта к чертежам и документам. Для съемки панорамных фото используется мобильное приложение Pilot-Photo360, доступное для Android. С помощью приложения специалисты строительных организаций, компаний-застройщиков, девелоперов смогут: Находясь на объекте строительства или эксплуатации, фотографировать объект на специализированную панорамную камеру и сразу прикреплять снимки к точкам на чертежах и документах в Pilot-BIM или Pilot-ICE Enterprise. Группировать панорамные снимки по альбомам. Просматривать фото помещения с разных ракурсов, при этом видеть направление взгляда относительно [...] View the full article
    • wega7777
      Судя по формату ошибки похоже на Систему ЧПУ от HCNC — аналог Siemens и Fanuc. ЧПУ HNC808DiT, но могу ошибаться.
    • Alexey0336
      Похоже на то, что мне нужно) Пара вопросов: 1. Будет ли макрос конфликтовать с Mprop? 2. Если я каждой сборке/детали заранее пропишу в обозначение: $PRP:"Порядковый номер" ХХ.YY.ZZZ, подхватит ли формула свойство "порядковый номер" после всех действий?
×
×
  • Создать...