CAM: Convert tapping operation to experimental feature, Add tap pitch support, improve tapping logic, and update toolbit schema and legacy linuxcnc post
CAM/App/PathSegmentWalker.cpp - Add G74 to drill/tap/bore G-code recognition for tapping cycles CAM/InitGui.py - Move CAM_Tapping command behind experimental feature flag - Only group drilling/tapping commands if both are enabled CAM/Path/Base/Generator/tapping.py - Add pitch and spindle_speed parameters to tapping.generate - Output S (spindle speed) and F (pitch) in generated G-code CAM/Path/Op/Tapping.py - Require Pitch property for tap tools and SpindleSpeed for tool controllers - Pass pitch and spindle speed to tapping.generate - Use SpindleDirection to determine right/left hand tap CAM/Path/Post/scripts/linuxcnc_post.py - Handle G84/G74 tapping cycles: convert pitch and spindle speed to feed rate - Remove F and S from output and recalculate F as needed CAM/Path/Tool/shape/models/tap.py - Add Pitch property to ToolBitShapeTap schema - CAM/Path/Tool/toolbit/models/tap.py - Show pitch and rotation in tap tool summary - Use is_imperial_pitch to format pitch as TPI or mm CAM/Path/Tool/toolbit/util.py - Add is_imperial_pitch utility to classify pitch as imperial or metric CAM/Tools/Bit/375-16_Tap.fctb - Remove unused parameters (Coating, Rotation, TPI, Type) - Keep only relevant tap parameters for new schema
This commit is contained in:
@@ -148,7 +148,7 @@ class CAMWorkbench(Workbench):
|
||||
]
|
||||
threedopcmdlist = ["CAM_Pocket3D"]
|
||||
engravecmdlist = ["CAM_Engrave", "CAM_Deburr", "CAM_Vcarve"]
|
||||
drillingcmdlist = ["CAM_Drilling", "CAM_Tapping"]
|
||||
drillingcmdlist = ["CAM_Drilling"]
|
||||
modcmdlist = ["CAM_OperationCopy", "CAM_Array", "CAM_SimpleCopy"]
|
||||
dressupcmdlist = [
|
||||
"CAM_DressupArray",
|
||||
@@ -175,14 +175,21 @@ class CAMWorkbench(Workbench):
|
||||
QT_TRANSLATE_NOOP("CAM_EngraveTools", "Engraving Operations"),
|
||||
),
|
||||
)
|
||||
drillingcmdgroup = ["CAM_DrillingTools"]
|
||||
FreeCADGui.addCommand(
|
||||
"CAM_DrillingTools",
|
||||
PathCommandGroup(
|
||||
drillingcmdlist,
|
||||
QT_TRANSLATE_NOOP("CAM_DrillingTools", "Drilling Operations"),
|
||||
),
|
||||
)
|
||||
if Path.Preferences.experimentalFeaturesEnabled():
|
||||
drillingcmdlist.append("CAM_Tapping")
|
||||
|
||||
if set(["CAM_Drilling", "CAM_Tapping"]).issubset(drillingcmdlist):
|
||||
drillingcmdgroup = ["CAM_DrillingTools"]
|
||||
FreeCADGui.addCommand(
|
||||
"CAM_DrillingTools",
|
||||
PathCommandGroup(
|
||||
drillingcmdlist,
|
||||
QT_TRANSLATE_NOOP("CAM_DrillingTools", "Drilling Operations"),
|
||||
),
|
||||
)
|
||||
else:
|
||||
drillingcmdgroup = drillingcmdlist
|
||||
|
||||
dressupcmdgroup = ["CAM_DressupTools"]
|
||||
FreeCADGui.addCommand(
|
||||
"CAM_DressupTools",
|
||||
|
||||
Reference in New Issue
Block a user