Releases: robertoSreis/Prusa2Orca
Release list
Windows - Beta 0.1
Release Notes - SE3D Prusa/Orca Converter
⚠️ Experimental Release Notice
Important Information About This Release
This is an experimental release that has been tested exclusively with the author's personal configurations. While the software has been thoroughly tested in the author's environment, it may behave differently with other configuration files or system setups.
Testing Scope
- ✅ Tested on: Windows 10/11
- ✅ Tested with: Author's personal PrusaSlicer profiles
⚠️ Limited testing with diverse configuration files⚠️ Community testing and feedback needed
Compilation Details
Current Release:
- Compiled with: PyInstaller
- Platform: Windows x64
- Python Version: 3.11.x
- Build Method:
--onefile --windowed
Known Limitations:
- Larger executable size (~15-25 MB)
- Slower startup time (1-3 seconds)
- Higher memory footprint
- Antivirus false positives possible
🚀 Recommended: Build with Nuitka for Better Performance
For optimal performance, it is highly recommended to compile the application yourself using Nuitka. Nuitka provides:
Advantages of Nuitka Compilation:
- ⚡ Faster Execution: 2-3x faster runtime performance
- 📦 Smaller Size: Up to 50% smaller executable
- 🚀 Instant Startup: Near-instant application launch
- 💾 Lower Memory Usage: More efficient memory management
- 🔒 Better Security: Native code compilation
- ✅ Fewer False Positives: Less likely to trigger antivirus software
Performance Comparison:
| Metric | PyInstaller | Nuitka | Improvement |
|---|---|---|---|
| Startup Time | 1-3 seconds | <0.5 seconds | 2-6x faster |
| File Size | ~20 MB | ~10 MB | 50% smaller |
| Memory Usage | ~80 MB | ~40 MB | 50% less |
| Execution Speed | Baseline | 2-3x faster | 200-300% |
How to Build with Nuitka
A PowerShell script (build_nuitka.ps1) is provided to automate the Nuitka compilation process. See instructions below.
📋 Prerequisites for Building
Before building with Nuitka, ensure you have:
- Python 3.7+ installed
- Microsoft Visual C++ 14.0+ (Visual Studio Build Tools)
- Nuitka package:
pip install nuitka - Administrator privileges (for first-time builds)
🛠️ Building with Nuitka (Automated)
Step 1: Download the Build Script
Save the build_nuitka.ps1 script (provided below) in the same directory as Prusa2Orca.py.
Step 2: Run the Script
Option A: Right-click method
- Right-click
build_nuitka.ps1 - Select "Run with PowerShell"
Option B: Command line method
# Open PowerShell in the project directory
powershell -ExecutionPolicy Bypass -File build_nuitka.ps1
Step 3: Wait for Compilation
The script will:
- ✅ Check for dependencies
- ✅ Install Nuitka if needed
- ✅ Compile the application
- ✅ Create an optimized executable in the
distfolder
Compilation time: 2-5 minutes (first build may take longer)
🔧 Manual Nuitka Build (Alternative)
If you prefer to build manually:
# Install Nuitka pip install nuitkaBasic compilation
python -m nuitka --standalone --onefile --enable-plugin=tk-inter --windows-disable-console --windows-icon-from-ico=Prusa2Orca.ico Prusa2Orca.py
Advanced compilation (recommended)
python -m nuitka --standalone --onefile --enable-plugin=tk-inter --windows-disable-console --windows-icon-from-ico=Prusa2Orca.ico --assume-yes-for-downloads --remove-output --output-dir=dist --output-filename=Prusa2Orca.exe Prusa2Orca.py
📝 Build Script: build_nuitka.ps1
# ============================================================================
# SE3D - Prusa/Orca Converter - Nuitka Build Script
# Author: Roberto Reis - Aracaju/SE [BR]
# Description: Automated Nuitka compilation script for optimal performance
# ============================================================================
Script configuration
$ErrorActionPreference = "Stop"
$ProgressPreference = "Continue"
Colors for output
$ColorSuccess = "Green"
$ColorWarning = "Yellow"
$ColorError = "Red"
$ColorInfo = "Cyan"
Script banner
Write-Host ""
Write-Host "============================================================================" -ForegroundColor $ColorInfo
Write-Host " SE3D - Prusa/Orca Converter - Nuitka Build Script" -ForegroundColor $ColorInfo
Write-Host " Building optimized executable with Nuitka..." -ForegroundColor $ColorInfo
Write-Host "============================================================================" -ForegroundColor $ColorInfo
Write-Host ""
Function to print colored messages
function Write-Step {
param($Message, $Color = "White")
Write-Host "[BUILD] $Message" -ForegroundColor $Color
}
function Write-Success {
param($Message)
Write-Host "[SUCCESS] $Message" -ForegroundColor $ColorSuccess
}
function Write-Warning {
param($Message)
Write-Host "[WARNING] $Message" -ForegroundColor $ColorWarning
}
function Write-Error-Message {
param($Message)
Write-Host "[ERROR] $Message" -ForegroundColor $ColorError
}
Check if Python is installed
Write-Step "Checking Python installation..." $ColorInfo
try {
$pythonVersion = python --version 2>&1
Write-Success "Python found: $pythonVersion"
} catch {
Write-Error-Message "Python is not installed or not in PATH!"
Write-Host "Please install Python 3.7+ from https://www.python.org/" -ForegroundColor $ColorWarning
Read-Host "Press Enter to exit"
exit 1
}
Check if source file exists
Write-Step "Checking source files..." $ColorInfo
if (-not (Test-Path "Prusa2Orca.py")) {
Write-Error-Message "Prusa2Orca.py not found in current directory!"
Write-Host "Please run this script in the same directory as Prusa2Orca.py" -ForegroundColor $ColorWarning
Read-Host "Press Enter to exit"
exit 1
}
Write-Success "Source file found: Prusa2Orca.py"
Check if icon exists
if (-not (Test-Path "Prusa2Orca.ico")) {
Write-Warning "Icon file (Prusa2Orca.ico) not found. Building without custom icon..."
$iconParam = ""
} else {
Write-Success "Icon file found: Prusa2Orca.ico"
$iconParam = "--windows-icon-from-ico=Prusa2Orca.ico"
}
Check if Nuitka is installed
Write-Step "Checking Nuitka installation..." $ColorInfo
try {
$nuitkaVersion = python -m nuitka --version 2>&1
Write-Success "Nuitka found: $nuitkaVersion"
} catch {
Write-Warning "Nuitka not found. Installing Nuitka..."
try {
python -m pip install --upgrade nuitka
Write-Success "Nuitka installed successfully!"
} catch {
Write-Error-Message "Failed to install Nuitka!"
Write-Host "Please install manually: pip install nuitka" -ForegroundColor $ColorWarning
Read-Host "Press Enter to exit"
exit 1
}
}
Check for Visual C++ Build Tools
Write-Step "Checking for C++ compiler..." $ColorInfo
$vcInstalled = Test-Path "C:\Program Files (x86)\Microsoft Visual Studio**\VC\Tools\MSVC*\bin\Hostx64\x64\cl.exe"
if (-not $vcInstalled) {
Write-Warning "Microsoft Visual C++ Build Tools may not be installed."
Write-Host "Nuitka will attempt to download a compiler automatically." -ForegroundColor $ColorWarning
Write-Host "If build fails, install Visual Studio Build Tools from:" -ForegroundColor $ColorWarning
Write-Host "https://visualstudio.microsoft.com/visual-cpp-build-tools/" -ForegroundColor $ColorWarning
Write-Host ""
}
Clean previous builds
Write-Step "Cleaning previous builds..." $ColorInfo
if (Test-Path "dist") {
Remove-Item -Path "dist" -Recurse -Force -ErrorAction SilentlyContinue
}
if (Test-Path "Prusa2Orca.build") {
Remove-Item -Path "Prusa2Orca.build" -Recurse -Force -ErrorAction SilentlyContinue
}
if (Test-Path "Prusa2Orca.dist") {
Remove-Item -Path "Prusa2Orca.dist" -Recurse -Force -ErrorAction SilentlyContinue
}
if (Test-Path "Prusa2Orca.onefile-build") {
Remove-Item -Path "Prusa2Orca.onefile-build" -Recurse -Force -ErrorAction SilentlyContinue
}
Write-Success "Clean completed"
Create output directory
Write-Step "Creating output directory..." $ColorInfo
New-Item -ItemType Directory -Path "dist" -Force | Out-Null
Write-Success "Output directory created: dist"
Build with Nuitka
Write-Host ""
Write-Host "============================================================================" -ForegroundColor $ColorInfo
Write-Host " Starting Nuitka compilation..." -ForegroundColor $ColorInfo
Write-Host " This may take 2-5 minutes. Please be patient..." -ForegroundColor $ColorInfo
Write-Host "============================================================================" -ForegroundColor $ColorInfo
Write-Host ""
$startTime = Get-Date
try {
# Nuitka build command with optimal settings
$nuitkaArgs = @(
"-m", "nuitka",
"--standalone",
"--onefile",
"--enable-plugin=tk-inter",
"--w...