按规划持续工作
结论:已纳入 LinuxCNC 五轴 switchkins M428/M429/M430 来源资产,补齐 remap source probe 与 native 验证闭环,未新增自写 CNC 语义。
This commit is contained in:
202
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini
vendored
Normal file
202
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
[EMC]
|
||||
VERSION = 1.1
|
||||
MACHINE = Sim-5Axis Bridge Mill (xyzbcw)
|
||||
DEBUG = 0
|
||||
|
||||
[DISPLAY]
|
||||
GEOMETRY = XYZCBW
|
||||
OPEN_FILE = ./5axisgui.ngc
|
||||
INCREMENTS = 10 mm, 1 mm, .1 mm
|
||||
JOG_AXES = XYZC
|
||||
GEOMETRY = XYZCBW
|
||||
DISPLAY = axis
|
||||
CYCLE_TIME = 0.200
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 2.0
|
||||
PROGRAM_PREFIX = ../../nc_files/
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
TOOL_EDITOR = tooledit z diam
|
||||
#EDITOR = geany
|
||||
PYVCP = 5axis.xml
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
HAL_PIN_VARS = 1
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
REMAP = M430 modalgroup=10 ngc=430remap
|
||||
PARAMETER_FILE = 5axis.var
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
COMM_TIMEOUT = 1.0
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = LIB:basic_sim.tcl
|
||||
HALFILE = 5axisgui.hal
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type
|
||||
POSTGUI_HALFILE = 5axis_postgui.hal
|
||||
|
||||
[HALUI]
|
||||
# M428:bridgemill (kinstype==0 startupDEFAULT)
|
||||
# M429:identity kins (kinstype==1)
|
||||
# M430:userk kins (kinstype==2)
|
||||
MDI_COMMAND = M428
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M430
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = XYZBCWY
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_ANGULAR_VELOCITY = 360.0
|
||||
DEFAULT_LINEAR_VELOCITY = 200.0
|
||||
MAX_LINEAR_VELOCITY = 346.0
|
||||
MAX_LINEAR_ACCELERATION = 800.0
|
||||
DEFAULT_LINEAR_ACCELERATION = 800.0
|
||||
MAX_ANGULAR_VELOCITY = 360
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = 5axis.tbl
|
||||
|
||||
[KINS]
|
||||
# Note: Supported coordinates are XYZBCW but the W coordinate
|
||||
# motion is incorporated into the X,Y,Z axes.
|
||||
# Use of the W coordinate requires a joint (5)
|
||||
# in order to allow display of W values.
|
||||
# Use immediate homing for this joint (JOINT_5)
|
||||
# Note: 5axiskins is misnomer
|
||||
# (xyzbcw uses 6 joints)
|
||||
# (xyzbcwy uses 7 joints)
|
||||
|
||||
# xyzbcw
|
||||
# type0:5axiskins, type1:identity, type2:userk
|
||||
# x:joint0,y:joint1,z:joint2,b:joint3,c:joint4,w:joint5
|
||||
# JOINTS = 6
|
||||
# KINEMATICS = 5axiskins
|
||||
|
||||
# illustraed below is complex example with duplicate
|
||||
# coord letters for y, 7 joints total):
|
||||
# type0:5axiskins, type1:identity, type2:userk
|
||||
# x:joint0
|
||||
# y:joint1 AND joint6
|
||||
# z:joint2
|
||||
# b:joint3
|
||||
# c:joint4
|
||||
# w:joint5
|
||||
JOINTS = 7
|
||||
KINEMATICS = 5axiskins coordinates=xyzbcwy
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 500
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 500
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 100
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
|
||||
# B is one-to-one to JOINT_3
|
||||
[AXIS_B]
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
MAX_VELOCITY = 60
|
||||
MAX_ACCELERATION = 200
|
||||
|
||||
# C is one-to-one to JOINT_4
|
||||
[AXIS_C]
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
MAX_VELOCITY = 60
|
||||
MAX_ACCELERATION = 200
|
||||
|
||||
# W motion is incorporated in Z motion
|
||||
# but a joint (JOINT_5) must be configured
|
||||
# to support display of W values
|
||||
[AXIS_W]
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 500
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 500
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 500
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = -1
|
||||
|
||||
# joints 1 and 6 used for y
|
||||
[JOINT_6]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 500
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = -1
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
MIN_LIMIT = -500
|
||||
MAX_LIMIT = 100
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = ANGULAR
|
||||
MAX_VELOCITY = 60
|
||||
MAX_ACCELERATION = 200
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_4]
|
||||
TYPE = ANGULAR
|
||||
MAX_VELOCITY = 60
|
||||
MAX_ACCELERATION = 200
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
# immediate homing for JOINT_5 (w coordinate)
|
||||
[JOINT_5]
|
||||
TYPE = LINEAR
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 500
|
||||
MAX_VELOCITY = 200
|
||||
MAX_ACCELERATION = 800
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
4
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl
vendored
Normal file
4
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.tbl
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
T10 P10 Z10 D10
|
||||
T11 P11 Z11 D10
|
||||
T100 P100 Z100 D10
|
||||
T150 P150 Z150 D10
|
||||
128
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.xml
vendored
Normal file
128
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.xml
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pyvcp>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<label>
|
||||
<text>"SWITCHKINS"</text>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>3</bd>
|
||||
</label>
|
||||
<multilabel>
|
||||
<legends>[" 0:BRIDGE ", "1:IDENTITY", " 2:USERK "]</legends>
|
||||
<font>("DejaVu Sans Mono",16)</font>
|
||||
<bg>"black"</bg>
|
||||
<fg>"yellow"</fg>
|
||||
</multilabel>
|
||||
<button>
|
||||
<halpin>"type0-button"</halpin>
|
||||
<text>"Brigemill"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type1-button"</halpin>
|
||||
<text>"Identity "</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type2-button"</halpin>
|
||||
<text>"userk "</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<labelframe text="Joints values">
|
||||
<font>("Helvetica",14)</font>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"0: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint0"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"1: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint1"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"2: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint2"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"3: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint3"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"4: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint4"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"5: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint5"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"6: "</text>
|
||||
<font>("Helvetica",14)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint6"</halpin>
|
||||
<font>("Helvetica",14)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<button>
|
||||
<halpin>"vismach-clear"</halpin>
|
||||
<text>"vismach-clear"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
</pyvcp>
|
||||
17
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal
vendored
Normal file
17
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis_postgui.hal
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
net :kinstype.is-0 <= kinstype.is-0 => pyvcp.multilabel.0.legend0
|
||||
net :kinstype.is-1 <= kinstype.is-1 => pyvcp.multilabel.0.legend1
|
||||
net :kinstype.is-2 <= kinstype.is-2 => pyvcp.multilabel.0.legend2
|
||||
|
||||
net :type0-button <= pyvcp.type0-button => halui.mdi-command-00
|
||||
net :type1-button <= pyvcp.type1-button => halui.mdi-command-01
|
||||
net :type2-button <= pyvcp.type2-button => halui.mdi-command-02
|
||||
|
||||
net :jx => pyvcp.joint0
|
||||
net :jy => pyvcp.joint1
|
||||
net :jz => pyvcp.joint2
|
||||
net :jb => pyvcp.joint3
|
||||
net :jc => pyvcp.joint4
|
||||
net :jw => pyvcp.joint5
|
||||
net :jy2 => pyvcp.joint6
|
||||
|
||||
net :vismach-clear <= pyvcp.vismach-clear => vismach.plotclear
|
||||
32
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal
vendored
Normal file
32
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.hal
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
loadusr -W 5axisgui
|
||||
# to set different pivot_len, use:
|
||||
# 'loadusr -W 5axisgui pivot_len=value'
|
||||
|
||||
net :jx joint.0.pos-fb 5axisgui.jx
|
||||
net :jy joint.1.pos-fb 5axisgui.jy
|
||||
net :jz joint.2.pos-fb 5axisgui.jz
|
||||
net :jb joint.3.pos-fb 5axisgui.jb
|
||||
net :jc joint.4.pos-fb 5axisgui.jc
|
||||
net :jw joint.5.pos-fb
|
||||
net :jy2 joint.6.pos-fb
|
||||
|
||||
# Note: no joint or motor connections are used
|
||||
# for the w coordinate
|
||||
|
||||
# compute pivot-length needed for 5axiskins
|
||||
# according to gui pivot_len and tool z offset
|
||||
loadrt sum2 names=pivotsum
|
||||
addf pivotsum servo-thread
|
||||
|
||||
net :gui-pivot-len <= 5axisgui.pivot_len
|
||||
net :gui-pivot-len => pivotsum.in0
|
||||
|
||||
net :tool-len <= motion.tooloffset.z
|
||||
net :tool-len => pivotsum.in1
|
||||
net :tool-len => 5axisgui.tool_length
|
||||
|
||||
net :pivot-len <= pivotsum.out
|
||||
net :pivot-len => 5axiskins.pivot-length
|
||||
|
||||
net :tool-diam <= halui.tool.diameter
|
||||
net :tool-diam => 5axisgui.tool_diam
|
||||
53
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.ngc
vendored
Normal file
53
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axisgui.ngc
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
#<r> = 60 ; sphere radius
|
||||
#<rdelta> = 5 ; safe distance
|
||||
#<drilldepth> = -5
|
||||
#<zstart> = 0
|
||||
#<bctmax> = 8
|
||||
#<cctmax> = 16
|
||||
#<toolno> = 100
|
||||
#<frate> = 1000
|
||||
|
||||
#<bct> = 0
|
||||
#<cct> = 0
|
||||
#<cdelta> = [360/#<cctmax>]
|
||||
#<bdelta> = [90/#<bctmax>]
|
||||
|
||||
g49
|
||||
t#<toolno>m6g43
|
||||
|
||||
g53 g0 x0y0z#<zstart>b0c0 w0
|
||||
g10l20 p0 x0 y0 z[#<r>+#<rdelta>] b0 c0 w0
|
||||
g0 z0
|
||||
f#<frate>
|
||||
o100 while [#<bct> lt #<bctmax>]
|
||||
#<b> = [#<bct>*#<bdelta>]
|
||||
#<rnow> = [[#<r>+#<rdelta>]*[cos[#<b>]]]
|
||||
#<x> = [#<rnow>]
|
||||
#<y> = 0
|
||||
#<z> = [-#<rnow>]
|
||||
g0 x#<x> y#<y>
|
||||
m66e0l0 ; force sync
|
||||
g0 z#<z>
|
||||
g0b[-90+#<b>]
|
||||
#<cct> = 0
|
||||
o200 while [#<cct> lt #<cctmax>]
|
||||
o210 if [[#<bct> mod 2] eq 0]
|
||||
#<c> = [#<cct> * #<cdelta>]
|
||||
o210 else
|
||||
#<c> = [360 - [1+ #<cct>] * #<cdelta>]
|
||||
o210 endif
|
||||
#<x> = [#<rnow>*[cos[#<c>]]]
|
||||
#<y> = [#<rnow>*[sin[#<c>]]]
|
||||
g0 x#<x> y#<y> z#<z> c#<c>
|
||||
f#<frate>
|
||||
g1 w[ #<drilldepth> - #<rdelta>]
|
||||
g0 w0
|
||||
m66e0l0 ;force sync
|
||||
#<cct> = [#<cct>+1]
|
||||
o200 endwhile
|
||||
#<bct> = [#<bct>+1]
|
||||
o100 endwhile
|
||||
|
||||
g0x0y0z0b0c0w0
|
||||
g53 g0 x0y0z0
|
||||
m2
|
||||
38
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/README
vendored
Normal file
38
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/README
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
This is a simulation of an XYZBCWY 5 axis bridge mill.
|
||||
|
||||
Example demo:
|
||||
|
||||
1) $ linuxcnc 5axis.ini
|
||||
2) F1 ---------- Estop off
|
||||
F2 ---------- Machine on
|
||||
CTRL-HOME --- home all
|
||||
F5 ---------- MDI tab
|
||||
3) orient vismach gui as required
|
||||
4) g0w10 ; retract w
|
||||
5) g43h100 ; tool offset (100)
|
||||
6) g0b45 ; tilt 45 deg wrt z
|
||||
7) g0c30 ; rotate 30 deg in xy
|
||||
8) g0w-10 ; simulate drill
|
||||
9) g0w10 ; retract drill
|
||||
10) etc
|
||||
|
||||
Note: Motion for the W coordinate is incorporated
|
||||
into the motions of the joints used for X,Y,Z
|
||||
motion but a corresponding joint.5 is needed to
|
||||
correctly display W values.
|
||||
|
||||
The joint.5.motor-pos-cmd should be looped to the
|
||||
joint.5.motor-pos-fb and joint.5 should use immediate
|
||||
homimg (HOME_SEARCH_VEL = 0).
|
||||
|
||||
The 5axis.ini illustrates how to use multiple (2)
|
||||
joints for the axis y coordinate.
|
||||
|
||||
Configuration for XYZBCWY (7 joints total)
|
||||
J0: X
|
||||
J1: Y
|
||||
J2: Z
|
||||
J3: B
|
||||
J4: C
|
||||
J5: W
|
||||
J6: Y
|
||||
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc
vendored
Normal file
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
;M428 by remap: select kinstype=0 genhexkins
|
||||
o<428remap>sub
|
||||
#<kinstype> = 0
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M428:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M428: Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<428remap>endsub
|
||||
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/429remap.ngc
vendored
Normal file
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/429remap.ngc
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
;M429 by remap: select kinstype==1 Identity kinematics
|
||||
o<429remap>sub
|
||||
#<kinstype> = 1
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M429:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M429:Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<429remap>endsub
|
||||
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/430remap.ngc
vendored
Normal file
24
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/remap_subs/430remap.ngc
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
;M430 by remap: select kinstype==2 userk kins
|
||||
o<430remap>sub
|
||||
#<kinstype> = 2
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M30:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M430:Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<430remap>endsub
|
||||
42
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/README
vendored
Normal file
42
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/README
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
Switchable Table Dual Rotary (tdr) Sim config
|
||||
|
||||
xyzab-tdr (switchable kinematics)
|
||||
|
||||
|
||||
Demonstrations:
|
||||
|
||||
For a demonstration of XYZAB_TCP kinematics the user can run the preloaded demo gcode with the default offsets.
|
||||
|
||||
In the right hand panel of the axis gui sliders are provided to
|
||||
|
||||
- change the geometrical (x,z)-offsets as measured from the rotation-point of the A/B rotary-assembly to the
|
||||
face center of the rotary A table. The offsets are visibly adjusted in the vismach simulation and represented by a red indicator
|
||||
for the x-offset and a blue indicator for the z-offset.
|
||||
|
||||
- see the effects of misconfiguring the (x,y,z)-rot-point values used in the kinematics. These values represent the
|
||||
physical position of the rotary-assembly in the machine as measured from the machine home position to the rotation-point
|
||||
of the assembly. The rotation-point is identical to the intersection of the two rotational axes A and B when the (x,z)-offsets
|
||||
are zero. When (x,z)-offsets are applied the rotation-point stays on the rotational B axis. The 'rot-point' as set by
|
||||
these values as well as the true rotation-point of the rotary-assembly are indicated in the vismach simulation by a yellow cross
|
||||
and a red sphere respectively.
|
||||
|
||||
NOTE:
|
||||
For proper tool-path preview RELOAD THE CGODE after startup and after changing offset values.
|
||||
|
||||
|
||||
|
||||
***********************************************
|
||||
Note: IMPORTANT ini file requirements:
|
||||
|
||||
[HAL]
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-0N => motion.switchkins-type
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
|
||||
[HALUI]
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M428
|
||||
***********************************************
|
||||
@@ -0,0 +1,49 @@
|
||||
; -- RELOAD GCODE FOR PROPER TOOL-PATH PREVIEW --
|
||||
g21 g90 g49 g54
|
||||
; switch to identity mode
|
||||
m429
|
||||
; clear g54
|
||||
g10 l2 p0 x0 y0 z0 a0 b0
|
||||
; go to machine origin
|
||||
g53 g0 x0 y0 z0 a0 b0
|
||||
; set g54 for face center of rotary
|
||||
g10 l20 p0 x-[#<_hal[xyzab_tdr_kins.x-rot-point]>+#<_hal[xyzab_tdr_kins.x-offset]>] y-#<_hal[xyzab_tdr_kins.x-rot-point]> z-[#<_hal[xyzab_tdr_kins.z-rot-point]>+#<_hal[xyzab_tdr_kins.z-offset]>] a0 b0
|
||||
; load a tool
|
||||
M61 Q2 G43 H2
|
||||
; switch to tcp mode
|
||||
m428
|
||||
g0 b30
|
||||
; go to face center of rotary a
|
||||
g0 x0 y0 z0
|
||||
; show basic tcp functionality
|
||||
g0 x30 a180
|
||||
g0 x0 a0
|
||||
g0 b100
|
||||
g0 y-50
|
||||
g0 a90
|
||||
g0 b120
|
||||
g0 y0
|
||||
g0 a0 b30
|
||||
g0 x1
|
||||
; start with square
|
||||
f1000
|
||||
g0 y-30 z-30
|
||||
g1 z30
|
||||
g1 a45
|
||||
g1 y30
|
||||
g1 a90 b45
|
||||
g1 z-30
|
||||
g1 a180 b100
|
||||
g1 y30
|
||||
g1 a90 b120
|
||||
g1 y-30
|
||||
g1 a0 b30
|
||||
g0 x5
|
||||
g1 y-30 z-30 a90
|
||||
g1 z30 a45 b60
|
||||
g1 y30 a90 b90
|
||||
g1 z-30 a135 b120
|
||||
g1 y-30 a0 b30
|
||||
; go to machine origin
|
||||
g53 g0 x0 y0 z0 a0 b0
|
||||
m2
|
||||
@@ -0,0 +1,24 @@
|
||||
;M428 by remap: kinstype==1 (xyzac,xyzbc) (note: sparm=identityfirst)
|
||||
o<428remap>sub
|
||||
#<kinstype> = 1 ; xyzac,xyzbc
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M428:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M428: Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<428remap>endsub
|
||||
@@ -0,0 +1,24 @@
|
||||
;M429 by remap: kinstype==0 Identity kinematics
|
||||
o<429remap>sub
|
||||
#<kinstype> = 0
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M429:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M429:Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<429remap>endsub
|
||||
23
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal
vendored
Normal file
23
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr-postgui.hal
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# switchkins pyvcp connections for:
|
||||
# xyzab-tdr-kins.ini
|
||||
|
||||
net :kinstype.is-0 <= kinstype.is-0 => pyvcp.multilabel.0.legend0
|
||||
net :kinstype.is-1 <= kinstype.is-1 => pyvcp.multilabel.0.legend1
|
||||
|
||||
net :vismach-clear <= pyvcp.vismach-clear => vismach.plotclear
|
||||
|
||||
net :type0-button <= pyvcp.type0-button => halui.mdi-command-00
|
||||
net :type1-button <= pyvcp.type1-button => halui.mdi-command-01
|
||||
|
||||
net :axis-x => pyvcp.joint0
|
||||
net :axis-y => pyvcp.joint1
|
||||
net :axis-z => pyvcp.joint2
|
||||
net :rotary-a => pyvcp.joint3
|
||||
net :rotary-b => pyvcp.joint4
|
||||
|
||||
net :x-offset => pyvcp.x-offset-f
|
||||
net :z-offset => pyvcp.z-offset-f
|
||||
net :x-rot-point => pyvcp.x-rot-point-f
|
||||
net :y-rot-point => pyvcp.y-rot-point-f
|
||||
net :z-rot-point => pyvcp.z-rot-point-f
|
||||
|
||||
183
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini
vendored
Normal file
183
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
[EMC]
|
||||
VERSION = 1.1
|
||||
MACHINE = sim-xyzab-tdr-kins (switchkins)
|
||||
|
||||
[DISPLAY]
|
||||
GEOMETRY = XYZA-B
|
||||
OPEN_FILE = ./demos/xyzab-tdr-demo.ngc
|
||||
PYVCP = ./xyzab-tdr.xml
|
||||
DISPLAY = axis
|
||||
MAX_ANGULAR_VELOCITY = 360
|
||||
MAX_LINEAR_VELOCITY = 1000
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 2
|
||||
PROGRAM_PREFIX = ../../nc_files
|
||||
INTRO_GRAPHIC = emc2.gif
|
||||
INTRO_TIME = 1
|
||||
TOOL_EDITOR = tooledit z diam
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
PARAMETER_FILE = xyzab-tdr.var
|
||||
|
||||
[KINS]
|
||||
#NOTE:
|
||||
# switchkins-type == 0 is identity kins
|
||||
# switchkins-type == 1 is xyzab-tdr-kins
|
||||
|
||||
KINEMATICS = xyzab_tdr_kins
|
||||
JOINTS = 5
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = LIB:basic_sim.tcl
|
||||
POSTGUI_HALFILE = xyzab-tdr-postgui.hal
|
||||
|
||||
# net for control of motion.switchkins-type
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type
|
||||
|
||||
# Values '(x,z)-offsets' for geometric offset of the rotary-assembly and the
|
||||
# values '(x,y,z)-rot-point' that describe the position of the
|
||||
# rotation-point of the rotary-assembly can be changed using the sliders
|
||||
# in the axis-gui.
|
||||
# Default values (initval) and ranges (min,max) are set
|
||||
# in the corresponding 'scale' sections in the file 'xyzab-tdr.xml'
|
||||
|
||||
# vismach xyzab-tdr-gui items
|
||||
HALCMD = loadusr -W xyzab-tdr-gui
|
||||
HALCMD = net :axis-x joint.0.pos-fb xyzab-tdr-gui.axis-x
|
||||
HALCMD = net :axis-y joint.1.pos-fb xyzab-tdr-gui.axis-y
|
||||
HALCMD = net :axis-z joint.2.pos-fb xyzab-tdr-gui.axis-z
|
||||
HALCMD = net :rotary-a joint.3.pos-fb xyzab-tdr-gui.rotary-a
|
||||
HALCMD = net :rotary-b joint.4.pos-fb xyzab-tdr-gui.rotary-b
|
||||
HALCMD = net :tool-offset motion.tooloffset.z xyzab-tdr-gui.tool_length
|
||||
HALCMD = net :tool-diam halui.tool.diameter xyzab-tdr-gui.tool_diameter
|
||||
HALCMD = net :x-offset xyzab-tdr-gui.x_offset
|
||||
HALCMD = net :z-offset xyzab-tdr-gui.z_offset
|
||||
HALCMD = net :x-rot-point xyzab-tdr-gui.x-rot-point
|
||||
HALCMD = net :y-rot-point xyzab-tdr-gui.y-rot-point
|
||||
HALCMD = net :z-rot-point xyzab-tdr-gui.z-rot-point
|
||||
|
||||
# xyzab_tdr_kins items
|
||||
HALCMD = net :tool-offset xyzab_tdr_kins.tool-offset-z
|
||||
HALCMD = net :x-offset xyzab_tdr_kins.x-offset
|
||||
HALCMD = net :z-offset xyzab_tdr_kins.z-offset
|
||||
HALCMD = net :x-rot-point xyzab_tdr_kins.x-rot-point
|
||||
HALCMD = net :y-rot-point xyzab_tdr_kins.y-rot-point
|
||||
HALCMD = net :z-rot-point xyzab_tdr_kins.z-rot-point
|
||||
|
||||
# This is only used to preset the vismach model to the default values as set
|
||||
# in the xml scale widgets
|
||||
# These will be overwritten by the values in the xml
|
||||
HALCMD = sets :x-offset -20
|
||||
HALCMD = sets :z-offset -10
|
||||
|
||||
[HALUI]
|
||||
# M429:identity kins (motion.switchkins-type==0 startupDEFAULT)
|
||||
# M428:xyzab-tdr kins (motion.switchkins-type==1)
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M428
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = XYZAB
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = deg
|
||||
DEFAULT_LINEAR_VELOCITY = 20
|
||||
MAX_LINEAR_VELOCITY = 35
|
||||
MAX_LINEAR_ACCELERATION = 400
|
||||
DEFAULT_LINEAR_ACCELERATION = 300
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
SERVO_PERIOD = 1000000
|
||||
COMM_TIMEOUT = 1
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = xyzab-tdr.tbl
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -300
|
||||
MAX_LIMIT = 300
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_A]
|
||||
MIN_LIMIT = -3600
|
||||
MAX_LIMIT = 3600
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_B]
|
||||
MIN_LIMIT = -180
|
||||
MAX_LIMIT = 180
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -300
|
||||
MAX_LIMIT = 300
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -3600
|
||||
MAX_LIMIT = 3600
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_4]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -180
|
||||
MAX_LIMIT = 180
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
4
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl
vendored
Normal file
4
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.tbl
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
T1 P1 D1
|
||||
T2 P2 Z30 D3
|
||||
T3 P3 Z40 D4
|
||||
T4 P4 Z50 D5
|
||||
119
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var
vendored
Normal file
119
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
5161 0.000000
|
||||
5162 0.000000
|
||||
5163 0.000000
|
||||
5164 0.000000
|
||||
5165 0.000000
|
||||
5166 0.000000
|
||||
5167 0.000000
|
||||
5168 0.000000
|
||||
5169 0.000000
|
||||
5181 0.000000
|
||||
5182 0.000000
|
||||
5183 0.000000
|
||||
5184 0.000000
|
||||
5185 0.000000
|
||||
5186 0.000000
|
||||
5187 0.000000
|
||||
5188 0.000000
|
||||
5189 0.000000
|
||||
5210 0.000000
|
||||
5211 0.000000
|
||||
5212 0.000000
|
||||
5213 0.000000
|
||||
5214 0.000000
|
||||
5215 0.000000
|
||||
5216 0.000000
|
||||
5217 0.000000
|
||||
5218 0.000000
|
||||
5219 0.000000
|
||||
5220 1.000000
|
||||
5221 -70.000000
|
||||
5222 -50.000000
|
||||
5223 -110.000000
|
||||
5224 0.000000
|
||||
5225 0.000000
|
||||
5226 0.000000
|
||||
5227 0.000000
|
||||
5228 0.000000
|
||||
5229 0.000000
|
||||
5230 0.000000
|
||||
5241 0.000000
|
||||
5242 0.000000
|
||||
5243 0.000000
|
||||
5244 0.000000
|
||||
5245 0.000000
|
||||
5246 0.000000
|
||||
5247 0.000000
|
||||
5248 0.000000
|
||||
5249 0.000000
|
||||
5250 0.000000
|
||||
5261 0.000000
|
||||
5262 0.000000
|
||||
5263 0.000000
|
||||
5264 0.000000
|
||||
5265 0.000000
|
||||
5266 0.000000
|
||||
5267 0.000000
|
||||
5268 0.000000
|
||||
5269 0.000000
|
||||
5270 0.000000
|
||||
5281 0.000000
|
||||
5282 0.000000
|
||||
5283 0.000000
|
||||
5284 0.000000
|
||||
5285 0.000000
|
||||
5286 0.000000
|
||||
5287 0.000000
|
||||
5288 0.000000
|
||||
5289 0.000000
|
||||
5290 0.000000
|
||||
5301 0.000000
|
||||
5302 0.000000
|
||||
5303 0.000000
|
||||
5304 0.000000
|
||||
5305 0.000000
|
||||
5306 0.000000
|
||||
5307 0.000000
|
||||
5308 0.000000
|
||||
5309 0.000000
|
||||
5310 0.000000
|
||||
5321 0.000000
|
||||
5322 0.000000
|
||||
5323 0.000000
|
||||
5324 0.000000
|
||||
5325 0.000000
|
||||
5326 0.000000
|
||||
5327 0.000000
|
||||
5328 0.000000
|
||||
5329 0.000000
|
||||
5330 0.000000
|
||||
5341 0.000000
|
||||
5342 0.000000
|
||||
5343 0.000000
|
||||
5344 0.000000
|
||||
5345 0.000000
|
||||
5346 0.000000
|
||||
5347 0.000000
|
||||
5348 0.000000
|
||||
5349 0.000000
|
||||
5350 0.000000
|
||||
5361 0.000000
|
||||
5362 0.000000
|
||||
5363 0.000000
|
||||
5364 0.000000
|
||||
5365 0.000000
|
||||
5366 0.000000
|
||||
5367 0.000000
|
||||
5368 0.000000
|
||||
5369 0.000000
|
||||
5370 0.000000
|
||||
5381 0.000000
|
||||
5382 0.000000
|
||||
5383 0.000000
|
||||
5384 0.000000
|
||||
5385 0.000000
|
||||
5386 0.000000
|
||||
5387 0.000000
|
||||
5388 0.000000
|
||||
5389 0.000000
|
||||
5390 0.000000
|
||||
119
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var.bak
vendored
Normal file
119
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.var.bak
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
5161 0.000000
|
||||
5162 0.000000
|
||||
5163 0.000000
|
||||
5164 0.000000
|
||||
5165 0.000000
|
||||
5166 0.000000
|
||||
5167 0.000000
|
||||
5168 0.000000
|
||||
5169 0.000000
|
||||
5181 0.000000
|
||||
5182 0.000000
|
||||
5183 0.000000
|
||||
5184 0.000000
|
||||
5185 0.000000
|
||||
5186 0.000000
|
||||
5187 0.000000
|
||||
5188 0.000000
|
||||
5189 0.000000
|
||||
5210 0.000000
|
||||
5211 0.000000
|
||||
5212 0.000000
|
||||
5213 0.000000
|
||||
5214 0.000000
|
||||
5215 0.000000
|
||||
5216 0.000000
|
||||
5217 0.000000
|
||||
5218 0.000000
|
||||
5219 0.000000
|
||||
5220 1.000000
|
||||
5221 -70.000000
|
||||
5222 -50.000000
|
||||
5223 -110.000000
|
||||
5224 0.000000
|
||||
5225 0.000000
|
||||
5226 0.000000
|
||||
5227 0.000000
|
||||
5228 0.000000
|
||||
5229 0.000000
|
||||
5230 0.000000
|
||||
5241 0.000000
|
||||
5242 0.000000
|
||||
5243 0.000000
|
||||
5244 0.000000
|
||||
5245 0.000000
|
||||
5246 0.000000
|
||||
5247 0.000000
|
||||
5248 0.000000
|
||||
5249 0.000000
|
||||
5250 0.000000
|
||||
5261 0.000000
|
||||
5262 0.000000
|
||||
5263 0.000000
|
||||
5264 0.000000
|
||||
5265 0.000000
|
||||
5266 0.000000
|
||||
5267 0.000000
|
||||
5268 0.000000
|
||||
5269 0.000000
|
||||
5270 0.000000
|
||||
5281 0.000000
|
||||
5282 0.000000
|
||||
5283 0.000000
|
||||
5284 0.000000
|
||||
5285 0.000000
|
||||
5286 0.000000
|
||||
5287 0.000000
|
||||
5288 0.000000
|
||||
5289 0.000000
|
||||
5290 0.000000
|
||||
5301 0.000000
|
||||
5302 0.000000
|
||||
5303 0.000000
|
||||
5304 0.000000
|
||||
5305 0.000000
|
||||
5306 0.000000
|
||||
5307 0.000000
|
||||
5308 0.000000
|
||||
5309 0.000000
|
||||
5310 0.000000
|
||||
5321 0.000000
|
||||
5322 0.000000
|
||||
5323 0.000000
|
||||
5324 0.000000
|
||||
5325 0.000000
|
||||
5326 0.000000
|
||||
5327 0.000000
|
||||
5328 0.000000
|
||||
5329 0.000000
|
||||
5330 0.000000
|
||||
5341 0.000000
|
||||
5342 0.000000
|
||||
5343 0.000000
|
||||
5344 0.000000
|
||||
5345 0.000000
|
||||
5346 0.000000
|
||||
5347 0.000000
|
||||
5348 0.000000
|
||||
5349 0.000000
|
||||
5350 0.000000
|
||||
5361 0.000000
|
||||
5362 0.000000
|
||||
5363 0.000000
|
||||
5364 0.000000
|
||||
5365 0.000000
|
||||
5366 0.000000
|
||||
5367 0.000000
|
||||
5368 0.000000
|
||||
5369 0.000000
|
||||
5370 0.000000
|
||||
5381 0.000000
|
||||
5382 0.000000
|
||||
5383 0.000000
|
||||
5384 0.000000
|
||||
5385 0.000000
|
||||
5386 0.000000
|
||||
5387 0.000000
|
||||
5388 0.000000
|
||||
5389 0.000000
|
||||
5390 0.000000
|
||||
325
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.xml
vendored
Normal file
325
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.xml
vendored
Normal file
@@ -0,0 +1,325 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pyvcp>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<multilabel>
|
||||
<legends>["0:IDENTITY", "1: XYZAB ", "2: USERK "]</legends>
|
||||
<font>("Helvetica",16)</font>
|
||||
<bg>"black"</bg>
|
||||
<fg>"yellow"</fg>
|
||||
</multilabel>
|
||||
<button>
|
||||
<halpin>"type0-button"</halpin>
|
||||
<text>"IDENTITY"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type1-button"</halpin>
|
||||
<text>"TCP:XYZAB"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
<!-- create a space to the next element -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",4)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<labelframe text="Joint position">
|
||||
<font>("Helvetica",14)</font>
|
||||
<hbox>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"0: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint0"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"1: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint1"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"2: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint2"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"3: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint3"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"4: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint4"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"5: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<number>
|
||||
<halpin>"joint5"</halpin>
|
||||
<font>("Helvetica",10)</font>
|
||||
<format>"4.4f"</format>
|
||||
</number>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
</vbox>
|
||||
<!-- create a space to the next element -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",4)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<button>
|
||||
<halpin>"vismach-clear"</halpin>
|
||||
<text>"vismach-clear"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
<!-- create a space to the next element -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",4)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<labelframe text="Rotary Assembly Offset">
|
||||
<font>("Helvetica",14)</font>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"x-offset: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<scale>
|
||||
<font>("Helvetica",10)</font>
|
||||
<width>"15"</width>
|
||||
<halpin>"x-offset"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>-20</initval>
|
||||
<min_>-50</min_>
|
||||
<max_>50</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"z-offset: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<scale>
|
||||
<font>("Helvetica",10)</font>
|
||||
<width>"15"</width>
|
||||
<halpin>"z-offset"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>-10</initval>
|
||||
<min_>-50</min_>
|
||||
<max_>50</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"Use hover + mouse wheel to change values"</text>
|
||||
<font>("Helvetica",6)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
</vbox>
|
||||
<!-- create a space to the next element -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",4)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<labelframe text="Rotation Point Offset">
|
||||
<font>("Helvetica",14)</font>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" This should demonstrate that TCP kinematics\n require the 'rot-point' settings (yellow)\n to match the physical location\n of the rotation-point (red)."</text>
|
||||
<font>("Helvetica",8)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>"Physical location of rotation-point in the model\n in absolute machine coordinates:"</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>" x: -50\n y: -50\n z: -100"</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>"these are also the correct 'rot-point' settings\n for this model"</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"x-rot-point: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<scale>
|
||||
<font>("Helvetica",10)</font>
|
||||
<width>"15"</width>
|
||||
<halpin>"x-rot-point"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>-50</initval>
|
||||
<min_>-55</min_>
|
||||
<max_>-45</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"y-rot-point: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<scale>
|
||||
<font>("Helvetica",10)</font>
|
||||
<width>"15"</width>
|
||||
<halpin>"y-rot-point"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>-50</initval>
|
||||
<min_>-55</min_>
|
||||
<max_>-45</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"z-rot-point: "</text>
|
||||
<font>("Helvetica",10)</font>
|
||||
</label>
|
||||
<scale>
|
||||
<font>("Helvetica",10)</font>
|
||||
<width>"15"</width>
|
||||
<halpin>"z-rot-point"</halpin>
|
||||
<resolution>1</resolution>
|
||||
<orient>HORIZONTAL</orient>
|
||||
<initval>-100</initval>
|
||||
<min_>-105</min_>
|
||||
<max_>-95</max_>
|
||||
</scale>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<font>("Helvetica",8)</font>
|
||||
<text>" "</text>
|
||||
</label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>"Use hover + mouse wheel to change values"</text>
|
||||
<font>("Helvetica",6)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</labelframe>
|
||||
</vbox>
|
||||
<!-- create a space to the next element -->
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" "</text>
|
||||
<font>("Helvetica",4)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label>
|
||||
<text>" FOR PROPER TOOL-PATH PREVIEW \n RELOAD AND RESTART THE\n GCODE AFTER STARTUP AND\n AFTER CHANGING OFFSETS!"</text>
|
||||
<font>("Helvetica",9)</font>
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
</pyvcp>
|
||||
207
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr_cmds.hal
vendored
Normal file
207
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr_cmds.hal
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
# Sat Jun 06 15:59:10 CST 2026
|
||||
#
|
||||
# This file: ./xyzab-tdr_cmds.hal
|
||||
# Created by: /home/cnc/桌面/cnc_wams/linuxcnc/lib/hallib/basic_sim.tcl
|
||||
# With options:
|
||||
# From inifile: /home/cnc/桌面/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini
|
||||
# Halfiles: LIB:basic_sim.tcl
|
||||
#
|
||||
# This file contains the hal commands produced by basic_sim.tcl
|
||||
# (and any hal commands executed prior to its execution).
|
||||
# ------------------------------------------------------------------
|
||||
# To use ./xyzab-tdr_cmds.hal in the original inifile (or a copy of it),
|
||||
# edit to change:
|
||||
# [HAL]
|
||||
# HALFILE = LIB:basic_sim.tcl parameters
|
||||
# to:
|
||||
# [HAL]
|
||||
# HALFILE = ./xyzab-tdr_cmds.hal
|
||||
#
|
||||
# Notes:
|
||||
# 1) Inifile Variables substitutions specified in the inifile
|
||||
# and interpreted by halcmd are automatically substituted
|
||||
# in the created halfile (./xyzab-tdr_cmds.hal).
|
||||
# 2) Input pins connected to a signal with no writer are
|
||||
# not included in the setp listings herein so must be added
|
||||
# manually
|
||||
#
|
||||
|
||||
# user space components
|
||||
loadusr -W hal_manualtoolchange
|
||||
|
||||
# components
|
||||
#preloaded module: loadrt tpmod
|
||||
#preloaded module: loadrt homemod
|
||||
loadrt xyzab_tdr_kins
|
||||
loadrt motmod base_period_nsec=0 servo_period_nsec=1000000 num_joints=5
|
||||
#loadrt __servo-thread (not loaded by loadrt, no args saved)
|
||||
loadrt pid names=J0_pid,J1_pid,J2_pid,J3_pid,J4_pid
|
||||
loadrt mux2 names=J0_mux,J1_mux,J2_mux,J3_mux,J4_mux
|
||||
loadrt ddt names=J0_vel,J0_accel,J1_vel,J1_accel,J2_vel,J2_accel,J3_vel,J3_accel,J4_vel,J4_accel
|
||||
loadrt sim_home_switch names=J0_switch,J1_switch,J2_switch,J3_switch,J4_switch
|
||||
loadrt sim_spindle names=sim_spindle
|
||||
loadrt limit2 names=limit_speed
|
||||
loadrt lowpass names=spindle_mass
|
||||
loadrt near names=near_speed
|
||||
loadrt scale names=rpm_rps
|
||||
# pin aliases
|
||||
# param aliases
|
||||
# signals
|
||||
# nets
|
||||
net J0:acc J0_accel.out
|
||||
net J0:enable joint.0.amp-enable-out => J0_pid.enable
|
||||
net J0:homesw J0_switch.home-sw => joint.0.home-sw-in
|
||||
net J0:on-pos J0_pid.output => J0_mux.in1
|
||||
net J0:pos-cmd joint.0.motor-pos-cmd => J0_pid.command
|
||||
net J0:pos-fb J0_mux.out => J0_mux.in0 J0_switch.cur-pos J0_vel.in joint.0.motor-pos-fb
|
||||
net J0:vel J0_vel.out => J0_accel.in
|
||||
net J1:acc J1_accel.out
|
||||
net J1:enable joint.1.amp-enable-out => J1_pid.enable
|
||||
net J1:homesw J1_switch.home-sw => joint.1.home-sw-in
|
||||
net J1:on-pos J1_pid.output => J1_mux.in1
|
||||
net J1:pos-cmd joint.1.motor-pos-cmd => J1_pid.command
|
||||
net J1:pos-fb J1_mux.out => J1_mux.in0 J1_switch.cur-pos J1_vel.in joint.1.motor-pos-fb
|
||||
net J1:vel J1_vel.out => J1_accel.in
|
||||
net J2:acc J2_accel.out
|
||||
net J2:enable joint.2.amp-enable-out => J2_pid.enable
|
||||
net J2:homesw J2_switch.home-sw => joint.2.home-sw-in
|
||||
net J2:on-pos J2_pid.output => J2_mux.in1
|
||||
net J2:pos-cmd joint.2.motor-pos-cmd => J2_pid.command
|
||||
net J2:pos-fb J2_mux.out => J2_mux.in0 J2_switch.cur-pos J2_vel.in joint.2.motor-pos-fb
|
||||
net J2:vel J2_vel.out => J2_accel.in
|
||||
net J3:acc J3_accel.out
|
||||
net J3:enable joint.3.amp-enable-out => J3_pid.enable
|
||||
net J3:homesw J3_switch.home-sw => joint.3.home-sw-in
|
||||
net J3:on-pos J3_pid.output => J3_mux.in1
|
||||
net J3:pos-cmd joint.3.motor-pos-cmd => J3_pid.command
|
||||
net J3:pos-fb J3_mux.out => J3_mux.in0 J3_switch.cur-pos J3_vel.in joint.3.motor-pos-fb
|
||||
net J3:vel J3_vel.out => J3_accel.in
|
||||
net J4:acc J4_accel.out
|
||||
net J4:enable joint.4.amp-enable-out => J4_pid.enable
|
||||
net J4:homesw J4_switch.home-sw => joint.4.home-sw-in
|
||||
net J4:on-pos J4_pid.output => J4_mux.in1
|
||||
net J4:pos-cmd joint.4.motor-pos-cmd => J4_pid.command
|
||||
net J4:pos-fb J4_mux.out => J4_mux.in0 J4_switch.cur-pos J4_vel.in joint.4.motor-pos-fb
|
||||
net J4:vel J4_vel.out => J4_accel.in
|
||||
net estop:loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
|
||||
net sample:enable motion.motion-enabled => J0_mux.sel J1_mux.sel J2_mux.sel J3_mux.sel J4_mux.sel
|
||||
net spindle-at-speed near_speed.out => spindle.0.at-speed
|
||||
net spindle-index-enable sim_spindle.index-enable <=> spindle.0.index-enable
|
||||
net spindle-orient spindle.0.orient => spindle.0.is-oriented
|
||||
net spindle-pos sim_spindle.position-fb => spindle.0.revs
|
||||
net spindle-rpm-filtered spindle_mass.out => near_speed.in2 rpm_rps.in
|
||||
net spindle-rps-filtered rpm_rps.out => spindle.0.speed-in
|
||||
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in near_speed.in1
|
||||
net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in
|
||||
net tool:change iocontrol.0.tool-change => hal_manualtoolchange.change
|
||||
net tool:changed hal_manualtoolchange.changed => iocontrol.0.tool-changed
|
||||
net tool:prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool:prep-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
||||
# parameter values
|
||||
setp J0_accel.tmax 0
|
||||
setp J0_mux.tmax 0
|
||||
setp J0_pid.do-pid-calcs.tmax 0
|
||||
setp J0_switch.tmax 0
|
||||
setp J0_vel.tmax 0
|
||||
setp J1_accel.tmax 0
|
||||
setp J1_mux.tmax 0
|
||||
setp J1_pid.do-pid-calcs.tmax 0
|
||||
setp J1_switch.tmax 0
|
||||
setp J1_vel.tmax 0
|
||||
setp J2_accel.tmax 0
|
||||
setp J2_mux.tmax 0
|
||||
setp J2_pid.do-pid-calcs.tmax 0
|
||||
setp J2_switch.tmax 0
|
||||
setp J2_vel.tmax 0
|
||||
setp J3_accel.tmax 0
|
||||
setp J3_mux.tmax 0
|
||||
setp J3_pid.do-pid-calcs.tmax 0
|
||||
setp J3_switch.tmax 0
|
||||
setp J3_vel.tmax 0
|
||||
setp J4_accel.tmax 0
|
||||
setp J4_mux.tmax 0
|
||||
setp J4_pid.do-pid-calcs.tmax 0
|
||||
setp J4_switch.tmax 0
|
||||
setp J4_vel.tmax 0
|
||||
setp limit_speed.tmax 0
|
||||
setp motion-command-handler.tmax 0
|
||||
setp motion-controller.tmax 0
|
||||
setp near_speed.difference 10
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.tmax 0
|
||||
setp rpm_rps.tmax 0
|
||||
setp servo-thread.tmax 0
|
||||
setp sim_spindle.scale 0.01666667
|
||||
setp sim_spindle.tmax 0
|
||||
setp spindle_mass.gain 0.07
|
||||
setp spindle_mass.tmax 0
|
||||
# realtime thread/function links
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf J0_pid.do-pid-calcs servo-thread
|
||||
addf J1_pid.do-pid-calcs servo-thread
|
||||
addf J2_pid.do-pid-calcs servo-thread
|
||||
addf J3_pid.do-pid-calcs servo-thread
|
||||
addf J4_pid.do-pid-calcs servo-thread
|
||||
addf J0_mux servo-thread
|
||||
addf J1_mux servo-thread
|
||||
addf J2_mux servo-thread
|
||||
addf J3_mux servo-thread
|
||||
addf J4_mux servo-thread
|
||||
addf J0_vel servo-thread
|
||||
addf J0_accel servo-thread
|
||||
addf J1_vel servo-thread
|
||||
addf J1_accel servo-thread
|
||||
addf J2_vel servo-thread
|
||||
addf J2_accel servo-thread
|
||||
addf J3_vel servo-thread
|
||||
addf J3_accel servo-thread
|
||||
addf J4_vel servo-thread
|
||||
addf J4_accel servo-thread
|
||||
addf J0_switch servo-thread
|
||||
addf J1_switch servo-thread
|
||||
addf J2_switch servo-thread
|
||||
addf J3_switch servo-thread
|
||||
addf J4_switch servo-thread
|
||||
addf limit_speed servo-thread
|
||||
addf spindle_mass servo-thread
|
||||
addf rpm_rps servo-thread
|
||||
addf near_speed servo-thread
|
||||
addf sim_spindle servo-thread
|
||||
|
||||
# setp commands for unconnected input pins
|
||||
setp J0_pid.FF0 1.0
|
||||
setp J0_pid.Pgain 0
|
||||
setp J0_pid.Dgain 0
|
||||
setp J0_pid.Igain 0
|
||||
setp J0_pid.FF1 0
|
||||
setp J0_pid.FF2 0
|
||||
setp J1_pid.FF0 1.0
|
||||
setp J1_pid.Pgain 0
|
||||
setp J1_pid.Dgain 0
|
||||
setp J1_pid.Igain 0
|
||||
setp J1_pid.FF1 0
|
||||
setp J1_pid.FF2 0
|
||||
setp J2_pid.FF0 1.0
|
||||
setp J2_pid.Pgain 0
|
||||
setp J2_pid.Dgain 0
|
||||
setp J2_pid.Igain 0
|
||||
setp J2_pid.FF1 0
|
||||
setp J2_pid.FF2 0
|
||||
setp J3_pid.FF0 1.0
|
||||
setp J3_pid.Pgain 0
|
||||
setp J3_pid.Dgain 0
|
||||
setp J3_pid.Igain 0
|
||||
setp J3_pid.FF1 0
|
||||
setp J3_pid.FF2 0
|
||||
setp J4_pid.FF0 1.0
|
||||
setp J4_pid.Pgain 0
|
||||
setp J4_pid.Dgain 0
|
||||
setp J4_pid.Igain 0
|
||||
setp J4_pid.FF1 0
|
||||
setp J4_pid.FF2 0
|
||||
setp sim_spindle.scale 0.01666667
|
||||
setp limit_speed.maxv 5000.0
|
||||
setp spindle_mass.gain .07
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.difference 10
|
||||
32
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/README
vendored
Normal file
32
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/README
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
Switchable Table Rotary/Tilting (trt) Sim configs
|
||||
|
||||
xyzac-trt-switchkins
|
||||
xyzbc-trt-switchkins
|
||||
|
||||
Demonstrations:
|
||||
demos/xyzac_switchkins.ngc
|
||||
demos/xyzac_switchkins_test_1.ngc
|
||||
demos/xyzac_switchkins_test_2.ngc
|
||||
demos/xyzac_switchkins_test_3.ngc
|
||||
demos/boat-xyzac.ngc
|
||||
demos/impeller-7bl-xyzac.ngc
|
||||
|
||||
demos/xyzbc_switchkins.ngc
|
||||
demos/boat-xyzbc.ngc
|
||||
|
||||
***********************************************
|
||||
Note: IMPORTANT ini file requirements:
|
||||
|
||||
[HAL]
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-0N => motion.switchkins-type
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
|
||||
[HALUI]
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M428
|
||||
MDI_COMMAND = M430
|
||||
***********************************************
|
||||
1881
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc
vendored
Normal file
1881
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1867
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc
vendored
Normal file
1867
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc
vendored
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
; zmax zmin r frate n a b c dist
|
||||
o<xyzac_switchkins_sub> call [10] [5] [10][1000][3][20][0][45][20]
|
||||
m2
|
||||
@@ -0,0 +1,39 @@
|
||||
; for debugging, use mdi to set global #<_switchkins_debug>=1
|
||||
|
||||
#<FRATE>=1000
|
||||
M429
|
||||
G0 X0 Y0 Z0 A0 C0
|
||||
G0 C90 X10 Y0
|
||||
G1 F#<FRATE> Z2
|
||||
|
||||
M428
|
||||
G1 F#<FRATE> Z0
|
||||
|
||||
M429
|
||||
G1 F#<FRATE> Z2
|
||||
G0 C90 X0 Y10
|
||||
G1 F#<FRATE> Z0
|
||||
|
||||
M428
|
||||
G1 F#<FRATE> Z2
|
||||
|
||||
M429
|
||||
G1 F#<FRATE> Z0
|
||||
G0 C90 X10 Y30
|
||||
G1 F#<FRATE> Z2
|
||||
|
||||
M428
|
||||
G1 F#<FRATE> Z0
|
||||
|
||||
M429
|
||||
G1 F#<FRATE> Z2
|
||||
G0 C90 X30 Y10
|
||||
G1 F#<FRATE> Z0
|
||||
|
||||
M428
|
||||
G1 F#<FRATE> Z2
|
||||
M429
|
||||
G1 F#<FRATE> Z0
|
||||
|
||||
G0 X0 Y0 Z0 A0 C0
|
||||
M2
|
||||
@@ -0,0 +1,49 @@
|
||||
; for debugging, use mdi to set global #<_switchkins_debug>=1
|
||||
|
||||
#<FRATE>=1000
|
||||
M429 ;Trivkins
|
||||
G64 P0.01
|
||||
S1500 M3
|
||||
G0 X0 Y0 Z5 A0 C0
|
||||
G1 F#<FRATE> Z0
|
||||
G1 X20 Y0 F#<FRATE>
|
||||
|
||||
M428 ;XYZAC
|
||||
G1 C90
|
||||
G1 X20
|
||||
G1 Y20
|
||||
G1 X0
|
||||
G1 Y0
|
||||
G1 A20
|
||||
G1 X-20
|
||||
G1 Y-20
|
||||
G1 X0
|
||||
G1 Y0
|
||||
|
||||
(-------)
|
||||
G1 C45
|
||||
G1 X-15
|
||||
G1 Y15
|
||||
G1 X0
|
||||
G1 Y0
|
||||
G1 Y-15
|
||||
G1 X15
|
||||
G1 Y0
|
||||
G1 X0
|
||||
|
||||
(-------)
|
||||
G1 C90 X15
|
||||
G1 C180 Y15
|
||||
G1 C270 X0
|
||||
G1 C360 Y0
|
||||
G1 C0
|
||||
G1 C-90 X-15
|
||||
G1 C-180 Y-15
|
||||
G1 C-270 X0
|
||||
G1 C-360 Y0
|
||||
G1 Z5
|
||||
|
||||
M429 ;Trivkins
|
||||
|
||||
G1 X0 Y0 Z1 A0 C0
|
||||
M2
|
||||
@@ -0,0 +1,15 @@
|
||||
;# enable optional stop for m1
|
||||
m429 ;trivkins
|
||||
G0 X0 Y0 Z0 A0 C0
|
||||
G0 C90 X10 Y0
|
||||
G1 F1000 Z2
|
||||
(debug,A expect: 10 0 2) m1
|
||||
(debug,B expect: 10 0 2) m1
|
||||
m428 ;tcp
|
||||
(debug,C expect: 0 -10 2) m1
|
||||
g1f1000 z0
|
||||
(debug,D expect: 0 -10 0) m1
|
||||
(debug,E expect: 0 -10 0) m1
|
||||
m429 ;trivkins
|
||||
(debug,F expect: 10 0 0)
|
||||
m2
|
||||
@@ -0,0 +1,3 @@
|
||||
; zmax zmin r frate n a b c dist
|
||||
o<xyzbc_switchkins_sub> call [10] [5] [10][1000][3][0][20][45][20]
|
||||
m2
|
||||
@@ -0,0 +1,24 @@
|
||||
;M428 by remap: kinstype==1 (xyzac,xyzbc) (note: sparm=identityfirst)
|
||||
o<428remap>sub
|
||||
#<kinstype> = 1 ; xyzac,xyzbc
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M428:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M428: Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<428remap>endsub
|
||||
@@ -0,0 +1,24 @@
|
||||
;M429 by remap: kinstype==0 Identity kinematics
|
||||
o<429remap>sub
|
||||
#<kinstype> = 0
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M429:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M429:Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<429remap>endsub
|
||||
@@ -0,0 +1,24 @@
|
||||
;M430 by remap: kinstype==2 userk kins
|
||||
o<430remap>sub
|
||||
#<kinstype> = 2
|
||||
#<SWITCHKINS_PIN> = 3 ; set N as required: motion.analog-out-0N
|
||||
|
||||
o1 if [exists [#<_hal[motion.switchkins-type]>]]
|
||||
o1 else
|
||||
(debug,M430:Missing [RS274NGC]HAL_PIN_VARS=1)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o1 endif
|
||||
|
||||
M68 E#<SWITCHKINS_PIN> Q#<kinstype> ; set kinstype value
|
||||
M66 E0 L0 ; force synch
|
||||
|
||||
o2 if [[#<_task> EQ 1] AND [#<_hal[motion.switchkins-type]> NE #<kinstype>]]
|
||||
(debug,M430:Wrong motion.switchkins-type)
|
||||
(debug,or missing hal net to analog-out-0x)
|
||||
(debug,STOP)
|
||||
M2
|
||||
o2 else
|
||||
o2 endif
|
||||
|
||||
o<430remap>endsub
|
||||
@@ -0,0 +1,42 @@
|
||||
(info: tests for values of [xyz]-rot-point)
|
||||
o<centering>sub
|
||||
#<xstart> = #1 (=-2.5)
|
||||
#<ystart> = #2 (=-2.5)
|
||||
#<xlen> = #3 (= 5)
|
||||
#<ylen> = #4 (= 5)
|
||||
#<zfinal> = #5 (=60)
|
||||
#<n> = #6 (=12)
|
||||
#<f> = #7 (=1000 feed)
|
||||
#<angle> = 0
|
||||
#<delta_angle> = [360/#<n>]
|
||||
|
||||
o1 if [exists [#<_hal[xyzac-trt-kins.x-rot-point]>]]
|
||||
(debug,x-rot-point=#<_hal[xyzac-trt-kins.x-rot-point]>)
|
||||
(debug,y-rot-point=#<_hal[xyzac-trt-kins.y-rot-point]>)
|
||||
(debug,z-rot-point=#<_hal[xyzac-trt-kins.z-rot-point]>)
|
||||
o1 endif
|
||||
o2 if [exists [#<_hal[xyzbc-trt-kins.x-rot-point]>]]
|
||||
(debug,x-rot-point=#<_hal[xyzbc-trt-kins.x-rot-point]>)
|
||||
(debug,y-rot-point=#<_hal[xyzbc-trt-kins.y-rot-point]>)
|
||||
(debug,z-rot-point=#<_hal[xyzac-trt-kins.z-rot-point]>)
|
||||
o2 endif
|
||||
|
||||
M429 ;Identity kinematics
|
||||
g0 x#<xstart> y#<ystart> z0 c0
|
||||
M428 ;tcp
|
||||
|
||||
g61
|
||||
o10 while [#<angle> le 360]
|
||||
g1 f#<f>
|
||||
#<angle> = [#<angle> + #<delta_angle>]
|
||||
g0 c#<angle>
|
||||
g1 x[#<xstart> + #<xlen>]
|
||||
g1 y[#<ystart> + #<ylen>]
|
||||
g1 x[#<xstart> + 0 ]
|
||||
g1 y[#<ystart> + 0 ]
|
||||
o10 endwhile
|
||||
|
||||
|
||||
M429 ;Identity kinematics
|
||||
g0 x0 y0 z#<zfinal> c0
|
||||
o<centering>endsub
|
||||
@@ -0,0 +1,22 @@
|
||||
; helix using switchkins (xyzac) a,c angles
|
||||
o<helix_ac>sub
|
||||
#<zmax> = #1 (=10)
|
||||
#<zmin> = #2 (= 5)
|
||||
#<r> = #3 (=10)
|
||||
#<frate> = #4 (=1000)
|
||||
#<n> = #5 (=3)
|
||||
#<a> = #6 (=45)
|
||||
#<b> = #7 (=0 NA)
|
||||
#<c> = #8 (=20)
|
||||
|
||||
M429 ;Identity kinematics
|
||||
g0 x[#<_x> - #<r>] ;adjust for radius
|
||||
g10l20p0 x0y0 z#<zmax> a0 c0 ;new g54
|
||||
M428 ;XYZAC
|
||||
g0a#<a>c#<c> ;exercise a,c
|
||||
f#<frate> g2i#<r>z#<zmin> p#<n> ;helix
|
||||
M429 ;Identity kinematics
|
||||
g0 x0 y0 z#<zmax> a0 c0 ;return to start
|
||||
g0 x[#<_x> + #<r>] ;adjust restore
|
||||
M428 ;XYZAC
|
||||
o<helix_ac>endsub
|
||||
@@ -0,0 +1,22 @@
|
||||
; helix using switchkins (xyzbc) b,c angles
|
||||
o<helix_bc>sub
|
||||
#<zmax> = #1 (=10)
|
||||
#<zmin> = #2 (= 5)
|
||||
#<r> = #3 (=10)
|
||||
#<frate> = #4 (=1000)
|
||||
#<n> = #5 (=3)
|
||||
#<a> = #6 (=0 NA)
|
||||
#<b> = #7 (=45)
|
||||
#<c> = #8 (=20)
|
||||
|
||||
M429 ;Identity kinematics
|
||||
g0 x[#<_x> - #<r>] ;adjust for radius
|
||||
g10l20p0 x0y0 z#<zmax> b0 c0 ;new g54
|
||||
M428 ;XYZBC
|
||||
g0b#<b>c#<c> ;exercise b,c
|
||||
f#<frate> g2i#<r>z#<zmin> p#<n> ;helix
|
||||
M429 ;Identity kinematics
|
||||
g0 x0 y0 z#<zmax> b0 c0 ;return to start
|
||||
g0 x[#<_x> + #<r>] ;adjust restore
|
||||
M428 ;XYZBC
|
||||
o<helix_bc>endsub
|
||||
@@ -0,0 +1,47 @@
|
||||
; ngcgui-compatible subroutine
|
||||
(info: helix in each quadrant at angles A,C)
|
||||
o<xyzac_switchkins_sub>sub
|
||||
#<zmax> = #1 (=10)
|
||||
#<zmin> = #2 (= 5)
|
||||
#<r> = #3 (=10 radius)
|
||||
#<frate> = #4 (=1000 feedrate)
|
||||
#<n> = #5 (=3 n circles)
|
||||
#<a> = #6 (=30 A angle)
|
||||
#<b> = #7 (=0 B angle NA)
|
||||
#<c> = #8 (=45 C angle)
|
||||
#<dist> = #9 (=20 distance)
|
||||
|
||||
; quadrant I
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> a0 c0 ;MACHINE coordinates
|
||||
g10l20p0 x0y0 z#<zmax> a0 c0 ;new g54
|
||||
g0 x+#<dist> y+#<dist> z#<zmax> ;move to pattern center position
|
||||
o<helix_ac> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant II
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> a0 c0
|
||||
g10l20p0 x0y0 z#<zmax> a0 c0
|
||||
g0 x-#<dist> y+#<dist> z#<zmax>
|
||||
o<helix_ac> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant III
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> a0 c0
|
||||
g10l20p0 x0y0 z#<zmax> a0 c0
|
||||
g0 x-#<dist> y-#<dist> z#<zmax>
|
||||
o<helix_ac> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant IV
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> a0 c0
|
||||
g10l20p0 x0y0 z#<zmax> a0 c0
|
||||
g0 x+#<dist> y-#<dist> z#<zmax>
|
||||
o<helix_ac> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
;final position
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> ;MACHINE coordinates
|
||||
g10l20p0 x0y0 z#<zmax> ;new g54
|
||||
|
||||
o<xyzac_switchkins_sub>endsub
|
||||
@@ -0,0 +1,47 @@
|
||||
; ngcgui-compatible subroutine
|
||||
(info: helix in each quadrant at angles B,C)
|
||||
o<xyzbc_switchkins_sub>sub
|
||||
#<zmax> = #1 (=10)
|
||||
#<zmin> = #2 (= 5)
|
||||
#<r> = #3 (=10 radius)
|
||||
#<frate> = #4 (=1000 feedrate)
|
||||
#<n> = #5 (=3 n circles)
|
||||
#<a> = #6 (=0 A angle NA)
|
||||
#<b> = #7 (=30 B angle)
|
||||
#<c> = #8 (=45 C angle)
|
||||
#<dist> = #9 (=20 distance)
|
||||
|
||||
; quadrant I
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> b0 c0 ;MACHINE coordinates
|
||||
g10l20p0 x0y0 z#<zmax> b0 c0 ;new g54
|
||||
g0 x+#<dist> y+#<dist> z#<zmax> ;move to pattern center position
|
||||
o<helix_bc> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant II
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> b0 c0
|
||||
g10l20p0 x0y0 z#<zmax> b0 c0
|
||||
g0 x-#<dist> y+#<dist> z#<zmax>
|
||||
o<helix_bc> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant III
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> b0 c0
|
||||
g10l20p0 x0y0 z#<zmax> b0 c0
|
||||
g0 x-#<dist> y-#<dist> z#<zmax>
|
||||
o<helix_bc> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
; quadrant IV
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> b0 c0
|
||||
g10l20p0 x0y0 z#<zmax> b0 c0
|
||||
g0 x+#<dist> y-#<dist> z#<zmax>
|
||||
o<helix_bc> call [#<zmax>][#<zmin>][#<r>][#<frate>][#<n>][#<a>][#<b>][#<c>]
|
||||
|
||||
;final position
|
||||
M429 ;Identity kinematics
|
||||
g53 g0 x0y0 z#<zmax> ;MACHINE coordinates
|
||||
g10l20p0 x0y0 z#<zmax> ;new g54
|
||||
|
||||
o<xyzbc_switchkins_sub>endsub
|
||||
29
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins.halshow
vendored
Normal file
29
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/switchkins.halshow
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
pin+motion.analog-out-03
|
||||
pin+motion.switchkins-type
|
||||
|
||||
pin+joint.0.pos-cmd
|
||||
pin+joint.1.pos-cmd
|
||||
pin+joint.2.pos-cmd
|
||||
pin+joint.3.pos-cmd
|
||||
pin+joint.4.pos-cmd
|
||||
|
||||
pin+axis.x.pos-cmd
|
||||
pin+axis.y.pos-cmd
|
||||
pin+axis.z.pos-cmd
|
||||
pin+axis.a.pos-cmd
|
||||
pin+axis.b.pos-cmd
|
||||
pin+axis.c.pos-cmd
|
||||
|
||||
pin+pyvcp.tcpkins-button
|
||||
pin+pyvcp.identitykins-button
|
||||
pin+pyvcp.vismach-clear
|
||||
|
||||
pin+kinstype-0
|
||||
pin+kinstype-1
|
||||
|
||||
pin+halui.mdi-command-00
|
||||
pin+halui.mdi-command-01
|
||||
|
||||
pin+kinstype.is-0
|
||||
pin+kinstype.is-1
|
||||
pin+kinstype.is-2
|
||||
@@ -0,0 +1,12 @@
|
||||
# switchkins pyvcp connections for:
|
||||
# xyzac-trt-kins.ini,xyzbc-trt-kins.ini
|
||||
|
||||
net :kinstype.is-0 <= kinstype.is-0 => pyvcp.multilabel.0.legend0
|
||||
net :kinstype.is-1 <= kinstype.is-1 => pyvcp.multilabel.0.legend1
|
||||
net :kinstype.is-2 <= kinstype.is-2 => pyvcp.multilabel.0.legend2
|
||||
|
||||
net :vismach-clear <= pyvcp.vismach-clear => vismach.plotclear
|
||||
|
||||
net :type0-button <= pyvcp.type0-button => halui.mdi-command-00
|
||||
net :type1-button <= pyvcp.type1-button => halui.mdi-command-01
|
||||
net :type2-button <= pyvcp.type2-button => halui.mdi-command-02
|
||||
182
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
vendored
Normal file
182
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
[APPLICATIONS]
|
||||
# uncomment to enable:
|
||||
#APP = halshow --fformat %.5f switchkins.halshow
|
||||
|
||||
[EMC]
|
||||
VERSION = 1.1
|
||||
MACHINE = sim-xyzac-trt-kins (switchkins)
|
||||
|
||||
[DISPLAY]
|
||||
GEOMETRY = XYZ-A
|
||||
OPEN_FILE = ./demos/xyzac_switchkins.ngc
|
||||
PYVCP = ./xyzac-trt.xml
|
||||
JOG_AXES = XYZC
|
||||
DISPLAY = axis
|
||||
MAX_ANGULAR_VELOCITY = 360
|
||||
MAX_LINEAR_VELOCITY = 1000
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 2
|
||||
PROGRAM_PREFIX = ../../nc_files
|
||||
INTRO_GRAPHIC = emc2.gif
|
||||
INTRO_TIME = 1
|
||||
#EDITOR = geany
|
||||
TOOL_EDITOR = tooledit z diam
|
||||
|
||||
TKPKG = Ngcgui 1.0
|
||||
NGCGUI_FONT = Helvetica -12 normal
|
||||
NGCGUI_SUBFILE = xyzac_switchkins_sub.ngc
|
||||
NGCGUI_SUBFILE = centering.ngc
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
HAL_PIN_VARS = 1
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
REMAP = M430 modalgroup=10 ngc=430remap
|
||||
PARAMETER_FILE = xyzac.var
|
||||
|
||||
[KINS]
|
||||
#NOTE: for backwrds compatibility !!!!!!!!!!!!!!!!!!!
|
||||
# default switchkins-type == 0 is xyzac-trt-kins
|
||||
# here switchkins-type == 0 is identity kins
|
||||
KINEMATICS = xyzac-trt-kins sparm=identityfirst
|
||||
JOINTS = 5
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = LIB:basic_sim.tcl
|
||||
POSTGUI_HALFILE = switchkins_postgui.hal
|
||||
|
||||
# net for control of motion.switchkins-type
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type
|
||||
|
||||
# vismach xyzac-trt-gui items
|
||||
HALCMD = loadusr -W xyzac-trt-gui
|
||||
HALCMD = net :table-x joint.0.pos-fb xyzac-trt-gui.table-x
|
||||
HALCMD = net :saddle-y joint.1.pos-fb xyzac-trt-gui.saddle-y
|
||||
HALCMD = net :spindle-z joint.2.pos-fb xyzac-trt-gui.spindle-z
|
||||
HALCMD = net :tilt-a joint.3.pos-fb xyzac-trt-gui.tilt-a
|
||||
HALCMD = net :rotate-c joint.4.pos-fb xyzac-trt-gui.rotate-c
|
||||
HALCMD = net :tool-offset motion.tooloffset.z
|
||||
HALCMD = net :tool-offset xyzac-trt-kins.tool-offset xyzac-trt-gui.tool-offset
|
||||
HALCMD = net :y-offset xyzac-trt-kins.y-offset xyzac-trt-gui.y-offset
|
||||
HALCMD = net :z-offset xyzac-trt-kins.z-offset xyzac-trt-gui.z-offset
|
||||
HALCMD = sets :y-offset 20
|
||||
HALCMD = sets :z-offset 10
|
||||
|
||||
# not currently supported by xyzac-trt-gui:
|
||||
HALCMD = setp xyzac-trt-kins.x-rot-point 0
|
||||
HALCMD = setp xyzac-trt-kins.y-rot-point 0
|
||||
HALCMD = setp xyzac-trt-kins.z-rot-point 0
|
||||
HALCMD = setp xyzac-trt-kins.conventional-directions 0
|
||||
|
||||
[HALUI]
|
||||
# NOTE: kinstype==0 is identity kins because sparm=identityfirst
|
||||
# M429:identity kins (motion.switchkins-type==0 startupDEFAULT)
|
||||
# M428:xyzac kins (motion.switchkins-type==1)
|
||||
# M430:userk kins (motion.switchkins-type==2)
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M428
|
||||
MDI_COMMAND = M430
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = XYZAC
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = deg
|
||||
DEFAULT_LINEAR_VELOCITY = 20
|
||||
MAX_LINEAR_VELOCITY = 35
|
||||
MAX_LINEAR_ACCELERATION = 400
|
||||
DEFAULT_LINEAR_ACCELERATION = 300
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
SERVO_PERIOD = 1000000
|
||||
COMM_TIMEOUT = 1
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = xyzac-trt.tbl
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 100
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_A]
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 50
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_C]
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 100
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 50
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_4]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
10
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl
vendored
Normal file
10
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.tbl
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
T1 P1 Z0 D1 ;end mill
|
||||
T2 P2 Z15 D8 ;end mill
|
||||
T3 P3 Z0 D4.2 ;#7 tap drill
|
||||
T4 P4 Z0 D10
|
||||
T5 P5 Z30 D10
|
||||
T6 P6 Z30 D10
|
||||
T7 P7 Z30 D10
|
||||
T8 P8 Z30 D10
|
||||
T9 P9 Z30 D10
|
||||
T10 P10 D0.5
|
||||
37
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.txt
vendored
Normal file
37
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.txt
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
xyzac-trt-kins (switchkins)
|
||||
|
||||
Uses remapped user m codes for kins switch:
|
||||
|
||||
M429: Identity Kinematics
|
||||
M428: XYZAC (TCP)
|
||||
M430: userk Kinematics
|
||||
|
||||
A hal net is required to connect the
|
||||
analog out pin N, Example (for N=3):
|
||||
|
||||
net :kinstype-select <= motion.analog-out-03
|
||||
net :kinstype-select => motion.switchkins-type
|
||||
|
||||
Hal Input pins:
|
||||
xyzac-trt-kins.y-offset
|
||||
xyzac-trt-kins.z-offset
|
||||
|
||||
Y and Z offsets are the offsets from the center
|
||||
of rotation of the A axis relative to the center
|
||||
of rotation of the C axis.
|
||||
|
||||
Hal Input pins:
|
||||
xyzac-trt-kins.x-rot-point
|
||||
xyzac-trt-kins.y-rot-point
|
||||
xyzac-trt-kins.z-rot-point
|
||||
|
||||
X, Y and Z rot-point pins represent the
|
||||
offsets of the center of rotation of the C axis
|
||||
relative to the machine absolute zero
|
||||
|
||||
Hal Input pins:
|
||||
xyzac-trt-kins.conventional-directions
|
||||
|
||||
Pin conventional-directions is false by default. If true,
|
||||
axis directions follow the conventions as defined
|
||||
at https://linuxcnc.org/docs/html/gcode/machining-center.html#_rotational_axes
|
||||
45
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.xml
vendored
Normal file
45
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.xml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pyvcp>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<label>
|
||||
<text>"SWITCHKINS"</text>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>3</bd>
|
||||
</label>
|
||||
<multilabel>
|
||||
<legends>["0:IDENTITY", "1: XYZAC ", "2: USERK "]</legends>
|
||||
<font>("Helvetica",16)</font>
|
||||
<bg>"black"</bg>
|
||||
<fg>"yellow"</fg>
|
||||
</multilabel>
|
||||
<button>
|
||||
<halpin>"type0-button"</halpin>
|
||||
<text>"IDENTITY"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type1-button"</halpin>
|
||||
<text>"TCP:XYZAC"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type2-button"</halpin>
|
||||
<text>"userk "</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<button>
|
||||
<halpin>"vismach-clear"</halpin>
|
||||
<text>"vismach-clear"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
</pyvcp>
|
||||
207
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
vendored
Normal file
207
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt_cmds.hal
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
# Sat Jun 06 15:43:11 CST 2026
|
||||
#
|
||||
# This file: ./xyzac-trt_cmds.hal
|
||||
# Created by: /home/cnc/桌面/cnc_wams/linuxcnc/lib/hallib/basic_sim.tcl
|
||||
# With options:
|
||||
# From inifile: /home/cnc/桌面/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini
|
||||
# Halfiles: LIB:basic_sim.tcl
|
||||
#
|
||||
# This file contains the hal commands produced by basic_sim.tcl
|
||||
# (and any hal commands executed prior to its execution).
|
||||
# ------------------------------------------------------------------
|
||||
# To use ./xyzac-trt_cmds.hal in the original inifile (or a copy of it),
|
||||
# edit to change:
|
||||
# [HAL]
|
||||
# HALFILE = LIB:basic_sim.tcl parameters
|
||||
# to:
|
||||
# [HAL]
|
||||
# HALFILE = ./xyzac-trt_cmds.hal
|
||||
#
|
||||
# Notes:
|
||||
# 1) Inifile Variables substitutions specified in the inifile
|
||||
# and interpreted by halcmd are automatically substituted
|
||||
# in the created halfile (./xyzac-trt_cmds.hal).
|
||||
# 2) Input pins connected to a signal with no writer are
|
||||
# not included in the setp listings herein so must be added
|
||||
# manually
|
||||
#
|
||||
|
||||
# user space components
|
||||
loadusr -W hal_manualtoolchange
|
||||
|
||||
# components
|
||||
#preloaded module: loadrt tpmod
|
||||
#preloaded module: loadrt homemod
|
||||
loadrt xyzac-trt-kins sparm=identityfirst
|
||||
loadrt motmod base_period_nsec=0 servo_period_nsec=1000000 num_joints=5
|
||||
#loadrt __servo-thread (not loaded by loadrt, no args saved)
|
||||
loadrt pid names=J0_pid,J1_pid,J2_pid,J3_pid,J4_pid
|
||||
loadrt mux2 names=J0_mux,J1_mux,J2_mux,J3_mux,J4_mux
|
||||
loadrt ddt names=J0_vel,J0_accel,J1_vel,J1_accel,J2_vel,J2_accel,J3_vel,J3_accel,J4_vel,J4_accel
|
||||
loadrt sim_home_switch names=J0_switch,J1_switch,J2_switch,J3_switch,J4_switch
|
||||
loadrt sim_spindle names=sim_spindle
|
||||
loadrt limit2 names=limit_speed
|
||||
loadrt lowpass names=spindle_mass
|
||||
loadrt near names=near_speed
|
||||
loadrt scale names=rpm_rps
|
||||
# pin aliases
|
||||
# param aliases
|
||||
# signals
|
||||
# nets
|
||||
net J0:acc J0_accel.out
|
||||
net J0:enable joint.0.amp-enable-out => J0_pid.enable
|
||||
net J0:homesw J0_switch.home-sw => joint.0.home-sw-in
|
||||
net J0:on-pos J0_pid.output => J0_mux.in1
|
||||
net J0:pos-cmd joint.0.motor-pos-cmd => J0_pid.command
|
||||
net J0:pos-fb J0_mux.out => J0_mux.in0 J0_switch.cur-pos J0_vel.in joint.0.motor-pos-fb
|
||||
net J0:vel J0_vel.out => J0_accel.in
|
||||
net J1:acc J1_accel.out
|
||||
net J1:enable joint.1.amp-enable-out => J1_pid.enable
|
||||
net J1:homesw J1_switch.home-sw => joint.1.home-sw-in
|
||||
net J1:on-pos J1_pid.output => J1_mux.in1
|
||||
net J1:pos-cmd joint.1.motor-pos-cmd => J1_pid.command
|
||||
net J1:pos-fb J1_mux.out => J1_mux.in0 J1_switch.cur-pos J1_vel.in joint.1.motor-pos-fb
|
||||
net J1:vel J1_vel.out => J1_accel.in
|
||||
net J2:acc J2_accel.out
|
||||
net J2:enable joint.2.amp-enable-out => J2_pid.enable
|
||||
net J2:homesw J2_switch.home-sw => joint.2.home-sw-in
|
||||
net J2:on-pos J2_pid.output => J2_mux.in1
|
||||
net J2:pos-cmd joint.2.motor-pos-cmd => J2_pid.command
|
||||
net J2:pos-fb J2_mux.out => J2_mux.in0 J2_switch.cur-pos J2_vel.in joint.2.motor-pos-fb
|
||||
net J2:vel J2_vel.out => J2_accel.in
|
||||
net J3:acc J3_accel.out
|
||||
net J3:enable joint.3.amp-enable-out => J3_pid.enable
|
||||
net J3:homesw J3_switch.home-sw => joint.3.home-sw-in
|
||||
net J3:on-pos J3_pid.output => J3_mux.in1
|
||||
net J3:pos-cmd joint.3.motor-pos-cmd => J3_pid.command
|
||||
net J3:pos-fb J3_mux.out => J3_mux.in0 J3_switch.cur-pos J3_vel.in joint.3.motor-pos-fb
|
||||
net J3:vel J3_vel.out => J3_accel.in
|
||||
net J4:acc J4_accel.out
|
||||
net J4:enable joint.4.amp-enable-out => J4_pid.enable
|
||||
net J4:homesw J4_switch.home-sw => joint.4.home-sw-in
|
||||
net J4:on-pos J4_pid.output => J4_mux.in1
|
||||
net J4:pos-cmd joint.4.motor-pos-cmd => J4_pid.command
|
||||
net J4:pos-fb J4_mux.out => J4_mux.in0 J4_switch.cur-pos J4_vel.in joint.4.motor-pos-fb
|
||||
net J4:vel J4_vel.out => J4_accel.in
|
||||
net estop:loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
|
||||
net sample:enable motion.motion-enabled => J0_mux.sel J1_mux.sel J2_mux.sel J3_mux.sel J4_mux.sel
|
||||
net spindle-at-speed near_speed.out => spindle.0.at-speed
|
||||
net spindle-index-enable sim_spindle.index-enable <=> spindle.0.index-enable
|
||||
net spindle-orient spindle.0.orient => spindle.0.is-oriented
|
||||
net spindle-pos sim_spindle.position-fb => spindle.0.revs
|
||||
net spindle-rpm-filtered spindle_mass.out => near_speed.in2 rpm_rps.in
|
||||
net spindle-rps-filtered rpm_rps.out => spindle.0.speed-in
|
||||
net spindle-speed-cmd spindle.0.speed-out => limit_speed.in near_speed.in1
|
||||
net spindle-speed-limited limit_speed.out => sim_spindle.velocity-cmd spindle_mass.in
|
||||
net tool:change iocontrol.0.tool-change => hal_manualtoolchange.change
|
||||
net tool:changed hal_manualtoolchange.changed => iocontrol.0.tool-changed
|
||||
net tool:prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
|
||||
net tool:prep-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
|
||||
# parameter values
|
||||
setp J0_accel.tmax 0
|
||||
setp J0_mux.tmax 0
|
||||
setp J0_pid.do-pid-calcs.tmax 0
|
||||
setp J0_switch.tmax 0
|
||||
setp J0_vel.tmax 0
|
||||
setp J1_accel.tmax 0
|
||||
setp J1_mux.tmax 0
|
||||
setp J1_pid.do-pid-calcs.tmax 0
|
||||
setp J1_switch.tmax 0
|
||||
setp J1_vel.tmax 0
|
||||
setp J2_accel.tmax 0
|
||||
setp J2_mux.tmax 0
|
||||
setp J2_pid.do-pid-calcs.tmax 0
|
||||
setp J2_switch.tmax 0
|
||||
setp J2_vel.tmax 0
|
||||
setp J3_accel.tmax 0
|
||||
setp J3_mux.tmax 0
|
||||
setp J3_pid.do-pid-calcs.tmax 0
|
||||
setp J3_switch.tmax 0
|
||||
setp J3_vel.tmax 0
|
||||
setp J4_accel.tmax 0
|
||||
setp J4_mux.tmax 0
|
||||
setp J4_pid.do-pid-calcs.tmax 0
|
||||
setp J4_switch.tmax 0
|
||||
setp J4_vel.tmax 0
|
||||
setp limit_speed.tmax 0
|
||||
setp motion-command-handler.tmax 0
|
||||
setp motion-controller.tmax 0
|
||||
setp near_speed.difference 10
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.tmax 0
|
||||
setp rpm_rps.tmax 0
|
||||
setp servo-thread.tmax 0
|
||||
setp sim_spindle.scale 0.01666667
|
||||
setp sim_spindle.tmax 0
|
||||
setp spindle_mass.gain 0.07
|
||||
setp spindle_mass.tmax 0
|
||||
# realtime thread/function links
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
addf J0_pid.do-pid-calcs servo-thread
|
||||
addf J1_pid.do-pid-calcs servo-thread
|
||||
addf J2_pid.do-pid-calcs servo-thread
|
||||
addf J3_pid.do-pid-calcs servo-thread
|
||||
addf J4_pid.do-pid-calcs servo-thread
|
||||
addf J0_mux servo-thread
|
||||
addf J1_mux servo-thread
|
||||
addf J2_mux servo-thread
|
||||
addf J3_mux servo-thread
|
||||
addf J4_mux servo-thread
|
||||
addf J0_vel servo-thread
|
||||
addf J0_accel servo-thread
|
||||
addf J1_vel servo-thread
|
||||
addf J1_accel servo-thread
|
||||
addf J2_vel servo-thread
|
||||
addf J2_accel servo-thread
|
||||
addf J3_vel servo-thread
|
||||
addf J3_accel servo-thread
|
||||
addf J4_vel servo-thread
|
||||
addf J4_accel servo-thread
|
||||
addf J0_switch servo-thread
|
||||
addf J1_switch servo-thread
|
||||
addf J2_switch servo-thread
|
||||
addf J3_switch servo-thread
|
||||
addf J4_switch servo-thread
|
||||
addf limit_speed servo-thread
|
||||
addf spindle_mass servo-thread
|
||||
addf rpm_rps servo-thread
|
||||
addf near_speed servo-thread
|
||||
addf sim_spindle servo-thread
|
||||
|
||||
# setp commands for unconnected input pins
|
||||
setp J0_pid.FF0 1.0
|
||||
setp J0_pid.Pgain 0
|
||||
setp J0_pid.Dgain 0
|
||||
setp J0_pid.Igain 0
|
||||
setp J0_pid.FF1 0
|
||||
setp J0_pid.FF2 0
|
||||
setp J1_pid.FF0 1.0
|
||||
setp J1_pid.Pgain 0
|
||||
setp J1_pid.Dgain 0
|
||||
setp J1_pid.Igain 0
|
||||
setp J1_pid.FF1 0
|
||||
setp J1_pid.FF2 0
|
||||
setp J2_pid.FF0 1.0
|
||||
setp J2_pid.Pgain 0
|
||||
setp J2_pid.Dgain 0
|
||||
setp J2_pid.Igain 0
|
||||
setp J2_pid.FF1 0
|
||||
setp J2_pid.FF2 0
|
||||
setp J3_pid.FF0 1.0
|
||||
setp J3_pid.Pgain 0
|
||||
setp J3_pid.Dgain 0
|
||||
setp J3_pid.Igain 0
|
||||
setp J3_pid.FF1 0
|
||||
setp J3_pid.FF2 0
|
||||
setp J4_pid.FF0 1.0
|
||||
setp J4_pid.Pgain 0
|
||||
setp J4_pid.Dgain 0
|
||||
setp J4_pid.Igain 0
|
||||
setp J4_pid.FF1 0
|
||||
setp J4_pid.FF2 0
|
||||
setp sim_spindle.scale 0.01666667
|
||||
setp limit_speed.maxv 5000.0
|
||||
setp spindle_mass.gain .07
|
||||
setp near_speed.scale 1.1
|
||||
setp near_speed.difference 10
|
||||
182
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
vendored
Normal file
182
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
[APPLICATIONS]
|
||||
# uncomment to enable:
|
||||
#APP = halshow --fformat %.5f switchkins.halshow
|
||||
|
||||
[EMC]
|
||||
VERSION = 1.1
|
||||
MACHINE = sim-xyzbc-trt-kins (switchkins)
|
||||
|
||||
[DISPLAY]
|
||||
GEOMETRY = XYZB
|
||||
OPEN_FILE = ./demos/xyzbc_switchkins.ngc
|
||||
PYVCP = ./xyzbc-trt.xml
|
||||
JOG_AXES = XYZC
|
||||
DISPLAY = axis
|
||||
MAX_ANGULAR_VELOCITY = 360
|
||||
MAX_LINEAR_VELOCITY = 1000
|
||||
POSITION_OFFSET = RELATIVE
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
MAX_FEED_OVERRIDE = 2
|
||||
PROGRAM_PREFIX = ../../nc_files
|
||||
INTRO_GRAPHIC = emc2.gif
|
||||
INTRO_TIME = 1
|
||||
#EDITOR = geany
|
||||
TOOL_EDITOR = tooledit z diam
|
||||
|
||||
TKPKG = Ngcgui 1.0
|
||||
NGCGUI_FONT = Helvetica -12 normal
|
||||
NGCGUI_SUBFILE = xyzbc_switchkins_sub.ngc
|
||||
NGCGUI_SUBFILE = centering.ngc
|
||||
|
||||
[RS274NGC]
|
||||
SUBROUTINE_PATH = ./remap_subs
|
||||
HAL_PIN_VARS = 1
|
||||
REMAP = M428 modalgroup=10 ngc=428remap
|
||||
REMAP = M429 modalgroup=10 ngc=429remap
|
||||
REMAP = M430 modalgroup=10 ngc=430remap
|
||||
PARAMETER_FILE = xyzbc.var
|
||||
|
||||
[KINS]
|
||||
#NOTE: for backwrds compatibility !!!!!!!!!!!!!!!!!!!
|
||||
# default switchkins-type == 0 is xyzbc-trt-kins
|
||||
# here switchkins-type == 0 is identity kins
|
||||
KINEMATICS = xyzbc-trt-kins sparm=identityfirst
|
||||
JOINTS = 5
|
||||
|
||||
[HAL]
|
||||
HALUI = halui
|
||||
HALFILE = LIB:basic_sim.tcl
|
||||
POSTGUI_HALFILE = switchkins_postgui.hal
|
||||
|
||||
# net for control of motion.switchkins-type
|
||||
HALCMD = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type
|
||||
|
||||
# vismach xyzbc-trt-gui items
|
||||
HALCMD = loadusr -W xyzbc-trt-gui
|
||||
HALCMD = net :table-x joint.0.pos-fb xyzbc-trt-gui.table-x
|
||||
HALCMD = net :saddle-y joint.1.pos-fb xyzbc-trt-gui.saddle-y
|
||||
HALCMD = net :spindle-z joint.2.pos-fb xyzbc-trt-gui.spindle-z
|
||||
HALCMD = net :tilt-b joint.3.pos-fb xyzbc-trt-gui.tilt-b
|
||||
HALCMD = net :rotate-c joint.4.pos-fb xyzbc-trt-gui.rotate-c
|
||||
HALCMD = net :tool-offset motion.tooloffset.z
|
||||
HALCMD = net :tool-offset xyzbc-trt-kins.tool-offset xyzbc-trt-gui.tool-offset
|
||||
HALCMD = net :x-offset xyzbc-trt-kins.x-offset xyzbc-trt-gui.x-offset
|
||||
HALCMD = net :z-offset xyzbc-trt-kins.z-offset xyzbc-trt-gui.z-offset
|
||||
HALCMD = sets :x-offset -20
|
||||
HALCMD = sets :z-offset -15
|
||||
|
||||
# not currently supported by xyzbc-trt-gui:
|
||||
HALCMD = setp xyzbc-trt-kins.x-rot-point 0
|
||||
HALCMD = setp xyzbc-trt-kins.y-rot-point 0
|
||||
HALCMD = setp xyzbc-trt-kins.z-rot-point 0
|
||||
HALCMD = setp xyzbc-trt-kins.conventional-directions 0
|
||||
|
||||
[HALUI]
|
||||
# NOTE: kinstype==0 is identity kins because sparm=identityfirst
|
||||
# M429:identity kins (motion.switchkins-type==0 startupDEFAULT)
|
||||
# M428:xyzbc kins (motion.switchkins-type==1)
|
||||
# M430:userk kins (motion.switchkins-type==2)
|
||||
MDI_COMMAND = M429
|
||||
MDI_COMMAND = M428
|
||||
MDI_COMMAND = M430
|
||||
|
||||
[TRAJ]
|
||||
COORDINATES = XYZBC
|
||||
LINEAR_UNITS = mm
|
||||
ANGULAR_UNITS = deg
|
||||
DEFAULT_LINEAR_VELOCITY = 20
|
||||
MAX_LINEAR_VELOCITY = 35
|
||||
MAX_LINEAR_ACCELERATION = 400
|
||||
DEFAULT_LINEAR_ACCELERATION = 300
|
||||
|
||||
[EMCMOT]
|
||||
EMCMOT = motmod
|
||||
SERVO_PERIOD = 1000000
|
||||
COMM_TIMEOUT = 1
|
||||
|
||||
[TASK]
|
||||
TASK = milltask
|
||||
CYCLE_TIME = 0.010
|
||||
|
||||
[EMCIO]
|
||||
TOOL_TABLE = xyzbc-trt.tbl
|
||||
|
||||
[AXIS_X]
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Y]
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 100
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_Z]
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_B]
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[AXIS_C]
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -200
|
||||
MAX_LIMIT = 200
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 100
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 20
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -120
|
||||
MAX_LIMIT = 120
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_3]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -100
|
||||
MAX_LIMIT = 50
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
|
||||
[JOINT_4]
|
||||
TYPE = ANGULAR
|
||||
HOME = 0
|
||||
MAX_VELOCITY = 30
|
||||
MAX_ACCELERATION = 300
|
||||
MIN_LIMIT = -36000
|
||||
MAX_LIMIT = 36000
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_SEQUENCE = 0
|
||||
2
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl
vendored
Normal file
2
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.tbl
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
T1 P1 D1
|
||||
T2 P2 Z10 D8
|
||||
37
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.txt
vendored
Normal file
37
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.txt
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
xyzbc-trt-kins (switchkins)
|
||||
|
||||
Uses remapped user m codes for kins switch:
|
||||
|
||||
M429: Identity Kinematics
|
||||
M428: XYZBC (TCP)
|
||||
M430: userk Kinematics
|
||||
|
||||
A hal net is required to connect the
|
||||
analog out pin N, Example (for N=3):
|
||||
|
||||
net :kinstype-select <= motion.analog-out-03
|
||||
net :kinstype-select => motion.switchkins-type
|
||||
|
||||
Hal Input pins:
|
||||
xyzbc-trt-kins.x-offset
|
||||
xyzbc-trt-kins.z-offset
|
||||
|
||||
X and Z offsets are the offsets from the center
|
||||
of rotation of the B axis relative to the center
|
||||
of rotation of the C axis.
|
||||
|
||||
Hal Input pins:
|
||||
xyzbc-trt-kins.x-rot-point
|
||||
xyzbc-trt-kins.y-rot-point
|
||||
xyzbc-trt-kins.z-rot-point
|
||||
|
||||
X, Y and Z rot-point pins represent the
|
||||
offsets of the center of rotation of the C axis
|
||||
relative to the machine absolute zero
|
||||
|
||||
Hal Input pins:
|
||||
xyzbc-trt-kins.conventional-directions
|
||||
|
||||
Pin conventional-directions is false by default. If true,
|
||||
axis directions follow the conventions as defined
|
||||
at https://linuxcnc.org/docs/html/gcode/machining-center.html#_rotational_axes
|
||||
45
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml
vendored
Normal file
45
wasm-port/vendor/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.xml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<pyvcp>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<label>
|
||||
<text>"SWITCHKINS"</text>
|
||||
<relief>RIDGE</relief>
|
||||
<bd>3</bd>
|
||||
</label>
|
||||
<multilabel>
|
||||
<legends>["0:IDENTITY", "1: XYZBC ", "2: USERK "]</legends>
|
||||
<font>("Helvetica",16)</font>
|
||||
<bg>"black"</bg>
|
||||
<fg>"yellow"</fg>
|
||||
</multilabel>
|
||||
<button>
|
||||
<halpin>"type0-button"</halpin>
|
||||
<text>"IDENTITY"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type1-button"</halpin>
|
||||
<text>"TCP:XYZBC"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
<button>
|
||||
<halpin>"type2-button"</halpin>
|
||||
<text>"userk"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
<vbox>
|
||||
<relief>"ridge"</relief>
|
||||
<bd>5</bd>
|
||||
<button>
|
||||
<halpin>"vismach-clear"</halpin>
|
||||
<text>"vismach-clear"</text>
|
||||
<bd>3</bd>
|
||||
</button>
|
||||
</vbox>
|
||||
|
||||
</pyvcp>
|
||||
Reference in New Issue
Block a user