Compare commits
1 Commits
main
...
feat/editi
| Author | SHA1 | Date | |
|---|---|---|---|
| 2bb2949b82 |
109
CatppuccinMocha/CatppuccinMocha.cfg
Normal file
109
CatppuccinMocha/CatppuccinMocha.cfg
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<FCParameters>
|
||||||
|
<FCParamGroup Name="Root">
|
||||||
|
<FCParamGroup Name="BaseApp">
|
||||||
|
<FCParamGroup Name="Preferences">
|
||||||
|
<FCParamGroup Name="Editor">
|
||||||
|
<FCUInt Name="Text" Value="3453416703"/>
|
||||||
|
<FCUInt Name="Bookmark" Value="3032415999"/>
|
||||||
|
<FCUInt Name="Breakpoint" Value="4086016255"/>
|
||||||
|
<FCUInt Name="Keyword" Value="3416717311"/>
|
||||||
|
<FCUInt Name="Comment" Value="2139095295"/>
|
||||||
|
<FCUInt Name="Block comment" Value="2139095295"/>
|
||||||
|
<FCUInt Name="Number" Value="4206069759"/>
|
||||||
|
<FCUInt Name="String" Value="2799935999"/>
|
||||||
|
<FCUInt Name="Character" Value="4073902335"/>
|
||||||
|
<FCUInt Name="Class name" Value="2310339327"/>
|
||||||
|
<FCUInt Name="Define name" Value="2310339327"/>
|
||||||
|
<FCUInt Name="Operator" Value="2312199935"/>
|
||||||
|
<FCUInt Name="Python output" Value="2796290303"/>
|
||||||
|
<FCUInt Name="Python error" Value="4086016255"/>
|
||||||
|
<FCUInt Name="Current line highlight" Value="1162304255"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="OutputWindow">
|
||||||
|
<FCUInt Name="colorText" Value="3453416703"/>
|
||||||
|
<FCUInt Name="colorLogging" Value="2497893887"/>
|
||||||
|
<FCUInt Name="colorWarning" Value="4192382975"/>
|
||||||
|
<FCUInt Name="colorError" Value="4086016255"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="View">
|
||||||
|
<FCUInt Name="BackgroundColor" Value="505294591"/>
|
||||||
|
<FCUInt Name="BackgroundColor2" Value="286333951"/>
|
||||||
|
<FCUInt Name="BackgroundColor3" Value="404235775"/>
|
||||||
|
<FCUInt Name="BackgroundColor4" Value="825378047"/>
|
||||||
|
<FCBool Name="Simple" Value="0"/>
|
||||||
|
<FCBool Name="Gradient" Value="1"/>
|
||||||
|
<FCBool Name="UseBackgroundColorMid" Value="0"/>
|
||||||
|
<FCUInt Name="HighlightColor" Value="3416717311"/>
|
||||||
|
<FCUInt Name="SelectionColor" Value="3032415999"/>
|
||||||
|
<FCUInt Name="PreselectColor" Value="2497893887"/>
|
||||||
|
<FCUInt Name="DefaultShapeColor" Value="1482387711"/>
|
||||||
|
<FCBool Name="RandomColor" Value="0"/>
|
||||||
|
<FCUInt Name="DefaultShapeLineColor" Value="2470768383"/>
|
||||||
|
<FCUInt Name="DefaultShapeVertexColor" Value="2470768383"/>
|
||||||
|
<FCUInt Name="BoundingBoxColor" Value="1819509759"/>
|
||||||
|
<FCUInt Name="AnnotationTextColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="SketchEdgeColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="SketchVertexColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="EditedEdgeColor" Value="3416717311"/>
|
||||||
|
<FCUInt Name="EditedVertexColor" Value="4123402495"/>
|
||||||
|
<FCUInt Name="ConstructionColor" Value="4206069759"/>
|
||||||
|
<FCUInt Name="ExternalColor" Value="4192382975"/>
|
||||||
|
<FCUInt Name="FullyConstrainedColor" Value="2799935999"/>
|
||||||
|
<FCUInt Name="InternalAlignedGeoColor" Value="1959907071"/>
|
||||||
|
<FCUInt Name="FullyConstraintElementColor" Value="2799935999"/>
|
||||||
|
<FCUInt Name="FullyConstraintConstructionElementColor" Value="2497893887"/>
|
||||||
|
<FCUInt Name="FullyConstraintInternalAlignmentColor" Value="2312199935"/>
|
||||||
|
<FCUInt Name="FullyConstraintConstructionPointColor" Value="2799935999"/>
|
||||||
|
<FCUInt Name="ConstrainedIcoColor" Value="2310339327"/>
|
||||||
|
<FCUInt Name="NonDrivingConstrDimColor" Value="2139095295"/>
|
||||||
|
<FCUInt Name="ConstrainedDimColor" Value="3416717311"/>
|
||||||
|
<FCUInt Name="ExprBasedConstrDimColor" Value="4206069759"/>
|
||||||
|
<FCUInt Name="DeactivatedConstrDimColor" Value="1819509759"/>
|
||||||
|
<FCUInt Name="CursorTextColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="CursorCrosshairColor" Value="3416717311"/>
|
||||||
|
<FCUInt Name="CreateLineColor" Value="2799935999"/>
|
||||||
|
<FCUInt Name="ShadowLightColor" Value="2470768128"/>
|
||||||
|
<FCUInt Name="ShadowGroundColor" Value="286333952"/>
|
||||||
|
<FCUInt Name="HiddenLineColor" Value="825378047"/>
|
||||||
|
<FCUInt Name="HiddenLineFaceColor" Value="505294591"/>
|
||||||
|
<FCUInt Name="HiddenLineBackground" Value="505294591"/>
|
||||||
|
<FCBool Name="EnableBacklight" Value="1"/>
|
||||||
|
<FCUInt Name="BacklightColor" Value="1162304255"/>
|
||||||
|
<FCFloat Name="BacklightIntensity" Value="0.30"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="TreeView">
|
||||||
|
<FCUInt Name="TreeEditColor" Value="3416717311"/>
|
||||||
|
<FCUInt Name="TreeActiveColor" Value="2799935999"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="MainWindow">
|
||||||
|
<FCText Name="StyleSheet">CatppuccinMocha.qss</FCText>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="Mod">
|
||||||
|
<FCParamGroup Name="Start">
|
||||||
|
<FCUInt Name="BackgroundColor1" Value="404235775"/>
|
||||||
|
<FCUInt Name="BackgroundTextColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="PageColor" Value="505294591"/>
|
||||||
|
<FCUInt Name="PageTextColor" Value="3453416703"/>
|
||||||
|
<FCUInt Name="BoxColor" Value="825378047"/>
|
||||||
|
<FCUInt Name="LinkColor" Value="2310339327"/>
|
||||||
|
<FCUInt Name="BackgroundColor2" Value="286333951"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="Part">
|
||||||
|
<FCUInt Name="VertexColor" Value="3032415999"/>
|
||||||
|
<FCUInt Name="EdgeColor" Value="2310339327"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="PartDesign">
|
||||||
|
<FCUInt Name="DefaultDatumColor" Value="3416717311"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="Draft">
|
||||||
|
<FCUInt Name="snapcolor" Value="2799935999"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
<FCParamGroup Name="Sketcher">
|
||||||
|
<FCUInt Name="GridLineColor" Value="1162304255"/>
|
||||||
|
</FCParamGroup>
|
||||||
|
</FCParamGroup>
|
||||||
|
</FCParamGroup>
|
||||||
|
</FCParamGroup>
|
||||||
|
</FCParamGroup>
|
||||||
|
</FCParameters>
|
||||||
1308
CatppuccinMocha/CatppuccinMocha.qss
Normal file
1308
CatppuccinMocha/CatppuccinMocha.qss
Normal file
File diff suppressed because it is too large
Load Diff
26
package.xml
26
package.xml
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<name>ZTools</name>
|
<name>ZTools</name>
|
||||||
|
|
||||||
<description>Extended PartDesign workbench with velocity-focused tools and advanced datum creation.</description>
|
<description>Velocity-focused CAD tools injected into PartDesign, Assembly, and Spreadsheet contexts, plus Catppuccin Mocha theme.</description>
|
||||||
|
|
||||||
<version>0.1.0</version>
|
<version>0.1.0</version>
|
||||||
|
|
||||||
@@ -17,20 +17,16 @@
|
|||||||
<classname>ZToolsWorkbench</classname>
|
<classname>ZToolsWorkbench</classname>
|
||||||
<subdirectory>./ztools</subdirectory>
|
<subdirectory>./ztools</subdirectory>
|
||||||
</workbench>
|
</workbench>
|
||||||
|
<preferencepack>
|
||||||
|
<name>CatppuccinMocha</name>
|
||||||
|
<description>Catppuccin Mocha dark theme - soothing pastel colors for the high-spirited</description>
|
||||||
|
<subdirectory>./CatppuccinMocha</subdirectory>
|
||||||
|
<tag>color</tag>
|
||||||
|
<tag>dark</tag>
|
||||||
|
<tag>catppuccin</tag>
|
||||||
|
<tag>mocha</tag>
|
||||||
|
<tag>theme</tag>
|
||||||
|
</preferencepack>
|
||||||
</content>
|
</content>
|
||||||
|
|
||||||
<!-- Kindred Create extensions -->
|
|
||||||
<kindred>
|
|
||||||
<min_create_version>0.1.0</min_create_version>
|
|
||||||
<load_priority>50</load_priority>
|
|
||||||
<pure_python>true</pure_python>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>sdk</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<contexts>
|
|
||||||
<context id="partdesign.body" action="inject"/>
|
|
||||||
<context id="partdesign.feature" action="inject"/>
|
|
||||||
</contexts>
|
|
||||||
</kindred>
|
|
||||||
|
|
||||||
</package>
|
</package>
|
||||||
|
|||||||
@@ -1,348 +1,109 @@
|
|||||||
# ztools Workbench for FreeCAD 1.0+
|
# ztools Command Provider for Kindred Create
|
||||||
# Extended PartDesign replacement with velocity-focused tools
|
# Injects ZTools commands into context toolbars via EditingContextResolver.
|
||||||
|
# No longer a standalone workbench — commands appear in the appropriate
|
||||||
|
# editing context (PartDesign body/feature, Assembly, Spreadsheet).
|
||||||
|
|
||||||
import FreeCAD as App
|
import FreeCAD as App
|
||||||
import FreeCADGui as Gui
|
import FreeCADGui as Gui
|
||||||
|
|
||||||
|
|
||||||
class ZToolsWorkbench(Gui.Workbench):
|
def _ensure_workbenches_loaded():
|
||||||
"""Extended PartDesign workbench with velocity-focused tools."""
|
"""Activate dependent workbenches so their commands are registered."""
|
||||||
|
wb_list = Gui.listWorkbenches()
|
||||||
|
for wb_name in (
|
||||||
|
"PartDesignWorkbench",
|
||||||
|
"SketcherWorkbench",
|
||||||
|
"AssemblyWorkbench",
|
||||||
|
"SpreadsheetWorkbench",
|
||||||
|
):
|
||||||
|
if wb_name in wb_list:
|
||||||
|
try:
|
||||||
|
Gui.activateWorkbench(wb_name)
|
||||||
|
except Exception as e:
|
||||||
|
App.Console.PrintWarning(f"ztools: could not init {wb_name}: {e}\n")
|
||||||
|
|
||||||
MenuText = "ztools"
|
|
||||||
ToolTip = "Extended PartDesign replacement for faster CAD workflows"
|
|
||||||
|
|
||||||
# Catppuccin Mocha themed icon
|
def _register():
|
||||||
Icon = """
|
"""Import ZTools commands and inject them into context toolbars."""
|
||||||
/* XPM */
|
_ensure_workbenches_loaded()
|
||||||
static char * ztools_xpm[] = {
|
|
||||||
"16 16 5 1",
|
|
||||||
" c None",
|
|
||||||
". c #313244",
|
|
||||||
"+ c #cba6f7",
|
|
||||||
"@ c #94e2d5",
|
|
||||||
"# c #45475a",
|
|
||||||
" ",
|
|
||||||
" ############ ",
|
|
||||||
" #..........# ",
|
|
||||||
" #.++++++++.# ",
|
|
||||||
" #.+......+.# ",
|
|
||||||
" #.....+++..# ",
|
|
||||||
" #....++....# ",
|
|
||||||
" #...++.....# ",
|
|
||||||
" #..++......# ",
|
|
||||||
" #.++.......# ",
|
|
||||||
" #.++++++++@# ",
|
|
||||||
" #..........# ",
|
|
||||||
" ############ ",
|
|
||||||
" ",
|
|
||||||
" ",
|
|
||||||
" "};
|
|
||||||
"""
|
|
||||||
|
|
||||||
def Initialize(self):
|
# Import all ZTools command modules (registers Gui commands)
|
||||||
"""Called on workbench first activation."""
|
from ztools.commands import ( # noqa: F401
|
||||||
# Load PartDesign and Sketcher workbenches to register their commands
|
assembly_pattern_commands,
|
||||||
# We need to actually activate them briefly to ensure commands are registered
|
datum_commands,
|
||||||
# Activate dependent workbenches so their commands are registered.
|
pattern_commands,
|
||||||
# Use activateWorkbench() instead of calling Initialize() directly,
|
pocket_commands,
|
||||||
# since direct calls skip the C++ __Workbench__ injection step.
|
spreadsheet_commands,
|
||||||
# Wrap each individually so one failure doesn't block the rest.
|
)
|
||||||
wb_list = Gui.listWorkbenches()
|
|
||||||
current_wb = Gui.activeWorkbench()
|
|
||||||
for wb_name in (
|
|
||||||
"PartDesignWorkbench",
|
|
||||||
"SketcherWorkbench",
|
|
||||||
"AssemblyWorkbench",
|
|
||||||
"SpreadsheetWorkbench",
|
|
||||||
):
|
|
||||||
if wb_name in wb_list:
|
|
||||||
try:
|
|
||||||
Gui.activateWorkbench(wb_name)
|
|
||||||
except Exception as e:
|
|
||||||
App.Console.PrintWarning(f"Could not initialize {wb_name}: {e}\n")
|
|
||||||
# Restore ztools as the active workbench
|
|
||||||
try:
|
|
||||||
Gui.activateWorkbench("ZToolsWorkbench")
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Command imports moved to module scope (after Gui.addWorkbench) so they
|
# Apply Catppuccin Mocha Spreadsheet colors
|
||||||
# are available before Initialize() runs. See end of file.
|
try:
|
||||||
|
from ztools.resources.theme import apply_spreadsheet_colors
|
||||||
|
|
||||||
# =====================================================================
|
apply_spreadsheet_colors()
|
||||||
# PartDesign Structure Tools
|
except Exception as e:
|
||||||
# =====================================================================
|
App.Console.PrintWarning(f"ztools: could not apply spreadsheet colors: {e}\n")
|
||||||
self.structure_tools = [
|
|
||||||
"PartDesign_Body",
|
|
||||||
"PartDesign_NewSketch",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
# Register WorkbenchManipulator for injecting into native workbench toolbars
|
||||||
# PartDesign Reference Geometry (Datums)
|
Gui.addWorkbenchManipulator(_ZToolsManipulator())
|
||||||
# =====================================================================
|
|
||||||
self.partdesign_datum_tools = [
|
|
||||||
"PartDesign_Plane",
|
|
||||||
"PartDesign_Line",
|
|
||||||
"PartDesign_Point",
|
|
||||||
"PartDesign_CoordinateSystem",
|
|
||||||
"PartDesign_ShapeBinder",
|
|
||||||
"PartDesign_SubShapeBinder",
|
|
||||||
"PartDesign_Clone",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
# Inject ZTools commands into editing context toolbars.
|
||||||
# PartDesign Additive Features
|
# These calls append commands to the named toolbar within the given context,
|
||||||
# =====================================================================
|
# so when the EditingContextResolver activates a context the injected
|
||||||
self.additive_tools = [
|
# commands appear alongside the native ones.
|
||||||
"PartDesign_Pad",
|
try:
|
||||||
"PartDesign_Revolution",
|
Gui.injectEditingCommands(
|
||||||
"PartDesign_AdditiveLoft",
|
"partdesign.body",
|
||||||
"PartDesign_AdditivePipe",
|
"Part Design Helper Features",
|
||||||
"PartDesign_AdditiveHelix",
|
["ZTools_DatumCreator", "ZTools_DatumManager"],
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Additive Primitives (compound command with dropdown)
|
|
||||||
# =====================================================================
|
|
||||||
self.additive_primitives = [
|
|
||||||
"PartDesign_CompPrimitiveAdditive",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Subtractive Features
|
|
||||||
# =====================================================================
|
|
||||||
self.subtractive_tools = [
|
|
||||||
"PartDesign_Pocket",
|
|
||||||
"PartDesign_Hole",
|
|
||||||
"PartDesign_Groove",
|
|
||||||
"PartDesign_SubtractiveLoft",
|
|
||||||
"PartDesign_SubtractivePipe",
|
|
||||||
"PartDesign_SubtractiveHelix",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Subtractive Primitives (compound command with dropdown)
|
|
||||||
# =====================================================================
|
|
||||||
self.subtractive_primitives = [
|
|
||||||
"PartDesign_CompPrimitiveSubtractive",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Transformation Features (Patterns)
|
|
||||||
# =====================================================================
|
|
||||||
self.transformation_tools = [
|
|
||||||
"PartDesign_Mirrored",
|
|
||||||
"PartDesign_LinearPattern",
|
|
||||||
"PartDesign_PolarPattern",
|
|
||||||
"PartDesign_MultiTransform",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Dress-Up Features
|
|
||||||
# =====================================================================
|
|
||||||
self.dressup_tools = [
|
|
||||||
"PartDesign_Fillet",
|
|
||||||
"PartDesign_Chamfer",
|
|
||||||
"PartDesign_Draft",
|
|
||||||
"PartDesign_Thickness",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# PartDesign Boolean Operations
|
|
||||||
# =====================================================================
|
|
||||||
self.boolean_tools = [
|
|
||||||
"PartDesign_Boolean",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# Sketcher Tools (commonly used with PartDesign)
|
|
||||||
# =====================================================================
|
|
||||||
self.sketcher_tools = [
|
|
||||||
"Sketcher_NewSketch",
|
|
||||||
"Sketcher_EditSketch",
|
|
||||||
"Sketcher_MapSketch",
|
|
||||||
"Sketcher_ValidateSketch",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# ZTools Custom Tools
|
|
||||||
# =====================================================================
|
|
||||||
self.ztools_datum_tools = [
|
|
||||||
"ZTools_DatumCreator",
|
|
||||||
"ZTools_DatumManager",
|
|
||||||
]
|
|
||||||
|
|
||||||
self.ztools_pattern_tools = [
|
|
||||||
"ZTools_RotatedLinearPattern",
|
|
||||||
]
|
|
||||||
|
|
||||||
self.ztools_pocket_tools = [
|
|
||||||
"ZTools_EnhancedPocket",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# Assembly Workbench Tools (FreeCAD 1.0+)
|
|
||||||
# =====================================================================
|
|
||||||
self.assembly_structure_tools = [
|
|
||||||
"Assembly_CreateAssembly",
|
|
||||||
"Assembly_InsertLink",
|
|
||||||
"Assembly_InsertNewPart",
|
|
||||||
]
|
|
||||||
|
|
||||||
self.assembly_joint_tools = [
|
|
||||||
"Assembly_CreateJointFixed",
|
|
||||||
"Assembly_CreateJointRevolute",
|
|
||||||
"Assembly_CreateJointCylindrical",
|
|
||||||
"Assembly_CreateJointSlider",
|
|
||||||
"Assembly_CreateJointBall",
|
|
||||||
"Assembly_CreateJointDistance",
|
|
||||||
"Assembly_CreateJointParallel",
|
|
||||||
"Assembly_CreateJointPerpendicular",
|
|
||||||
"Assembly_CreateJointAngle",
|
|
||||||
"Assembly_CreateJointRackPinion",
|
|
||||||
"Assembly_CreateJointScrew",
|
|
||||||
"Assembly_CreateJointGears",
|
|
||||||
"Assembly_CreateJointBelt",
|
|
||||||
]
|
|
||||||
|
|
||||||
self.assembly_management_tools = [
|
|
||||||
"Assembly_ToggleGrounded",
|
|
||||||
"Assembly_SolveAssembly",
|
|
||||||
"Assembly_CreateView",
|
|
||||||
"Assembly_CreateBom",
|
|
||||||
"Assembly_ExportASMT",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# ZTools Assembly Pattern Tools
|
|
||||||
# =====================================================================
|
|
||||||
self.ztools_assembly_tools = [
|
|
||||||
"ZTools_AssemblyLinearPattern",
|
|
||||||
"ZTools_AssemblyPolarPattern",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# Spreadsheet Workbench Tools
|
|
||||||
# =====================================================================
|
|
||||||
self.spreadsheet_tools = [
|
|
||||||
"Spreadsheet_CreateSheet",
|
|
||||||
"Spreadsheet_Import",
|
|
||||||
"Spreadsheet_Export",
|
|
||||||
"Spreadsheet_SetAlias",
|
|
||||||
"Spreadsheet_MergeCells",
|
|
||||||
"Spreadsheet_SplitCell",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# ZTools Spreadsheet Formatting Tools
|
|
||||||
# =====================================================================
|
|
||||||
self.ztools_spreadsheet_tools = [
|
|
||||||
"ZTools_SpreadsheetStyleBold",
|
|
||||||
"ZTools_SpreadsheetStyleItalic",
|
|
||||||
"ZTools_SpreadsheetStyleUnderline",
|
|
||||||
"ZTools_SpreadsheetAlignLeft",
|
|
||||||
"ZTools_SpreadsheetAlignCenter",
|
|
||||||
"ZTools_SpreadsheetAlignRight",
|
|
||||||
"ZTools_SpreadsheetBgColor",
|
|
||||||
"ZTools_SpreadsheetTextColor",
|
|
||||||
"ZTools_SpreadsheetQuickAlias",
|
|
||||||
]
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# Append Toolbars
|
|
||||||
# =====================================================================
|
|
||||||
self.appendToolbar("Structure", self.structure_tools)
|
|
||||||
self.appendToolbar("Sketcher", self.sketcher_tools)
|
|
||||||
self.appendToolbar("Datums", self.partdesign_datum_tools)
|
|
||||||
self.appendToolbar("Additive", self.additive_tools + self.additive_primitives)
|
|
||||||
self.appendToolbar(
|
|
||||||
"Subtractive", self.subtractive_tools + self.subtractive_primitives
|
|
||||||
)
|
)
|
||||||
self.appendToolbar("Transformations", self.transformation_tools)
|
Gui.injectEditingCommands(
|
||||||
self.appendToolbar("Dress-Up", self.dressup_tools)
|
"partdesign.feature",
|
||||||
self.appendToolbar("Boolean", self.boolean_tools)
|
"Part Design Modeling Features",
|
||||||
self.appendToolbar("Assembly", self.assembly_structure_tools)
|
["ZTools_EnhancedPocket"],
|
||||||
self.appendToolbar("Assembly Joints", self.assembly_joint_tools)
|
|
||||||
self.appendToolbar("Assembly Management", self.assembly_management_tools)
|
|
||||||
self.appendToolbar("ztools Datums", self.ztools_datum_tools)
|
|
||||||
self.appendToolbar("ztools Patterns", self.ztools_pattern_tools)
|
|
||||||
self.appendToolbar("ztools Features", self.ztools_pocket_tools)
|
|
||||||
self.appendToolbar("ztools Assembly", self.ztools_assembly_tools)
|
|
||||||
self.appendToolbar("Spreadsheet", self.spreadsheet_tools)
|
|
||||||
self.appendToolbar("ztools Spreadsheet", self.ztools_spreadsheet_tools)
|
|
||||||
|
|
||||||
# =====================================================================
|
|
||||||
# Append Menus
|
|
||||||
# =====================================================================
|
|
||||||
self.appendMenu("Structure", self.structure_tools)
|
|
||||||
self.appendMenu("Sketch", self.sketcher_tools)
|
|
||||||
self.appendMenu(["PartDesign", "Datums"], self.partdesign_datum_tools)
|
|
||||||
self.appendMenu(
|
|
||||||
["PartDesign", "Additive"], self.additive_tools + self.additive_primitives
|
|
||||||
)
|
)
|
||||||
self.appendMenu(
|
Gui.injectEditingCommands(
|
||||||
["PartDesign", "Subtractive"],
|
"partdesign.feature",
|
||||||
self.subtractive_tools + self.subtractive_primitives,
|
"Part Design Transformation Features",
|
||||||
|
["ZTools_RotatedLinearPattern"],
|
||||||
)
|
)
|
||||||
self.appendMenu(["PartDesign", "Transformations"], self.transformation_tools)
|
Gui.injectEditingCommands(
|
||||||
self.appendMenu(["PartDesign", "Dress-Up"], self.dressup_tools)
|
"assembly.edit",
|
||||||
self.appendMenu(["PartDesign", "Boolean"], self.boolean_tools)
|
"Assembly Management",
|
||||||
self.appendMenu(["Assembly", "Structure"], self.assembly_structure_tools)
|
["ZTools_AssemblyLinearPattern", "ZTools_AssemblyPolarPattern"],
|
||||||
self.appendMenu(["Assembly", "Joints"], self.assembly_joint_tools)
|
|
||||||
self.appendMenu(["Assembly", "Management"], self.assembly_management_tools)
|
|
||||||
self.appendMenu(["Spreadsheet", "Edit"], self.spreadsheet_tools)
|
|
||||||
self.appendMenu(["Spreadsheet", "Format"], self.ztools_spreadsheet_tools)
|
|
||||||
self.appendMenu(
|
|
||||||
"ztools",
|
|
||||||
self.ztools_datum_tools
|
|
||||||
+ self.ztools_pattern_tools
|
|
||||||
+ self.ztools_pocket_tools
|
|
||||||
+ self.ztools_assembly_tools
|
|
||||||
+ self.ztools_spreadsheet_tools,
|
|
||||||
)
|
)
|
||||||
|
Gui.injectEditingCommands(
|
||||||
|
"spreadsheet",
|
||||||
|
"Spreadsheet",
|
||||||
|
[
|
||||||
|
"ZTools_SpreadsheetStyleBold",
|
||||||
|
"ZTools_SpreadsheetStyleItalic",
|
||||||
|
"ZTools_SpreadsheetStyleUnderline",
|
||||||
|
"ZTools_SpreadsheetAlignLeft",
|
||||||
|
"ZTools_SpreadsheetAlignCenter",
|
||||||
|
"ZTools_SpreadsheetAlignRight",
|
||||||
|
"ZTools_SpreadsheetBgColor",
|
||||||
|
"ZTools_SpreadsheetTextColor",
|
||||||
|
"ZTools_SpreadsheetQuickAlias",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
App.Console.PrintWarning(f"ztools: could not inject context commands: {e}\n")
|
||||||
|
|
||||||
App.Console.PrintMessage("ztools workbench initialized\n")
|
App.Console.PrintMessage("ztools commands registered\n")
|
||||||
|
|
||||||
def Activated(self):
|
|
||||||
"""Called when workbench is activated."""
|
|
||||||
App.Console.PrintMessage("ztools workbench activated\n")
|
|
||||||
|
|
||||||
def Deactivated(self):
|
|
||||||
"""Called when workbench is deactivated."""
|
|
||||||
pass
|
|
||||||
|
|
||||||
def GetClassName(self):
|
|
||||||
return "Gui::PythonWorkbench"
|
|
||||||
|
|
||||||
|
|
||||||
Gui.addWorkbench(ZToolsWorkbench())
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Eager command registration
|
# WorkbenchManipulator: inject ZTools commands into native workbench toolbars
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# Import command modules at module scope so Gui.addCommand() calls run before
|
|
||||||
# any workbench activates. This ensures the PartDesign manipulator can
|
|
||||||
# reference them regardless of workbench activation order (#52).
|
|
||||||
|
|
||||||
from ztools.commands import (
|
|
||||||
assembly_pattern_commands,
|
|
||||||
datum_commands,
|
|
||||||
pattern_commands,
|
|
||||||
pocket_commands,
|
|
||||||
spreadsheet_commands,
|
|
||||||
)
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# WorkbenchManipulator: inject ZTools commands into PartDesign workbench
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
class _ZToolsPartDesignManipulator:
|
class _ZToolsManipulator:
|
||||||
"""Adds ZTools commands to PartDesign toolbars and menus."""
|
"""Adds ZTools commands to PartDesign, Assembly, and Spreadsheet toolbars."""
|
||||||
|
|
||||||
def modifyToolBars(self):
|
def modifyToolBars(self):
|
||||||
return [
|
return [
|
||||||
|
# PartDesign
|
||||||
{"append": "ZTools_DatumCreator", "toolBar": "Part Design Helper Features"},
|
{"append": "ZTools_DatumCreator", "toolBar": "Part Design Helper Features"},
|
||||||
{"append": "ZTools_DatumManager", "toolBar": "Part Design Helper Features"},
|
{"append": "ZTools_DatumManager", "toolBar": "Part Design Helper Features"},
|
||||||
{
|
{
|
||||||
@@ -353,15 +114,47 @@ class _ZToolsPartDesignManipulator:
|
|||||||
"append": "ZTools_RotatedLinearPattern",
|
"append": "ZTools_RotatedLinearPattern",
|
||||||
"toolBar": "Part Design Transformation Features",
|
"toolBar": "Part Design Transformation Features",
|
||||||
},
|
},
|
||||||
|
# Assembly
|
||||||
|
{"append": "ZTools_AssemblyLinearPattern", "toolBar": "Assembly"},
|
||||||
|
{"append": "ZTools_AssemblyPolarPattern", "toolBar": "Assembly"},
|
||||||
|
# Spreadsheet
|
||||||
|
{"append": "ZTools_SpreadsheetStyleBold", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetStyleItalic", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetStyleUnderline", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetAlignLeft", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetAlignCenter", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetAlignRight", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetBgColor", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetTextColor", "toolBar": "Spreadsheet"},
|
||||||
|
{"append": "ZTools_SpreadsheetQuickAlias", "toolBar": "Spreadsheet"},
|
||||||
]
|
]
|
||||||
|
|
||||||
def modifyMenuBar(self):
|
def modifyMenuBar(self):
|
||||||
return [
|
return [
|
||||||
{"append": "ZTools_DatumCreator", "menuItem": "PartDesign_Body"},
|
{
|
||||||
{"append": "ZTools_DatumManager", "menuItem": "PartDesign_Body"},
|
"insert": "ZTools_DatumCreator",
|
||||||
{"append": "ZTools_EnhancedPocket", "menuItem": "PartDesign_Body"},
|
"menuItem": "PartDesign_Boolean",
|
||||||
{"append": "ZTools_RotatedLinearPattern", "menuItem": "PartDesign_Body"},
|
"after": "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"insert": "ZTools_DatumManager",
|
||||||
|
"menuItem": "ZTools_DatumCreator",
|
||||||
|
"after": "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"insert": "ZTools_EnhancedPocket",
|
||||||
|
"menuItem": "ZTools_DatumManager",
|
||||||
|
"after": "",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"insert": "ZTools_RotatedLinearPattern",
|
||||||
|
"menuItem": "ZTools_EnhancedPocket",
|
||||||
|
"after": "",
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
Gui.addWorkbenchManipulator(_ZToolsPartDesignManipulator())
|
# Deferred registration — wait for dependent workbenches to finish loading
|
||||||
|
from PySide.QtCore import QTimer # noqa: E402
|
||||||
|
|
||||||
|
QTimer.singleShot(2000, _register)
|
||||||
|
|||||||
Binary file not shown.
@@ -1,8 +1,10 @@
|
|||||||
# ztools/resources - Icons and assets
|
# ztools/resources - Icons and assets
|
||||||
from .icons import MOCHA, get_icon, save_icons_to_disk
|
from .icons import MOCHA, get_icon, save_icons_to_disk
|
||||||
|
from .theme import get_stylesheet
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"get_icon",
|
"get_icon",
|
||||||
"save_icons_to_disk",
|
"save_icons_to_disk",
|
||||||
"MOCHA",
|
"MOCHA",
|
||||||
|
"get_stylesheet",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,10 +1,35 @@
|
|||||||
# ztools/resources/icons.py
|
# ztools/resources/icons.py
|
||||||
# Catppuccin Mocha themed icons for ztools
|
# Catppuccin Mocha themed icons for ztools
|
||||||
|
|
||||||
# Catppuccin Mocha Palette — sourced from kindred-addon-sdk
|
# Catppuccin Mocha Palette
|
||||||
from kindred_sdk.theme import get_theme_tokens
|
MOCHA = {
|
||||||
|
"rosewater": "#f5e0dc",
|
||||||
MOCHA = get_theme_tokens()
|
"flamingo": "#f2cdcd",
|
||||||
|
"pink": "#f5c2e7",
|
||||||
|
"mauve": "#cba6f7",
|
||||||
|
"red": "#f38ba8",
|
||||||
|
"maroon": "#eba0ac",
|
||||||
|
"peach": "#fab387",
|
||||||
|
"yellow": "#f9e2af",
|
||||||
|
"green": "#a6e3a1",
|
||||||
|
"teal": "#94e2d5",
|
||||||
|
"sky": "#89dceb",
|
||||||
|
"sapphire": "#74c7ec",
|
||||||
|
"blue": "#89b4fa",
|
||||||
|
"lavender": "#b4befe",
|
||||||
|
"text": "#cdd6f4",
|
||||||
|
"subtext1": "#bac2de",
|
||||||
|
"subtext0": "#a6adc8",
|
||||||
|
"overlay2": "#9399b2",
|
||||||
|
"overlay1": "#7f849c",
|
||||||
|
"overlay0": "#6c7086",
|
||||||
|
"surface2": "#585b70",
|
||||||
|
"surface1": "#45475a",
|
||||||
|
"surface0": "#313244",
|
||||||
|
"base": "#1e1e2e",
|
||||||
|
"mantle": "#181825",
|
||||||
|
"crust": "#11111b",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def _svg_to_base64(svg_content: str) -> str:
|
def _svg_to_base64(svg_content: str) -> str:
|
||||||
|
|||||||
1393
ztools/ztools/resources/theme.py
Normal file
1393
ztools/ztools/resources/theme.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user