chrore: major overhaul of docs, commands, and workflows (#23)
* ci: add status badges to README * chore: major overhaul - docs, commands & workflows * fix: general fixes and improvements * chore: various updates and fixes * chore: minor fixes
This commit is contained in:
+8
-251
@@ -252,255 +252,12 @@ run-gui-custom freecad_path:
|
||||
echo "FreeCAD is starting with MCP bridge..."
|
||||
|
||||
# =============================================================================
|
||||
# Macro Installation (MultiExport, CutObjectForMagnets)
|
||||
# Deprecated Aliases (use install:: module instead)
|
||||
# =============================================================================
|
||||
|
||||
# Install the CutObjectForMagnets macro to FreeCAD's macro directory
|
||||
install-cut-macro:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
PROJECT_DIR="{{project_root}}"
|
||||
|
||||
# Determine macro directory based on OS
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MACRO_DIR="$HOME/Library/Application Support/FreeCAD/Macro"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MACRO_DIR="$HOME/.local/share/FreeCAD/Macro"
|
||||
else
|
||||
MACRO_DIR="$APPDATA/FreeCAD/Macro"
|
||||
fi
|
||||
|
||||
mkdir -p "$MACRO_DIR"
|
||||
|
||||
# Copy the macro file
|
||||
cp "${PROJECT_DIR}/macros/Cut_Object_for_Magnets/CutObjectForMagnets.FCMacro" "$MACRO_DIR/"
|
||||
|
||||
# Optionally copy the icon if it exists
|
||||
if [[ -f "${PROJECT_DIR}/macros/Cut_Object_for_Magnets/CutObjectForMagnets.svg" ]]; then
|
||||
cp "${PROJECT_DIR}/macros/Cut_Object_for_Magnets/CutObjectForMagnets.svg" "$MACRO_DIR/"
|
||||
fi
|
||||
|
||||
echo "CutObjectForMagnets macro installed to: $MACRO_DIR"
|
||||
echo ""
|
||||
echo "To use:"
|
||||
echo " 1. Start FreeCAD"
|
||||
echo " 2. Select an object to cut"
|
||||
echo " 3. Go to: Macro → Macros → CutObjectForMagnets → Execute"
|
||||
echo ""
|
||||
echo "For angled cuts:"
|
||||
echo " 1. Create a datum plane at your desired angle (Part Design → Create datum plane)"
|
||||
echo " 2. Select 'Model Plane' in the macro dialog"
|
||||
echo " 3. Choose your datum plane from the dropdown"
|
||||
|
||||
# Uninstall the CutObjectForMagnets macro
|
||||
uninstall-cut-macro:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MACRO_DIR="$HOME/Library/Application Support/FreeCAD/Macro"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MACRO_DIR="$HOME/.local/share/FreeCAD/Macro"
|
||||
else
|
||||
MACRO_DIR="$APPDATA/FreeCAD/Macro"
|
||||
fi
|
||||
rm -f "$MACRO_DIR/CutObjectForMagnets.FCMacro"
|
||||
rm -f "$MACRO_DIR/CutObjectForMagnets.svg"
|
||||
echo "CutObjectForMagnets macro uninstalled"
|
||||
|
||||
# Install the MultiExport macro to FreeCAD's macro directory
|
||||
install-export-macro:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
PROJECT_DIR="{{project_root}}"
|
||||
|
||||
# Determine macro directory based on OS
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MACRO_DIR="$HOME/Library/Application Support/FreeCAD/Macro"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MACRO_DIR="$HOME/.local/share/FreeCAD/Macro"
|
||||
else
|
||||
MACRO_DIR="$APPDATA/FreeCAD/Macro"
|
||||
fi
|
||||
|
||||
mkdir -p "$MACRO_DIR"
|
||||
|
||||
# Copy the macro file
|
||||
cp "${PROJECT_DIR}/macros/Multi_Export/MultiExport.FCMacro" "$MACRO_DIR/"
|
||||
|
||||
# Optionally copy the icon if it exists
|
||||
if [[ -f "${PROJECT_DIR}/macros/Multi_Export/MultiExport.svg" ]]; then
|
||||
cp "${PROJECT_DIR}/macros/Multi_Export/MultiExport.svg" "$MACRO_DIR/"
|
||||
fi
|
||||
|
||||
echo "MultiExport macro installed to: $MACRO_DIR"
|
||||
echo ""
|
||||
echo "To use:"
|
||||
echo " 1. Start FreeCAD"
|
||||
echo " 2. Select one or more objects to export"
|
||||
echo " 3. Go to: Macro → Macros → MultiExport → Execute"
|
||||
echo " 4. Choose export formats (STL, STEP, 3MF selected by default)"
|
||||
echo " 5. Set output directory and filename"
|
||||
echo " 6. Click Export"
|
||||
|
||||
# Uninstall the MultiExport macro
|
||||
uninstall-export-macro:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MACRO_DIR="$HOME/Library/Application Support/FreeCAD/Macro"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MACRO_DIR="$HOME/.local/share/FreeCAD/Macro"
|
||||
else
|
||||
MACRO_DIR="$APPDATA/FreeCAD/Macro"
|
||||
fi
|
||||
rm -f "$MACRO_DIR/MultiExport.FCMacro"
|
||||
rm -f "$MACRO_DIR/MultiExport.svg"
|
||||
echo "MultiExport macro uninstalled"
|
||||
|
||||
# Install all macros to FreeCAD's macro directory
|
||||
install-all-macros: install-cut-macro install-export-macro
|
||||
@echo "All macros installed successfully!"
|
||||
|
||||
# Uninstall all macros from FreeCAD's macro directory
|
||||
uninstall-all-macros: uninstall-cut-macro uninstall-export-macro
|
||||
@echo "All macros uninstalled successfully!"
|
||||
|
||||
# =============================================================================
|
||||
# Workbench Addon Installation
|
||||
# =============================================================================
|
||||
|
||||
# Install the FreeCAD Robust MCP workbench addon to FreeCAD's Mod directory
|
||||
install-workbench:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
PROJECT_DIR="{{project_root}}"
|
||||
ADDON_NAME="FreecadRobustMCP"
|
||||
|
||||
# Determine FreeCAD Mod directory based on OS
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MOD_DIR="$HOME/Library/Application Support/FreeCAD/Mod"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MOD_DIR="$HOME/.local/share/FreeCAD/Mod"
|
||||
else
|
||||
MOD_DIR="$APPDATA/FreeCAD/Mod"
|
||||
fi
|
||||
|
||||
ADDON_DEST="$MOD_DIR/$ADDON_NAME"
|
||||
|
||||
# Create Mod directory if it doesn't exist
|
||||
mkdir -p "$MOD_DIR"
|
||||
|
||||
# Remove existing installation if present
|
||||
if [[ -d "$ADDON_DEST" ]]; then
|
||||
echo "Removing existing installation at: $ADDON_DEST"
|
||||
rm -rf "$ADDON_DEST"
|
||||
fi
|
||||
|
||||
# Copy the addon directory
|
||||
cp -r "${PROJECT_DIR}/addon/$ADDON_NAME" "$ADDON_DEST"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "FreeCAD Robust MCP Workbench installed!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "Installation path: $ADDON_DEST"
|
||||
echo ""
|
||||
echo "To use:"
|
||||
echo " 1. Start FreeCAD"
|
||||
echo " 2. Select the 'MCP Bridge' workbench from the workbench selector"
|
||||
echo " 3. Click 'Start MCP Bridge' in the toolbar"
|
||||
echo " 4. Connect your MCP client (Claude Code, etc.) to FreeCAD"
|
||||
echo ""
|
||||
|
||||
# Uninstall the FreeCAD Robust MCP workbench addon
|
||||
uninstall-workbench:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ADDON_NAME="FreecadRobustMCP"
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MOD_DIR="$HOME/Library/Application Support/FreeCAD/Mod"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MOD_DIR="$HOME/.local/share/FreeCAD/Mod"
|
||||
else
|
||||
MOD_DIR="$APPDATA/FreeCAD/Mod"
|
||||
fi
|
||||
|
||||
ADDON_DEST="$MOD_DIR/$ADDON_NAME"
|
||||
|
||||
if [[ -d "$ADDON_DEST" ]]; then
|
||||
rm -rf "$ADDON_DEST"
|
||||
echo "FreeCAD Robust MCP Workbench uninstalled from: $ADDON_DEST"
|
||||
else
|
||||
echo "Workbench not found at: $ADDON_DEST"
|
||||
fi
|
||||
|
||||
# Check workbench installation status
|
||||
mcp-status:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Determine directories based on OS
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MOD_DIR="$HOME/Library/Application Support/FreeCAD/Mod"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MOD_DIR="$HOME/.local/share/FreeCAD/Mod"
|
||||
else
|
||||
MOD_DIR="$APPDATA/FreeCAD/Mod"
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
echo "MCP Bridge Installation Status"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check workbench
|
||||
if [[ -d "$MOD_DIR/FreecadRobustMCP" ]]; then
|
||||
echo "✓ Workbench addon: INSTALLED"
|
||||
echo " Path: $MOD_DIR/FreecadRobustMCP"
|
||||
echo ""
|
||||
echo "To use:"
|
||||
echo " 1. Start FreeCAD"
|
||||
echo " 2. Select 'MCP Bridge' workbench"
|
||||
echo " 3. Click 'Start MCP Bridge' in toolbar"
|
||||
else
|
||||
echo "✗ Workbench addon: NOT INSTALLED"
|
||||
echo ""
|
||||
echo "To install:"
|
||||
echo " just freecad::install-workbench"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check for legacy installations that should be cleaned up
|
||||
LEGACY_COUNT=0
|
||||
|
||||
if [[ -d "$MOD_DIR/MCPBridge" ]]; then
|
||||
echo "⚠ Legacy plugin found: $MOD_DIR/MCPBridge"
|
||||
echo " Run: rm -rf \"$MOD_DIR/MCPBridge\""
|
||||
((LEGACY_COUNT++)) || true
|
||||
fi
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
MACRO_DIR="$HOME/Library/Application Support/FreeCAD/Macro"
|
||||
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
MACRO_DIR="$HOME/.local/share/FreeCAD/Macro"
|
||||
else
|
||||
MACRO_DIR="$APPDATA/FreeCAD/Macro"
|
||||
fi
|
||||
|
||||
if [[ -f "$MACRO_DIR/StartMCPBridge.FCMacro" ]]; then
|
||||
echo "⚠ Legacy macro found: $MACRO_DIR/StartMCPBridge.FCMacro"
|
||||
echo " Run: rm \"$MACRO_DIR/StartMCPBridge.FCMacro\""
|
||||
((LEGACY_COUNT++)) || true
|
||||
fi
|
||||
|
||||
if [[ $LEGACY_COUNT -gt 0 ]]; then
|
||||
echo ""
|
||||
echo "Note: Legacy installations can be removed. The workbench replaces them."
|
||||
fi
|
||||
|
||||
echo "=========================================="
|
||||
|
||||
# Check if the workbench addon is installed (alias for mcp-status)
|
||||
workbench-status: mcp-status
|
||||
# These are kept for backwards compatibility but will be removed in a future version.
|
||||
# Use the new install:: module commands instead:
|
||||
# just install::macro-cut (was: just freecad::install-cut-macro)
|
||||
# just install::macro-export (was: just freecad::install-export-macro)
|
||||
# just install::macro-all (was: just freecad::install-all-macros)
|
||||
# just install::mcp-bridge-workbench (was: just freecad::install-workbench)
|
||||
# just install::status (was: just freecad::mcp-status)
|
||||
|
||||
Reference in New Issue
Block a user