Premiers contacts avec LinuxCNC, besoin d'aide...

  • Auteur de la discussion galigulaminus
  • Date de début
I

inmik

Apprenti
Voilà, dans l'ordre de la copie d'écran:
je colle tout à la suite car sinon on perds les extentions et là :cry:

Dossier macros:
fichier: change.ngc (sert à la fonction remape avec une touche perso...)


o<change> sub
;(debug, in change tool_in_spindle=#<tool_in_spindle> current_pocket=#<current_pocket>)
;(debug, selected_tool=#<selected_tool> selected_pocket=#<selected_pocket>)

;otherwise after the M6 this information is gone!
#<tool> = #<selected_tool>
#<pocket> = #<selected_pocket>

; we must execute this only in the milltask interpreter
; or preview will break, so test for '#<_task>' which is 1 for
; the milltask interpreter and 0 in the UI's
O100 if [#<_task> EQ 0]
(debug, Task ist Null)
O100 return [999]
O100 endif

;first go up
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]
; then move to change position
G53 G0 X[#<_ini[CHANGE_POSITION]X>] Y[#<_ini[CHANGE_POSITION]Y>]

; cancel tool offset
G49

; using the code being remapped here means 'use builtin behaviour'
M6




;(si vous chargez l'outil camera pas de palpage auto)
;(si vous chargez un outil superieur à T99 pas de palpage auto ex:T100)

o101 if [ #<selected_tool> GE 99]
o<change> endsub [1]

o101 endif





O200 if [#<_hal[gmoccapy.toolmeasurement]> EQ 0]
O200 return [3] ; indicate no tool measurement
O200 endif

G53 G0 X[#<_ini[TOOLSENSOR]X>] Y[#<_ini[TOOLSENSOR]Y>]
G53 G0 Z[#<_ini[TOOLSENSOR]Z>]

O300 if [#<_hal[gmoccapy.searchvel]> LE 0]
O300 return [-1] ; indicate searchvel <= 0
O300 endif

O400 if [#<_hal[gmoccapy.probevel]> LE 0]
O400 return [-2] ; indicate probevel <= 0
O400 endif

F #<_hal[gmoccapy.searchvel]>
G91
G38.2 Z #<_ini[TOOLSENSOR]MAXPROBE>
G0 Z2
; This is commented out only for sim.
;F #<_hal[gmoccapy.probevel]>
;G38.2 Z-4

O500 if [#5070 EQ 0]
G90
O500 return [-3] ; indicate probe contact failure to epilog
O500 endif

G90
G53 G0 Z[#<_ini[CHANGE_POSITION]Z>]

#<touch_result> = #5063
#<probeheight> = #<_hal[gmoccapy.probeheight]>
#<blockheight> = #<_hal[gmoccapy.blockheight]>

;(DEBUG, #<touch_result> #<probeheight> #<blockheight>)

G10 L1 P#<tool> Z[#<touch_result> - #<_hal[gmoccapy.probeheight]> + #<_hal[gmoccapy.blockheight]>]
G43

;G10 L1 P#<tool> Z#<touch_result>
;G10 L2 P0 Z[#<workpieceheight> + #<probeheight> + #<touch_result>]

; signal success be returning a value > 0:
o<change> endsub [1]

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

fichier: go_to_position.ngc (avec une petite touche perso)

; Testfile go to position
; will jog the machine to a given position

O<go_to_position> sub

G17
G21
G54
G61
G40
G49
G80
G90

;#1 = <T-pos>
;#2 = <X-Pos>
;#3 = <Y-Pos>
;#4 = <Z-Pos>



(DBG,Tool change to T = #1)
T#1M6
G0 G43 H#1 Z#4

(DBG, Will now move machine to X = #2 , Y = #3 , Z = #4)
G0 X #2 Y #3

O<go_to_position> endsub
M2



---------------------------------------------------------------------------------------------------------------------------------------------------------------------

fichier: origines_machine.ngc (avec ....)

O<origines_machine> sub


M5(msg, ARRET BROCHE)

G40(msg, annulation dela compensation du rayon d'outil R)

G49(msg, annulation de la longueur H outil)

G28(msg, retour aux origines machine)

G90(msg, mode absolu)

(msg, retour aux origines machine terminé)

O<origines_machine> endsub
m2


Bon bientôt la suite il y a du boulôt !
 
G

galigulaminus

Apprenti
:eek: pppffffuuu, bon sang, c'est du rapide, après une bonne nuit de sommeil, j'essaierais d'ingurgiter tout ça !
merci en attendant et bonne nuit.
 
I

inmik

Apprenti
La suite:

il faut copier le fichier pyton de " sim.gmoccapy", tel quel dans le fichier de config
-------------------------------------------------------------------------------------------------------------------------
dans "custom.hal"

#net probe-in <= parport.0.pin-10.in

#net probe-in => motion.probe-input

-------------------------------------------------------------------------------------------------------------------------

dans "custom_postgui.hal" sert juste pour la vitesse de broche ateinte...

sets spindle-at-speed true

-------------------------------------------------------------------------------------------------------------------------

dans "linuxcnc.var" tout à 0 sauf:

5220 1.000000
5221 -100.000000
5222 -50.000000
5223 -150.000000

correspond à mes variables....approches etc dans configuration palpage

-------------------------------------------------------------------------------------------------------------------------

dans "linuxcnc.var.bak" rien c'est un backup...

-------------------------------------------------------------------------------------------------------------------------

dans "ma-machine2.hal" (ta machine.hal) (j'ai commencé à faire du tri, pas fini mais fonctionne)

# Generated by stepconf 1.1 at Sat Jan 24 09:45:59 2015
# Si vous modifiez ce fichier, il sera
# écrasé quand vous relancerez Stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0,0


loadrt encoder num_chan=2 #pour 2 encodeurs
loadrt abs count=2 #pour 2 encodeurs
loadrt scale count=2 #pour 2 encodeurs
loadrt lowpass count=2 #pour 2 encodeurs
loadrt near
loadrt pwmgen output_type=1




addf parport.0.read base-thread

addf stepgen.make-pulses base-thread

addf encoder.update-counters base-thread

addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
addf abs.0 servo-thread
addf scale.0 servo-thread
addf lowpass.0 servo-thread
addf near.0 servo-thread



net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value

#-------------------------------------------connection broche on start pwm
net spindle-on <= motion.spindle-on => pwmgen.0.enable

#-------------------------------------------connection ...
net spindle-pwm <= pwmgen.0.pwm

setp pwmgen.0.pwm-freq 7.5
setp pwmgen.0.scale -11627.9069767
setp pwmgen.0.offset 0.586
setp pwmgen.0.dither-pwm true

#-------------------------------------------connection vitesse broche ateinte
net spindle-at-speed => motion.spindle-at-speed


setp encoder.0.position-scale 160.000000
#-------------------------------------------connection
net spindle-position encoder.0.position => motion.spindle-revs
#-------------------------------------------connection
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
#-------------------------------------------connection
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
#-------------------------------------------connection encodeur a
net spindle-phase-a encoder.0.phase-A
#-------------------------------------------connection encodeur b
net spindle-phase-b encoder.0.phase-B
#-------------------------------------------connection encodeur z
net spindle-index encoder.0.phase-Z


#-------------------------------------------connection palpeur
net probe-in => motion.probe-input


#-------------------------------------------connection
net xenable => parport.0.pin-01-out
#-------------------------------------------connection
net xstep => parport.0.pin-02-out
#-------------------------------------------connection
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-03-out-invert 1
#-------------------------------------------connection
net ydir => parport.0.pin-03-out
#-------------------------------------------pwm pin 4
net spindle-pwm => parport.0.pin-04-out
#-------------------------------------------connection
net adir => parport.0.pin-05-out
#-------------------------------------------connection
net astep => parport.0.pin-06-out

setp parport.0.pin-06-out-reset 1
#-------------------------------------------connection
net zstep => parport.0.pin-07-out

setp parport.0.pin-07-out-reset 1
#-------------------------------------------connection
net zdir => parport.0.pin-08-out
#-------------------------------------------connection
net spindle-on => parport.0.pin-09-out
#-------------------------------------------connection
net xdir => parport.0.pin-14-out
#-------------------------------------------connection
net ystep => parport.0.pin-16-out
#-------------------------------------------connection
setp parport.0.pin-16-out-reset 1

#-------------------------------------------connection encodeur broche b pin 12
net spindle-phase-b <= parport.0.pin-12-in

#-------------------------------------------connection encodeur broche a pin 13
net spindle-phase-a <= parport.0.pin-13-in

#-------------------------------------------connection palpeur pin 10
net probe-in <= parport.0.pin-10-in-not

#-------------------------------------------connection arret d urgence pin 15
net estop-ext <= parport.0.pin-15-in


setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 48000
setp stepgen.0.dirsetup 48000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
#-------------------------------------------connection
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
#-------------------------------------------connection
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
#-------------------------------------------connection
net xstep <= stepgen.0.step
#-------------------------------------------connection
net xdir <= stepgen.0.dir
#-------------------------------------------connection
net xenable axis.0.amp-enable-out => stepgen.0.enable



setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 48000
setp stepgen.1.dirsetup 48000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
#-------------------------------------------connection
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
#-------------------------------------------connection
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
#-------------------------------------------connection
net ystep <= stepgen.1.step
#-------------------------------------------connection
net ydir <= stepgen.1.dir
#-------------------------------------------connection
net yenable axis.1.amp-enable-out => stepgen.1.enable


setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 48000
setp stepgen.2.dirsetup 48000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
#-------------------------------------------connection
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
#-------------------------------------------connection
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
#-------------------------------------------connection
net zstep <= stepgen.2.step
#-------------------------------------------connection
net zdir <= stepgen.2.dir
#-------------------------------------------connection
net zenable axis.2.amp-enable-out => stepgen.2.enable

setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 48000
setp stepgen.3.dirsetup 48000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
#-------------------------------------------connection
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
#-------------------------------------------connection
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
#-------------------------------------------connection
net astep <= stepgen.3.step
#-------------------------------------------connection
net adir <= stepgen.3.dir
#-------------------------------------------connection
net aenable axis.3.amp-enable-out => stepgen.3.enable


#-------------------------------------------connection
net estop-out <= iocontrol.0.user-enable-out
#-------------------------------------------connection
net estop-ext => iocontrol.0.emc-enable-in


loadusr -W hal_manualtoolchange
#-------------------------------------------connection
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
#-------------------------------------------connection
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
#-------------------------------------------connection
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
#-------------------------------------------connection
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared


-------------------------------------------------------------------------------------------------------------------------


bientôt la suite
 
G

galigulaminus

Apprenti
:-D du coup, je suis pas encore couché... vraiment merci, en déformant un peu un titre de Cabrel, tu es vraiment 'Le Monsieur de Haute-Savoie" :prayer:

je vais mettre tout ça en pratique dès demain...
 
I

inmik

Apprenti
Hello, la collone vertebrale:

fichier "ma-machine2.ini"

# Generated by stepconf 1.1 at Sat Jan 24 09:45:59 2015
# Si vous modifiez ce fichier, il sera
# écrasé quand vous relancerez Stepconf

[EMC]
MACHINE = ma-machine2
DEBUG = 0

[DISPLAY]
-----------------------------------------------------------------
DISPLAY = gmoccapy

EMBED_TAB_NAME = camera T99

EMBED_TAB_LOCATION = ntb_preview

EMBED_TAB_COMMAND = mplayer -wid {XID} tv://0 -vf rectangle=-1:2:-1:240,rectangle=2:-1:320:-1

-----------------------------------------------------------------
#EMBED_TAB_COMMAND = camview-emc -w {XID}
-----------------------------------------------------------------
#EMBED_TAB_NAME = Second user tab
#EMBED_TAB_LOCATION = ntb_preview
#EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade
-----------------------------------------------------------------



-----------------------------------------------------------------
#DISPLAY = axis
-----------------------------------------------------------------
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
-----------------------------------------------------------------
MAX_FEED_OVERRIDE = 5.0
-----------------------------------------------------------------
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 4.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 41.00
DEFAULT_ANGULAR_VELOCITY = 2.50
MIN_ANGULAR_VELOCITY = 0
MAX_ANGULAR_VELOCITY = 25.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/mick/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .001mm
-----------------------------------------------------------------
PYVCP = custompanel.xml
-----------------------------------------------------------------

[FILTER]
-----------------------------------------------------------------
PROGRAM_EXTENSION = .nc, .NCF,.fan,.ngc,.txt xyz postprocessor
-----------------------------------------------------------------
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
-----------------------------------------------------------------
RS274NGC_STARTUP_CODE = G17 G21 G40 G43 H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
-----------------------------------------------------------------
PARAMETER_FILE = linuxcnc.var
-----------------------------------------------------------------
SUBROUTINE_PATH = macros
-----------------------------------------------------------------




-----------------------------------------------------------------




# turn on optional features in this case just INI reading
FEATURES=12

#ON_ABORT_COMMAND=O <on_abort> call

# parameters exposed by change_prolog/evaluated by change_epilog:
# #<tool_in_spindle>
# #<selected_tool>
# #<current_pocket>
# #<selected_pocket>
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog

-----------------------------------------------------------------

[TOOLSENSOR]
X = 200
Y = -200
Z = -50
# abort change if no toolsensor contact after this probe distance
MAXPROBE = -100

# this is not named TOOL_CHANGE_POSITION on purpose - canon uses it and will
# interfere
[CHANGE_POSITION]
X = 200
Y = -200
Z = 0

# the Python plugins serves interpreter and task
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
LOG_LEVEL = 8

------------------------------------------------------------------


[MACROS]
#MACRO = i_am_lost
#MACRO = halo_world
#MACRO = jog_around
#MACRO = increment xinc yinc

MACRO = origines_machine
MACRO = go_to_position T-pos X-pos Y-pos Z-pos
MACRO = change


-----------------------------------------------------------------
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000

[HAL]
HALFILE = ma-machine2.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
HALUI = halui

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_VELOCITY = 40.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
-----------------------------------------------------------------
TOOL_CHANGE_QUILL_UP = 1
-----------------------------------------------------------------

[AXIS_0]
TYPE = LINEAR
HOME = 200.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -190.0
MAX_LIMIT = 200.001
HOME_OFFSET = 200.0
-----------------------------------------------------------------
BACKLASH =0.15
-----------------------------------------------------------------
[AXIS_1]
TYPE = LINEAR
HOME = -200.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -200.001
MAX_LIMIT = 190.0
HOME_OFFSET = -200.0

[AXIS_2]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 320.256204964
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -180.
MAX_LIMIT = 0.001
HOME_OFFSET = 0

[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

-----------------------------------------------------------------
le fichier .pref "ma-machine2.pref"


[DEFAULT]
dro_size = 20
hide_axis_4 = False
spindle_start_rpm = 3000.0
scale_max_vel = 1000.0
scale_jog_vel = 6.0
scale_spindle_override = 1.0
scale_feed_override = 1.0
open_file = /home/mik/linuxcnc/nc_files/Gcode/chauffe.ngc
screen1 = maximized
x_pos = 40
y_pos = 30
width = 979
height = 750
gtk_theme = Follow System Theme
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
grid_size = 1.0
view = p
mouse_btn_mode = 4
hide_cursor = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/mik/linuxcnc/nc_files/
logo = False
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
x_pos_popup = 970.0
y_pos_popup = 355.0
width_popup = 210.0
max_messages = 6.0
message_font = Sans Italic 8
use_frames = True
show_dro_btn = True
use_auto_units = False
blockdel = False
opstop = True
log_actions = False
enable_dro = True
show_offsets = False
show_dtg = False
view_tool_path = True
view_dimension = True
gremlin_view = rbt_view_p
run_from_line = run
unlock_way = no
unlock_code = 123
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = False
show_keyboard_on_mdi = False
show_keyboard_on_file_selection = False
show_preview_on_offset = True
use_keyboard_shortcuts = True
abs_color = blue
rel_color = #2dbe2e5935e3
dtg_color = #fffffffff39c
homed_color = #0f0
unhomed_color = red
offset_axis_x = 100.0
offset_axis_y = 50.0
probeheight = 20.0
searchvel = 100.0
probevel = 5.0
use_toolmeasurement = True
offset_axis_z = 150.0

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Fichier "spindle_sim.hal" pas encore trop mis le nez dedans...

# counting the spindle encoder in software
loadrt encoder names=encoder_0
# simulate the encoder
loadrt sim_encoder names=sim_encoder_0
loadrt limit2 names=limit_speed

addf limit_speed servo-thread

#######################################################
# Beginning of threading related stuff
#######################################################

# spindle speed control
net spindle-speed-cmd motion.spindle-speed-out => limit_speed.in
net spindle-speed-limited limit_speed.out => sim_encoder_0.speed

# simulate spindle mass
setp limit_speed.maxv 3000.0 # rpm/second

# spindle encoder
# connect encoder signals to encoder counter
net spindle-phase-A sim_encoder_0.phase-A => encoder_0.phase-A
net spindle-phase-B sim_encoder_0.phase-B => encoder_0.phase-B
net spindle-phase-Z sim_encoder_0.phase-Z => encoder_0.phase-Z

# assume 120 ppr = 480 counts/rev for the spindle
setp sim_encoder_0.ppr 12
# iocontrol output is in rpm, but sim-encoder speed is rps
setp sim_encoder_0.scale 60
# scale encoder output to read in revolutions
# (that way thread pitches can be straightforward,
# a 20 tpi thread would multiply the encoder output
# by 1/20, etc)
setp encoder_0.position-scale 48

# encoder reset control
# hook up motion controller's sync output
net spindle-index-enable motion.spindle-index-enable <=> encoder_0.index-enable

# report our revolution count to the motion controller
net spindle-pos encoder_0.position => motion.spindle-revs

# for spindle velocity estimate
loadrt lowpass names=lowpass_velocity
loadrt scale names=scale_to_rpm
net spindle-rps-raw encoder_0.velocity lowpass_velocity.in
net spindle-rps-filtered lowpass_velocity.out scale_to_rpm.in motion.spindle-speed-in
net spindle-rpm-filtered scale_to_rpm.out
setp scale_to_rpm.gain 60
setp lowpass_velocity.gain .07
addf lowpass_velocity servo-thread
addf scale_to_rpm servo-thread

# for at-speed detection
loadrt near names=near_speed
addf near_speed servo-thread
setp near_speed.scale 1.1
setp near_speed.difference 10
net spindle-speed-cmd => near_speed.in1
net spindle-rpm-filtered => near_speed.in2
net spindle-at-speed near_speed.out motion.spindle-at-speed

net spindle-fwd <= motion.spindle-forward

addf encoder.capture-position servo-thread
addf sim-encoder.update-speed servo-thread

addf sim-encoder.make-pulses base-thread
addf encoder.update-counters base-thread


-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Fichier "tool.tbl" (notez que les outils de 1 à 98 seront tous palpés avec M6 les autres non)

T1 P1 Z+14.373904 ;fraise d3x90°
T2 P2 Z+57.190113 ;1/16 end mill
T3 P3 Z+71.883800 ;#7 tap drill
T99999 P99999 Z+0.100000 ;big tool number
T4 P4 Z+40.000000 ;fraise boule d3 R1.5 fraisa sortie 5 mm
T5 P5 Z+40.000000 ;comment
T6 P6 Z+80.688100 ;fraise d8 hss
T99 P99 X+50.000000 Y-40.000000 Z+100.000000 ;WEBCAM T99 X50.0 Y-40.0 Z100.0
T100 P100 Z+88.888800 ;Fraise préreglée H100=88.8888 en exemple

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Copiez le fichier "tool_sensor.glade" du fichier" sim.gmoccapy", tel quel dans le fichier de config

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Copiez le fichier "tool_sensor.hal" du fichier" sim.gmoccapy", tel quel dans le fichier de config

net tool_sensor tool_sensor.btn_tool_sensor_sim
net tool_sensor motion.probe-input
net tool_sensor tool_sensor.led_tool_sensor

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Voilà! :-D

A+
 
Dernière édition par un modérateur:
I

inmik

Apprenti
Je voudrais juste feliciter les développeurs de linuxcnc ! :prayer:

Parce que moi je n'ai fait que copier le travail des autres.

J'espère que les pros de Linux pourront corriger si il y à des erreurs ou des trucs qui servent à rien!

:)
 
I

inmik

Apprenti
Salut galigulaminus !

la nuit porte conseil, je doit te préciser que j'ai utilisé un switch à contact fermé pour mes tests.

Donc dans le fichier "ma-machine2.hal" la ligne du palpeur est :
net probe-in <= parport.0.pin-10-in-not

net probe-in <= parport.0.pin-10-in : pour un contact ouvert, si je me gourre pas !

Voilà la carte avec un inter pour l'arrêt d'urgence et un switch pour le capteur outil:

2015-01-26-104014.jpg
 
G

galigulaminus

Apprenti
:sad: bon, c'est bien compliqué pour moi, je vais rester avec une config de base... vous êtes tombé dedans étant tout petit et c'est pas mon cas...
j'ai tenté la modification de mes fichiers pour comprendre un peu et pas un copier coller de tes fichiers... mais je suis un peu dans le vague,
par exemple, j'ai parcouru le site http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Axis_Embed_Video
on parle de camview... j'ai rien compris au film ! on trouve ça où ? avec mplayer ok et ça marche...
vraiment je ne sais plus comment faire surtout que j'ai de la découpe à finir pour un ami, donc j'envisage une pause,
je vais quand même tester une découpe pour me faire une idée plus précise, pour le palpage se sera la bonne vieille méthode du papier glissant !
la webcam est opérationnelle avec axis, un bon point.
 
Dernière édition par un modérateur:
I

inmik

Apprenti
Bonsoir,
pour camview, c'est vrai j'ai aussi ramé réussi à l’installer puis abandonné...

Déclarer les sources de Russie: http://psha.org.ru/debian/
installer les paquets avec les plugins et tout et tout, long compliqué mais incroyablement flexible...

Pour le palpeur outil je vais voir si je peu isoler ce dont on a besoin, j'ai commencer à annoter mon fichier .ini

Je le posterai après manger...

Bon app
 
Dernière édition par un modérateur:
G

galigulaminus

Apprenti
:-D par avance, merci
pour camview, ça doit être sympa à voir les possibilités offertes... par contre je me sens par capable d'installer la chose...
franchement je trouve qu'avec gmoccapy on a un bien bel outil :-D
bon,j'ai ça a finir pour un ami... il attend les éléments des ailes...

dsc00310.jpg
 
I

inmik

Apprenti
Magnifique!
il doit y avoir quelques heures de boulot !!
Tu nous montrerais pas ta machine ?
Elle a l'air balaise vu la taille des pièces :!:
 
G

galigulaminus

Apprenti
ma machine est CNC-concept Basic 1500 achetée en Allemagne il y a déjà longtemps... une taille de travail de 1100 x 650 il faut ça ! utilisée au début avec Filou et Win PCNC puis Cambam avec Mach3
mais j'ai toujours eu quelques soucis avec Mach3 la carte de commande AMW102 est peut-être la cause, d'ailleurs ce fut constat d'échec avec Ninos...
déjà plusieurs avions et planeurs découpés, les éléments en MDF d'une CNC à fil chaud et dans un autre registre les limons de l'escalier de mon atelier et les réservations des charnières de portes de cuisine !... et bien d'autres choses avec un peu de métal.
elle a eu une longue période de sommeil, la raison, la construction d'une maison, mais maintenant elle a droit à un semblant d'atelier !
une autre chose, un short-kit de réparation d'un planeur, C800 pour un copain, toute la partie avant était cassée, on voit un peu la CNC dans mon ancien atelier

dscf0311.jpg


pour LinuxCNC, je reconnais que ma curiosité est plus forte que le besoin pour usiner, mais n'étant plus un jeunot, il doit me manquer quelques neurones ! :oops:
j'ai exploré le site russe mais j'avoue ne rien piger... ce camview c'est du secret défense ! :roll:
tous les liens trouvés font redondance et à chaque fois on se retrouve à la case départ... faut dire que cela intéresse peut-être peu de monde.
 
I

inmik

Apprenti
Belle surface de travail!

j'ai un peu détaillé mon fichier .ini

voilà:

# Generated by stepconf 1.1 at Sat Jan 24 09:45:59 2015
# Si vous modifiez ce fichier, il sera
# écrasé quand vous relancerez Stepconf
------------------------------------------------------------------
;revision1 le 26,janvier 2015 par inmik
------------------------------------------------------------------
;informations générales
[EMC]
MACHINE = ma-machine2
DEBUG = 0

------------------------------------------------------------------
------------------------------------------------------------------

[DISPLAY]
-----------------------------------------------------------------
-----------------------------------------------------------------
;sélection du type d’interface graphique
DISPLAY = gmoccapy
------------------------------------------------------------------
;fichier préférences gmoccapy (pas utilisé)
;par défaut ma-machine2.pref
#PREFERENCE_FILE_PATH = gmoccapy_preferences
------------------------------------------------------------------
;onglet camera (outil T99)
EMBED_TAB_NAME = camera T99
------------------------------------------------------------------
;position en haut à gauche
EMBED_TAB_LOCATION = ntb_preview
------------------------------------------------------------------
;lecteur mplayer avec une croix
EMBED_TAB_COMMAND = mplayer -wid {XID} tv://0 -vf rectangle=-1:2:-1:240,rectangle=2:-1:320:-1
-----------------------------------------------------------------
-----------------------------------------------------------------
;gestion camera avec camview (pas installé)
#EMBED_TAB_COMMAND = camview-emc -w {XID}
-----------------------------------------------------------------
-----------------------------------------------------------------
;deuxième onglet (pas utilisé)
#EMBED_TAB_NAME = Second user tab
#EMBED_TAB_LOCATION = ntb_preview
#EMBED_TAB_COMMAND = gladevcp -x {XID} vcp_box.glade
-----------------------------------------------------------------
-----------------------------------------------------------------

-----------------------------------------------------------------
-----------------------------------------------------------------
;sélection du type d’interface graphique (pas utilisé)
#DISPLAY = axis
-----------------------------------------------------------------
-----------------------------------------------------------------
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
-----------------------------------------------------------------
-----------------------------------------------------------------
;avances max 500%
MAX_FEED_OVERRIDE = 5.0
-----------------------------------------------------------------
-----------------------------------------------------------------
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 4.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 41.00
DEFAULT_ANGULAR_VELOCITY = 2.50
MIN_ANGULAR_VELOCITY = 0
MAX_ANGULAR_VELOCITY = 25.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/mick/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .001mm
-----------------------------------------------------------------
-----------------------------------------------------------------
;Le fichier de description du panneau PyVCP
;fenetre pour vitesse de broche :axis?
PYVCP = custompanel.xml
-----------------------------------------------------------------
-----------------------------------------------------------------


;sélection d’un programme de filtrage
[FILTER]
-----------------------------------------------------------------
-----------------------------------------------------------------
;liste d extentions G-code recconnues par linuxcnc
PROGRAM_EXTENSION = .nc, .NCF,.fan,.ngc,.txt xyz postprocessor
-----------------------------------------------------------------
-----------------------------------------------------------------
;liste d extentions de fichiers recconnues par linuxcnc
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
-----------------------------------------------------------------
;interpréteur python
py = python

;barre de progression du programme g-code (à tester)
#AXIS_PROGRESS_BAR
#FILTER_PROGRESS=%d
-----------------------------------------------------------------
-----------------------------------------------------------------
;réglages utilisés par le contrôleur de tâche.
[TASK]
TASK = milltask
CYCLE_TIME = 0.010


;ajustements utilisés par l’interpréteur de g-code.
[RS274NGC]
-----------------------------------------------------------------
-----------------------------------------------------------------
;codes chargés au démarrage
RS274NGC_STARTUP_CODE = G17 G21 G40 G43 H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
-----------------------------------------------------------------
-----------------------------------------------------------------
;fichier des variables
PARAMETER_FILE = linuxcnc.var
-----------------------------------------------------------------
-----------------------------------------------------------------
;fichier pour macros et sous programmes MDI
SUBROUTINE_PATH = macros
-----------------------------------------------------------------
-----------------------------------------------------------------

;fonction à définir
# turn on optional features in this case just INI reading
FEATURES=12
-----------------------------------------------------------------
-----------------------------------------------------------------
;fonction à définir
#ON_ABORT_COMMAND=O <on_abort> call

# parameters exposed by change_prolog/evaluated by change_epilog:
# #<tool_in_spindle>
# #<selected_tool>
# #<current_pocket>
# #<selected_pocket>
-----------------------------------------------------------------
-----------------------------------------------------------------
;fonction reprogrammation du changement d outil M6
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog



-----------------------------------------------------------------
-----------------------------------------------------------------
;fonction palpage outil
;position G53 du palpeur
[TOOLSENSOR]
X = 200
Y = -200
Z = -50
# abort change if no toolsensor contact after this probe distance
MAXPROBE = -100
-----------------------------------------------------------------
-----------------------------------------------------------------
# this is not named TOOL_CHANGE_POSITION on purpose - canon uses it and will
# interfere
[CHANGE_POSITION]
X = 200
Y = -200
Z = 0
-----------------------------------------------------------------
-----------------------------------------------------------------
# the Python plugins serves interpreter and task
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
LOG_LEVEL = 8

------------------------------------------------------------------
------------------------------------------------------------------
;liste des macros MDI
[MACROS]
#MACRO = i_am_lost
#MACRO = halo_world
#MACRO = jog_around
#MACRO = increment xinc yinc

;retour aux origines machines POM
MACRO = origines_machine
;aller à une position avec un outil chargé
MACRO = go_to_position T-pos X-pos Y-pos Z-pos
;sert pour le palpage outil
MACRO = change

------------------------------------------------------------------
------------------------------------------------------------------

;réglages utilisés par le contrôleur de mouvements temps réel.
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 50000
SERVO_PERIOD = 1000000
------------------------------------------------------------------
------------------------------------------------------------------
;fichiers de config hal
[HAL]
HALFILE = ma-machine2.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
HALUI = halui
------------------------------------------------------------------
------------------------------------------------------------------
;réglages additionnels utilisés par le contrôleur de mouvements temps réel.
[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_VELOCITY = 40.00
------------------------------------------------------------------
------------------------------------------------------------------
;réglages utilisés par le contrôleur d’entrées/sorties.
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
------------------------------------------------------------------
-----------------------------------------------------------------
;fonction à définir
TOOL_CHANGE_QUILL_UP = 1
-----------------------------------------------------------------
------------------------------------------------------------------
;groupes de variables relatives à chaque axe.
;axe X
[AXIS_0]
TYPE = LINEAR
HOME = 200.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -190.0
MAX_LIMIT = 200.001
HOME_OFFSET = 200.0
-----------------------------------------------------------------
------------------------------------------------------------------
;ratrappage du jeu x
BACKLASH =0.15
------------------------------------------------------------------
------------------------------------------------------------------
;axe Y
[AXIS_1]
TYPE = LINEAR
HOME = -200.0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -200.001
MAX_LIMIT = 190.0
HOME_OFFSET = -200.0
------------------------------------------------------------------
------------------------------------------------------------------
;axe Z
[AXIS_2]
TYPE = LINEAR
HOME = 0
MAX_VELOCITY = 40.0
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 320.256204964
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -180.
MAX_LIMIT = 0.001
HOME_OFFSET = 0
------------------------------------------------------------------
------------------------------------------------------------------
;axe A
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 40
MAX_ACCELERATION = 450.0
STEPGEN_MAXACCEL = 562.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0

------------------------------------------------------------------
------------------------------------------------------------------
 
Dernière édition par un modérateur:
I

inmik

Apprenti
Salut,

Pour le tool sensor je crois qu'il faut:

fichier tool_sensor.hal

fichier tool_sensor.glade

fichier macros

fichier python



Dans le fichier ma-machine2.hal
#-------------------------------------------
net probe-in => motion.probe-input
#-------------------------------------------attention au sens du contact
net probe-in <= parport.0.pin-10-in-not



#--------------------------------------------changement outil manuel
loadusr -W hal_manualtoolchange
#-------------------------------------------connection
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
#-------------------------------------------connection
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
#-------------------------------------------connection
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
#-------------------------------------------connection
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared



Dans le fichier ma-machine2.ini


;sélection d’un programme de filtrage
[FILTER]

;interpréteur python
py = python


;ajustements utilisés par l’interpréteur de g-code.
[RS274NGC]

;fichier pour macros et sous programmes MDI
SUBROUTINE_PATH = macros

;fonction reprogrammation du changement d outil M6
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=change epilog=change_epilog

;fonction palpage outil
;position G53 du palpeur
[TOOLSENSOR]
X = 200
Y = -200
Z = -50
# abort change if no toolsensor contact after this probe distance
MAXPROBE = -100
-----------------------------------------------------------------
-----------------------------------------------------------------
# this is not named TOOL_CHANGE_POSITION on purpose - canon uses it and will
# interfere
[CHANGE_POSITION]
X = 200
Y = -200
Z = 0
-----------------------------------------------------------------
-----------------------------------------------------------------
# the Python plugins serves interpreter and task
[PYTHON]
PATH_PREPEND = python
TOPLEVEL = python/toplevel.py
LOG_LEVEL = 8


;liste des macros MDI
[MACROS]

;sert pour le palpage outil
MACRO = change
 
G

galigulaminus

Apprenti
:-D tu va pouvoir en faire un livre !
vraiment, tu es super d'aider comme ça :-D
 
I

inmik

Apprenti
Bien tu vois c'est toi qui m'a fait découvrir gmoccapy !

il y a des fois on est là, il neige dehors...

Donne moi des nouvelles de l'avancement de ta config!

Je posterais quelques photos, je suis sur le retour broche par encodeur...

A+

halscope retour codeur phase A B.png
 
G

galigulaminus

Apprenti
tu parles de neige, nous ici, samedi, 1 voire 2 cm... par contre, j'ai un neveu dans ta région, enfin presque, Les Adrets en Isère et il me semble que ça tombe pas mal chez lui...
pour gmoccapy, c'est vrai que l'interface m'a plu de suite... par contre j'ignorais le boulot que cela représentait !
il est vrai qu'avec Mach3 c'est plus facile... enfin pour moi car d'autres ont fait le boulot :oops:
coté CNC, tu as quoi comme machine ?
 
I

inmik

Apprenti
Pour la neige j'approche les 40 cm... normal à1000m d'altitude...

Ma machine est fait maison 400x450x280 en Z...

Basée sur de la récup, environ 400 euros tout compris donc la license Mach3 n'est pas pour moi... :idea:

Si un jour je trouve le temps (courage) je ferais un post dessus...
une photo quand même, en cours de montage:

A+

Photo0396.jpg
en cours de montage
 
I

inmik

Apprenti
Bonsoir!

Avec toff on s'impatiente !

Non je rigole, cette config ça dit quoi ?

A+
 
G

galigulaminus

Apprenti
:oops: je me suis aperçu de certains problèmes avec Linux... alors je viens de réinstaller LinuxCNC, j'avais tellement tâtonné et certainement fait des choses qui vont pas !
comme on dit, je repars à zéro, enfin pas tout à fait !
et parallèlement je prépare les fichiers de découpe des nervures de l'oiseau + faire le garde malade car Madame a chopée une bonne grippe...
 
I

inmik

Apprenti
Et bien tu chômes pas !

+1 pour madamme qui a la crève :???:

Sinon je suis toujours sur mon retour broche encodeur, ça marche avec axis mais pas avec gmoccapy :cry:

Je cherche ...

A+

2015-01-27-214518.jpg
 
G

galigulaminus

Apprenti
:wink: j'ai comme l'impression que je t'ai trouvé un os à ronger ? :mrgreen:
tu n'as plus qu'à finir ta CNC pour mettre tout ça en pratique...
 
T

toff

Compagnon
Bonsoir à vous,
bon ben je reste sur ma faim là :)
je me disais, je vais rentrer du taf et je vais voir un post enjoué avec la config fonctionnelle...... Pffff même pas drôle :smt003
 
I

inmik

Apprenti
Hello, la cnc est finie depuis 1 an et 1/2...
enfin elle sera jamais vraiment finie, il y a toujours quelque chose à faire dessus .
Pas de temps à y consacrer; d'ou la carte en + pour tester dans le salon en regardant la télé :drinkers:

Faut que je fasse des photos, j'ai que des vidéos...

Un petit essai 2.5 D avec artcam, puis usiné avec ma "poubelle"

2015-01-27-221838.jpg
 
I

inmik

Apprenti
Salut toff!

Dit voir dans quel esprit tu part avec ta bécanne ?

Sur d'autres posts on aurais dit quel est ton cahier des charges... :?: :partyman:
 
T

toff

Compagnon
houla ! très vaste sujet :-D

je ne voudrai pas polluer ce fil mais grosso modo, quand j'ai commencé, mon challenge était de concevoir une machine avec les éléments que j'ai eu la chance de pouvoir sauver de la benne.
Donc je me suis efforcé de faire le plus homogène possible tout en réapprennent sur le tas et en me faisant plaisir.
 
I

inmik

Apprenti
Je vois qu'on a le même fournisseur !

L'idée de voir des bouts de machines à la benne ma fait passer un "cap" et pourquoi pas moi ...

Quand on est pas pressé et que c'est pour le plaisir :-D
 

Sujets similaires

grandioso
Réponses
7
Affichages
794
grandioso
grandioso
V
Réponses
12
Affichages
851
vibram
V
PL50
Réponses
25
Affichages
1 282
dh42
C
Réponses
1
Affichages
850
coolman59
C
M
Réponses
14
Affichages
1 717
Mika2A
M
L
Réponses
22
Affichages
3 112
jad83690
J
P
Réponses
31
Affichages
3 697
dh42
M
Réponses
8
Affichages
4 256
Mandrak
M
Haut