Skip to content

Releases: robertoSreis/Prusa2Orca

Windows - Beta 0.1

Windows - Beta 0.1 Pre-release
Pre-release

Choose a tag to compare

@robertoSreis robertoSreis released this 27 Dec 11:27
3974d3d

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:

  1. Python 3.7+ installed
  2. Microsoft Visual C++ 14.0+ (Visual Studio Build Tools)
  3. Nuitka package: pip install nuitka
  4. 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

  1. Right-click build_nuitka.ps1
  2. 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 dist folder

Compilation time: 2-5 minutes (first build may take longer)


🔧 Manual Nuitka Build (Alternative)

If you prefer to build manually:

# Install Nuitka
pip install nuitka

Basic 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...

Read more