Skip to content
This repository has been archived by the owner on Sep 23, 2024. It is now read-only.

Commit

Permalink
Dev/v1.9 (#19)
Browse files Browse the repository at this point in the history
* Fix purging not working for BBL printers (SoftFever#2912)

* Fix crash when closing application  (SoftFever#2904)

* Update GUI_ObjectList.cpp

* Update GUI_ObjectList.cpp

(cherry picked from commit d71eaf9)

* Flashforge: Machine G-code Fix (SoftFever#2922)

Machine G-code Fix

(cherry picked from commit 930eac0)

* T500 profile fixes and optimizations (SoftFever#2848)

Corrected corrupted buildplate texture, corrected too high accelerations that made printing 0.4mm impossible, optimized T500 print and filament profiles with testing

(cherry picked from commit 10a0f58)

* Russian translation update OrcaSlicer V1.8.0 Release. (SoftFever#2873)

* Russian translation update

Russian translation update

* Russian translation update

Russian translation update

(cherry picked from commit 48c9143)

* Adding new nozzle profiles for the Creality Ender-5 Pro (2019) (SoftFever#2817)

* Add 0.6mm Nozzle Configurations for CE5Pro

* Add 0.5mm Nozzle Configurations for CE5Pro

* Add Nozzle Size Printer Variants 0.2-1.0mm

* Add 0.3mm Printer Variant

* Add 0.5mm Printer Variant

* Fix: 0.6mm Printer Variant

* Add Remaining Printer Variants

* Add CE5Pro Nozzles to list of Compatible Filament

* Add Generic FDM Process for Creality 0.3 Nozzle

* Update Generic FDM Process for Creality 0.6 Nozzle

* Add FDM Process for Remaining Creality Nozzle

* Add Processes For CE5Pro 0.8mm Nozzle

* Add Processes For CE5Pro 1.0mm Nozzle

* Add Processes For CE5Pro 0.2mm Nozzle

* Fix Initial Layer Settings

* Add Processes For CE5Pro 0.25mm Nozzle

* Add Processes For CE5Pro 0.3mm Nozzle

* Remove Profiles Outside their Min/Max Layer Height

* Update CE5Pro 0.4 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.2 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.25 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.3 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.5 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.6 Nozzle Naming Scheme to PR1100

* Update CE5Pro 0.8 Nozzle Naming Scheme to PR1100

* Update CE5Pro 1.0 Nozzle Naming Scheme to PR1100

* Incl. Remaining Base Config That Diff Is Based On

* Remove whitespace

(cherry picked from commit eab8139)

* Revert "Adding new nozzle profiles for the Creality Ender-5 Pro (2019) (SoftFever#2817)"

This reverts commit 09a8fa3.

* Merge pull request SoftFever#2780 from Noisyfox:bugfix/amd-png

Fix PNG build plate texture not rendering on AMD GPUs

(cherry picked from commit 93f62a4)

* Internal Bridge Flow rate parameter introduction

Updated internal bridging flow change and reverted bridge PR (SoftFever#2943)

Updated internal bridging flow change & reverted bridge PR

(cherry picked from commit ae9a2d5)
Internal Bridge Flow rate parameter introduction (SoftFever#2859)

* Internal Bridge Flow rate parameter introduction

* updated incorrect capitalisation

* Updated parameter ordering

(cherry picked from commit ce9a8d7)

* thick internal bridges (SoftFever#2954)

* Improve arc fitting when new overhang slowdown is used (SoftFever#2942)

(cherry picked from commit 3923b9c)

* disable misleading 3mf version warning

* bump version to V1.8.1

* Build release branches

* Update locale

* Improve PA calibration Line method so it works for bed origin not in (0,0)

* Fix precise wall for Arachne wall generator (SoftFever#2966)

Update WIKI for it

* Fix mac notary

* functional build - untested auto fire

* needs work, but working.

* small changes

* few small changes from Mac attack

* fix thread issue w/ WebView

* intermediate checkin.
- everything works; no intermediate messaging.

* sweeping changes to cleanup.  Build works.  Send/Recieve Commands and prints.
check-in prior to implementing eventing for messaging back to the client, and attempting events for slicing complete (again).

* reliable and functional for STL, uses current Dynamic Settings (whatever the UI is set to) for slicing.

* 3MF files (somewhat working) - assume 3MF saved from BBS/Orca.

* syntax updates for MacOS build + added windows build file for RelWithDebInfo

* events working up to slice complete / start send print.

* working; stupid events can go event themselves.

* sending messages again.

* let's go

* wtf checkin

* functioning well on slow poll.  dialog issuess.

* working every 5 secs.

* revert progress yield, remove m_info

* FUNCTIONING GREAT

* slight refactor for validating commands before processing.

* alpha build:
Missing: - config/download/load
              - gcode printing.

* round/cast float values to ints

* [#] - trim originalCommand in responses
[#] - ditch interstitial blocking push messages.
[#] - round numbers in status.

* configs cehckpoint

* fetch cofig working

* fixed leading /

* [#] - Attempt to delete file.ext.download and file.ext before downloading them].
 [#] - Move the download folder (it's in default user Download folder; user can easily manipulate transient files).

* fix job progress bug; not setting to 0 on SetProcessJob(true)

* Move DL_CACHE into deps folder. Make cross compile easier

* force to use own glew even if the system has installed one(brew)

* upgrade libjpeg-turbo to 3.0.1 to properly suppor cross compile

* upgrade to macos 13 (SoftFever#3289)
brew uninstall --ignore-dependencies zstd
Use local curl
remove brew/macport dependency

* downgrade to macos-12 as there are not many macos-13 runner instances availble yet

* fix for server timeout; prototype Confg

* workaround to solve unwanted zstd dependency on runner (SoftFever#3298)

* trigger build

* Remove zstd only for dep build

* reinstall zstd after building completed

* able to change printer config via UI

* Don't hide exclude_object option for Marlin/RRF firmwares as Orca now support these firmwares
Fixed SoftFever#3267

* Update Turkish translation (SoftFever#3270)

* Update OrcaSlicer_tr.po

New English terms were translated into Turkish.

* Update OrcaSlicer_tr.po

* Turkish language sentences were added.

* Turkish words were edited.

* Turkish words were edited.

* Turkish words were edited.

* Turkish words were edited.

* Turkish words were edited.

* Turkish translation update

* Update Turkish translation

* kor translation update (SoftFever#3272)

fix type

다리 -> 브릿지
프리셋 -> 사전설정
퇴출 -> 후퇴
갭 -> 간격
인쇄 -> 출력

* Update README.md (SoftFever#3281)

bellow -> below

* kor translation update (SoftFever#3288)

fix typo

* Layer height can't be zero. Fixed SoftFever#3268

* Fixed a regression that Turkish lang option was missing

Fixed SoftFever#3278

* Fixed a bug that spiral_mode_max_xy_smoothing was not hiden when vase is not enabled

* QIDI: Add two new filaments (SoftFever#3304)

* 10-25

Add TPU-95A HF

* 1030

Adding Introduction of Chamber Temperature Control Macros(M191) to Notes

* 1102

Add ABS-GF10 profile,
Remove a extra "s" from the "0.36mm Standard @Qidi XPlus3 0.6 nozzle.json" file

* 1106

Add the PA value to some genetic filament profiles

* Add new filaments profiles

Add new filaments profiles

* 1

1

* Add two new filaments

Add two new filaments

* Update OrcaSlicer_fr.po (SoftFever#3295)

* Update OrcaSlicer_fr.po

Added missing translations.

* Update OrcaSlicer_fr.po

* Update OrcaSlicer_fr.po

* Update OrcaSlicer_fr.po

* Update OrcaSlicer_fr.po

* ENH: Port of "wipe inside before extruding an external perimeter" feature from super slicer (SoftFever#3287)

* Wipe Inside at Start of perimeter

Co-Authored-By: Merill <[email protected]>

* Cleaned up code and linked it to the wipe on loop parameter

* Trigger build

* Introduced wipe before external loop parameter.

* Removed redundant functions

---------

Co-authored-by: Merill <[email protected]>
Co-authored-by: SoftFever <[email protected]>

* Fixed a regression bug that --datadir was broken
fixed SoftFever#3191

* add more hints

* fix/update locale

* Fixes and simplification of some Creality profiles. (SoftFever#3315)

* Fixes and simplification of some Creality profiles.

* Set correct support_air_filtration for K1 Max

* Fixed typo (SoftFever#3331)

* Fixed typo

* An other swtitch

* Main-i-fold(tm)

* Profile: Anker M5/C first layer consistency improvements (SoftFever#3321)

first layer consistency improvments

* make `exclude_object` off by default

* check for new version rework, support "check for stable updates only" mode

* update locale

* Changed Slic3r mentions (SoftFever#3344)

* Update German translation for 1.9 (SoftFever#3343)

* Updated Italian translation (SoftFever#3347)

* create datadir folder if not exist

* Rename '.bbscfg/bbsflmt' to 'orca_printer/orca_filament' for clarity and to reduce user errors. Note: Configs may no longer be compatible with BS hence the change

* fix po errors

* Update OrcaSlicer_tr.po - TURKISH translation update (SoftFever#3354)

Co-authored-by: SoftFever <[email protected]>

* Feature/build target 10.15 (SoftFever#3252)

* Set target to 10.15, make porter templates explicit

* CMAKE_OSX_DEPLOYMENT_TARGET refactor

* Update build_release_macos.sh

fix typo

---------

Co-authored-by: SoftFever <[email protected]>

* preset export small tweak

* bump version to 1.9.0 beta

* remove P1P-P1S warning

(cherry picked from commit 1d8cdf0)

* Fix preview legend window size (SoftFever#3363)

Fix issue that the legend window expands to all available horizontal space if scrollbar is displayed

(cherry picked from commit a8ade15)

* fixed a crash bug when switching to Bambu device page too fast

* Fix de for 1.9 release (SoftFever#3387)

fix some typos and new msgids

* Fr translations (SoftFever#3361)

* Updated French translations.

* Reword "strength"

* Updated translations

* Added missing translations.

* Fixed place on face translation

* Fixed strings.

* Updated locales

* Better translation for "Brim ears"

* Other round of fixes

* Added missing strings

* Renaming studio to Orca.

* Rewording "Arc fitting"

* Flush means purge and not "rinçage"

(cherry picked from commit 8afb675)

* Creality Ender 3 V3/KE important fixes and some fine-tunings (SoftFever#3362)

* Fixed retraction speed and added missing parameters.

* Fixes for manual filament change

* More tunings and fixes.

* Fixes and tunings

* Formatting

* Decrease z-hop for K1

* Updated thumbnails sizes to the same as Creality Print has.

(cherry picked from commit 98a9bf6)

* Update README.md to provide alternative download links of webview2 runtimes (SoftFever#3384)

Improve install and build instructions slightly.

(cherry picked from commit 60ab79c)

* Fix crash when click the color paint gizmo when object part is selected (SoftFever#3405)

Fix crash when click the color paint gizmo when object part is selected (SoftFever#3404)

Cherry-picked from bambulab/BambuStudio@1e99ce9

Co-authored-by: liz.li <[email protected]>
(cherry picked from commit 8fd4477)

* kor translation update (SoftFever#3406)

(cherry picked from commit 52c08ca)

* edit Ukrainian translation (SoftFever#3403)

(cherry picked from commit c623070)

* Update OrcaSlicer_tr.po - TURKISH translation update (SoftFever#3396)

* Update OrcaSlicer_tr.po - TURKISH translation update

* Update OrcaSlicer_tr.po - TURKISH translation update

---------

Co-authored-by: SoftFever <[email protected]>
(cherry picked from commit 1dfaef3)

* Revert "Improve ExtrusionLine::simplify, eliminating many very-short extrusion segments which led to blemishes in thin-wall models sliced with Arachne (SoftFever#3014)"

This reverts commit 3ca290d.

Fixed SoftFever#3340 SoftFever#3375

(cherry picked from commit a36df66)

* Creality K1/K1 Max, Ender 3 V3 Series and Ender 5 S1 baseplates (SoftFever#3365)

* Fixed retraction speed and added missing parameters.

* Fixes for manual filament change

* More tunings and fixes.

* Fixes and tunings

* Formatting

* Decrease z-hop for K1

* K1/K1 Max, Ender 3 V3 and Ender 5 S1 correct build platforms (Thanks Henlor !)

(cherry picked from commit 967dc3d)

* Fixed crashes caused by pressure eq when support is used (SoftFever#3407)

Fixed crashed caused by pressure eq when support is used

(cherry picked from commit 2f916f5)

* Fxied a regression that wall order can't be set in height modifier

(cherry picked from commit 5683729)

* fix intermittent crashes caused by detect_overhang_wall

(cherry picked from commit 4d1885e)

* Updated French translations. (SoftFever#3410)

on-behalf-of: @tomsbasement [email protected]
(cherry picked from commit 2cfcd0d)

* Update 0.48mm Standard @bbl X1C 0.8 nozzle.json (SoftFever#3379)

* Update 0.48mm Standard @bbl X1C 0.8 nozzle.json

Removed P1S 0.6mm nozzle from process profile.

* fix

---------

Co-authored-by: SoftFever <[email protected]>
(cherry picked from commit f99394b)

* Added PAUSE command for change_filament_gcode on Elegoo Neptune 4 series (SoftFever#3411)

Added PAUSE command for change_filament_gcode

on-behalf-of: @tomsbasement <[email protected]>
(cherry picked from commit 9701ab1)

* bump version to 1.9.0 rc

* Set CMAKE_OSX_DEPLOYMENT_TARGET properly on dev machine when calling build_release_mac.sh

(cherry picked from commit 8d5bb6c)

* Improve rendering quality when model color is pure black

(cherry picked from commit 9e443ba)

* Fix issue that "Per-glyph" option not working when UI is in Chinese (SoftFever#3425)

(cherry picked from commit 712478c)

* bump to 1.9.0 official version

* Fix boost download server issue

* some profile changes based on feedbacks

(cherry picked from commit 8e3f7e7)

* Fix NaN when adding negative part (SoftFever#3423) (SoftFever#3431)

(cherry picked from commit 1ea33f0)

* Feature/update deps (SoftFever#3445)

* update deps

* fix win build errors

* fix mac build

* update linux

* QoL: Keyboard shortcuts updates & fixes (SoftFever#3457)

* Bring back the shortcut to zoom in & out

* Update keyboard shortcut info

* Update keyboard shortcut info

* Different handling of shortcut 'T' for emboss text

Cherry-picked from prusa3d/PrusaSlicer@58e3143

Co-authored-by: Filip Sykala - NTB T15p <[email protected]>

---------

Co-authored-by: Filip Sykala - NTB T15p <[email protected]>

* skip writting object info for BBL printers

* fix object exclusion regression on BBL printers

* update gitignore

* Fixed crashes when send gcode to BBL printers

* Added an option to enable multiple bed type support for printers

* Fixed an issue that some profiles has ironings enabled by default

* bump version profile version to "01.09.00.02"

* reliably downloading, setting configs.

* reliably import, load, and set configs from Printago.

* end-to-end

* [#] - get list of printers based on input of printer;
Compatible Printer Config names will be returned with the machine status/machine_list calls.

* [#] - add compat filament/print configs to printer config reply.
when retrieving a "print" config, it also list names of compatible filament and print configs that will work.

* mac build error. FilePath requires non-WxString.

* disable PrintagoPanel right-click/context menu

* switch temp dir to match BBL download style using filesystem::temp_directory_path() - TBD test on MacOS for fix.

* mac bug with string format

* thread pool test - build success; non-functional.

* swtich printer logic.

* [#] - Disable UI - m_tabPanel and mTopBar are disabled/enabled by SetCanProcessJob

* remove version check dialog.

* dont forget...to...run...this...

* [#] - JobID (from Printago):
 [#] - File System: append PrintagoJobID to the folder structure when downloading/creating models/configs.
 [#] - set in blocking job info (CanProcessJob stuff)

* FEATURE COMPLETE FOR E2E TESTING

* Ready for re-branding

* cosmetic changes (Orca PE)

* small thing.

* Dev/feature/mqtt proxy (#4)

* web socket connection replace GUI thread WebView.
* added bbl "checkbox" print options. (+ chekcbox checked req'd stuff)
* added support for plate_type incoming variable
* interstitial blocking job process updates
* remove PrintagoPanel reference and files
* change to PBJob server state / messaging.
* remove legacy PrintagoPanel files.

* json message format done (#5)

* Dev/ws auth check (#6)

* formattting mostly.

* refactored parameters to be json.
added authorization flow for web socket commands.

* priortize auth errors over bad command errors.

* dingle pointers.

* ParseJson

Made this more robust for parameters object, passed input command from stream as value; pass by ref may have been causing segfault as it went out of scope from the calling function.

* memory leaks

"new" leak from PrintagoReponse.  Switched to unique_ptr

* Dev/all off UI thread when able (#7)

* private machine_dialog

and further memory savings

* small memory savings

* single connection (#8)

* small fix to success message

* Mac Bug: crash after print send success message (#9)

Bad reference; fix w/ copy + CallAfter

* mistake from refactor (#10)

unblock UI *only* when erroring from within a blocking operation.

* checking (#11)

* Remove Dialogs ;  (#14)

9 classes derived from the MsgDialog class. These messages are now, sent to the printago websocket. The dialogs are not shown.
For instances where ShowModal() was used to open the dialog, I return the most falsy one. The buttons are dynamic, but from a fixed set. We send back to caller whatever is availabe in the dialog, in this order: ["Cancel", "No", "OK", "Yes"].
These message are more like notifications. They are feedback more than they are anything for the user to action.

Separately, there are the classes that derive from the parent class of MsgDialog. Most we can ignore:

InputIpAddressDialog - sending to printer error, cancels blocking job
UpdateVersionDialog - lambda that creates it was previously commented.
SecondaryCheckDialog - "Are you sure" messages, cancels blocking job
ConfirmBeforeSendDialog - slicing error messages, cancels blocking job.
ReleaseNoteDialog - called in one place, commented out.
UpdatePluginDialog - called once at startup; commented out.

* Squashed commit of the following:

commit ca3b071
Author: PilotMatt <[email protected]>
Date:   Mon Feb 26 12:29:40 2024 -0500

    override tested and funcitonign

commit a79dcfe
Author: PilotMatt <[email protected]>
Date:   Mon Feb 26 00:25:34 2024 -0500

    working

commit a857816
Author: PilotMatt <[email protected]>
Date:   Sun Feb 25 00:12:26 2024 -0500

    done

    download the configs you pass.  If there's a override file,
    open both into json objects, and replace the values in the override value for all keys, except those excluded.
    for layer-height fields, we open the printer config, read the min/max and clamp the override value as needed.
    if the printer config doens't specify the max layer height (=0), then the max_layer_height is 75% of the nozzle_diameter.
    save  the merged config file with a new file name.
    update the filename to pooint to the merged one.
    load configs into Orca as previously.

commit 84db29b
Author: PilotMatt <[email protected]>
Date:   Sat Feb 24 23:41:43 2024 -0500

    cvhanges

* status/sync_profiles command complete. (#17)

Command will fetch profiles from BBL account into Orca.  Async command.  Replies:
{
  "client_type": "bambu",
  "command": {
    "action": "sync_profiles",
    "command": "status"
  },
  "data": {
    "local_command": "sync_profiles",
    "local_command_detail": "syncing profiles: async start",
    "success": true
  },
  "printer_id": "[email protected]",
  "timestamp": "2024-02-26T21:43:59Z",
  "type": "success"
}

{
  "client_type": "bambu",
  "command": "sync_profiles",
  "data": {
    "local_command": "sync_profiles",
    "local_command_detail": "syncing profiles: complete",
    "success": true
  },
  "printer_id": "[email protected]",
  "timestamp": "2024-02-26T21:44:04Z",
  "type": "success"
}

* fix for logging success/failure of profile sync

---------

Co-authored-by: Ioannis Giannakas <[email protected]>
Co-authored-by: FlashforgeOfficial <[email protected]>
Co-authored-by: Trist0ne <[email protected]>
Co-authored-by: Andy <[email protected]>
Co-authored-by: Paul <[email protected]>
Co-authored-by: SoftFever <[email protected]>
Co-authored-by: Olcay ÖREN <[email protected]>
Co-authored-by: Lee Jong Mun <[email protected]>
Co-authored-by: Ikko Eltociear Ashimine <[email protected]>
Co-authored-by: Hukete <[email protected]>
Co-authored-by: Thomas <[email protected]>
Co-authored-by: Merill <[email protected]>
Co-authored-by: just-trey <[email protected]>
Co-authored-by: Heiko Liebscher <[email protected]>
Co-authored-by: Fabio Forcina <[email protected]>
Co-authored-by: kpishere <[email protected]>
Co-authored-by: Noisyfox <[email protected]>
Co-authored-by: Silence <[email protected]>
Co-authored-by: Vitalii Kutia <[email protected]>
Co-authored-by: SufficentMuffin <[email protected]>
Co-authored-by: Filip Sykala - NTB T15p <[email protected]>
  • Loading branch information
1 parent f5f9833 commit af5db0a
Show file tree
Hide file tree
Showing 31 changed files with 2,950 additions and 284 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ Explore the latest developments in Orca Slicer with our nightly builds. Feedback
1. Download the installer for your preferred version from the [releases page](https://github.com/SoftFever/OrcaSlicer/releases).
- *For convenience there is also a portable build available.*
- *If you have troubles to run the build, you might need to install following runtimes:*
- [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/printago/OrcaSlicer-PrintagoEdition/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe)
- [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe)
- [Details of this runtime](https://aka.ms/webview2)
- [Alternative Download Link Hosted by Microsoft](https://go.microsoft.com/fwlink/p/?LinkId=2124703)
- [vcredist2019_x64](https://github.com/printago/OrcaSlicer-PrintagoEdition/releases/download/v1.0.10-sf2/vcredist2019_x64.exe)
- [vcredist2019_x64](https://github.com/SoftFever/BambuStudio-SoftFever/releases/download/v1.0.10-sf2/vcredist2019_x64.exe)
- [Alternative Download Link Hosted by Microsoft](https://aka.ms/vs/17/release/vc_redist.x64.exe)
- This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`

Expand Down
File renamed without changes.
458 changes: 458 additions & 0 deletions resources/images/printago_p.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions resources/images/printago_small.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
"Bambu Lab P1S 0.8 nozzle",
"Bambu Lab X1E 0.8 nozzle"
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
"40"
],
"single_extruder_multi_material": "1",
"change_filament_gcode": "",
"change_filament_gcode": "PAUSE",
"machine_pause_gcode": "M0",
"default_filament_profile": [
"Elegoo Generic PLA"
Expand Down
Binary file added resources/web/printago/img/printago.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
97 changes: 97 additions & 0 deletions resources/web/printago/loading.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Connecting to Printago</title>
<script>
var retryInterval = 500;
var maxInterval = 60000;
var printagoUrl = 'http://localhost:3000/testInterface.html';

function increaseInterval() {
if (retryInterval < maxInterval) {
retryInterval += 5000;
}
}

function retryLoad() {
fetch(printagoUrl) // Replace with your content URL
.then(function (response) {
if (response.status === 200) {
console.log('Content loaded successfully.');
window.location.href = printagoUrl; // Change the URL after successful load
} else {
setTimeout(retryLoad, retryInterval); // Retry after the retryInterval
}
})
.catch(function (error) {
setTimeout(retryLoad, retryInterval); // Retry on network error or other fetch-related issues
});
}

function startRetryProcess() {
retryLoad();
increaseInterval();
}

startRetryProcess();
</script>



<style>
body, html {
height: 100%;
margin: 0;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
background-color: #f4f4f4;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
.logo {
margin-bottom: 20px;
}
.loader {
border: 6px solid #f3f3f3; /* Light grey */
border-top: 6px solid #3498db; /* Blue */
border-radius: 50%;
width: 50px;
height: 50px;
animation: spin 2s linear infinite;
margin: 0 auto;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.message {
font-size: 1.5em;
color: #333;
margin-top: 20px;
}
</style>
</head>
<body>

<div class="container">
<div class="logo">
<img src=" img/printago.png" alt="Printago Logo" width="200" />
</div>
<div class="loader"></div>
<div class="message">
Connecting to Printago
</div>
</div>

</body>
</html>
5 changes: 0 additions & 5 deletions src/libslic3r/AppConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1265,11 +1265,6 @@ std::string AppConfig::version_check_url(bool stable_only/* = false*/) const
return from_settings.empty() ? stable_only ? VERSION_CHECK_URL_STABLE : VERSION_CHECK_URL : from_settings;
}

std::string AppConfig::profile_update_url() const
{
return PROFILE_UPDATE_URL;
}

bool AppConfig::exists()
{
return boost::filesystem::exists(config_path());
Expand Down
55 changes: 22 additions & 33 deletions src/libslic3r/Arachne/utils/ExtrusionLine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
if (junctions.size() <= min_path_size)
return;

// TODO: allow for the first point to be removed in case of simplifying closed Extrusionlines.

/* ExtrusionLines are treated as (open) polylines, so in case an ExtrusionLine is actually a closed polygon, its
* starting and ending points will be equal (or almost equal). Therefore, the simplification of the ExtrusionLine
* should not touch the first and last points. As a result, start simplifying from point at index 1.
Expand All @@ -52,16 +54,12 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
// Starting junction should always exist in the simplified path
new_junctions.emplace_back(junctions.front());

ExtrusionJunction previous = junctions.front();
/* For open ExtrusionLines the last junction cannot be taken into consideration when checking the points at index 1.
* For closed ExtrusionLines, the first and last junctions are the same, so use the prior to last juction.
/* Initially, previous_previous is always the same as previous because, for open ExtrusionLines the last junction
* cannot be taken into consideration when checking the points at index 1. For closed ExtrusionLines, the first and
* last junctions are anyway the same.
* */
ExtrusionJunction previous_previous = this->is_closed ? junctions[junctions.size() - 2] : junctions.front();

/* TODO: When deleting, combining, or modifying junctions, it would
* probably be good to set the new junction's width to a weighted average
* of the junctions it is derived from.
*/
ExtrusionJunction previous_previous = junctions.front();
ExtrusionJunction previous = junctions.front();

/* When removing a vertex, we check the height of the triangle of the area
being removed from the original polygon by the simplification. However,
Expand All @@ -78,15 +76,12 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
From this area we compute the height of the representative triangle using
the standard formula for a triangle area: A = .5*b*h
*/
const ExtrusionJunction& initial = junctions[1];
const ExtrusionJunction& initial = junctions.at(1);
int64_t accumulated_area_removed = int64_t(previous.p.x()) * int64_t(initial.p.y()) - int64_t(previous.p.y()) * int64_t(initial.p.x()); // Twice the Shoelace formula for area of polygon per line segment.

// For a closed polygon we process the last point, which is the same as the first point.
for (size_t point_idx = 1; point_idx < junctions.size() - (this->is_closed ? 0 : 1); point_idx++)
for (size_t point_idx = 1; point_idx < junctions.size() - 1; point_idx++)
{
// For the last point of a closed polygon, use the first point of the new polygon in case we modified it.
const bool is_last = point_idx + 1 == junctions.size();
const ExtrusionJunction& current = is_last ? new_junctions[0] : junctions[point_idx];
const ExtrusionJunction& current = junctions[point_idx];

// Don't simplify closed polygons below 3 junctions.
if (this->is_closed && new_junctions.size() + (junctions.size() - point_idx) <= 3) {
Expand All @@ -95,9 +90,8 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
}

// Spill over in case of overflow, unless the [next] vertex will then be equal to [previous].
const bool spill_over = this->is_closed && point_idx + 2 >= junctions.size() &&
point_idx + 2 - junctions.size() < new_junctions.size();
ExtrusionJunction& next = spill_over ? new_junctions[point_idx + 2 - junctions.size()] : junctions[point_idx + 1];
const bool spill_over = point_idx + 1 == junctions.size() && new_junctions.size() > 1;
ExtrusionJunction& next = spill_over ? new_junctions[0] : junctions[point_idx + 1];

const int64_t removed_area_next = int64_t(current.p.x()) * int64_t(next.p.y()) - int64_t(current.p.y()) * int64_t(next.p.x()); // Twice the Shoelace formula for area of polygon per line segment.
const int64_t negative_area_closing = int64_t(next.p.x()) * int64_t(previous.p.y()) - int64_t(next.p.y()) * int64_t(previous.p.x()); // Area between the origin and the short-cutting segment
Expand Down Expand Up @@ -145,18 +139,12 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
// We should instead move this point to a location where both edges are kept and then remove the previous point that we wanted to keep.
// By taking the intersection of these two lines, we get a point that preserves the direction (so it makes the corner a bit more pointy).
// We just need to be sure that the intersection point does not introduce an artifact itself.
// o < prev_prev
// |
// o < prev
// \ < short segment
// intersection > + o-------------------o < next
// ^ current
Point intersection_point;
bool has_intersection = Line(previous_previous.p, previous.p).intersection_infinite(Line(current.p, next.p), &intersection_point);
if (!has_intersection
|| Line::distance_to_infinite_squared(intersection_point, previous.p, current.p) > double(allowed_error_distance_squared)
|| (intersection_point - previous.p).cast<int64_t>().squaredNorm() > smallest_line_segment_squared // The intersection point is way too far from the 'previous'
|| (intersection_point - current.p).cast<int64_t>().squaredNorm() > smallest_line_segment_squared) // and 'current' points, so it shouldn't replace 'current'
|| (intersection_point - next.p).cast<int64_t>().squaredNorm() > smallest_line_segment_squared) // and 'next' points, so it shouldn't replace 'current'
{
// We can't find a better spot for it, but the size of the line is more than 5 micron.
// So the only thing we can do here is leave it in...
Expand Down Expand Up @@ -192,14 +180,15 @@ void ExtrusionLine::simplify(const int64_t smallest_line_segment_squared, const
new_junctions.push_back(current);
}

if (this->is_closed) {
/* The first and last points should be the same for a closed polygon.
* We processed the last point above, so copy it into the first point.
*/
new_junctions.front().p = new_junctions.back().p;
} else {
// Ending junction (vertex) should always exist in the simplified path
new_junctions.emplace_back(junctions.back());
// Ending junction (vertex) should always exist in the simplified path
new_junctions.emplace_back(junctions.back());

/* In case this is a closed polygon (instead of a poly-line-segments), the invariant that the first and last points are the same should be enforced.
* Since one of them didn't move, and the other can't have been moved further than the constraints, if originally equal, they can simply be equated.
*/
if ((junctions.front().p - junctions.back().p).cast<int64_t>().squaredNorm() == 0)
{
new_junctions.back().p = junctions.front().p;
}

junctions = new_junctions;
Expand Down
2 changes: 2 additions & 0 deletions src/slic3r/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,8 @@ set(SLIC3R_GUI_SOURCES
GUI/BedShapeDialog.cpp
GUI/CreatePresetsDialog.hpp
GUI/CreatePresetsDialog.cpp
Utils/PrintagoServer.hpp
Utils/PrintagoServer.cpp
Utils/json_diff.hpp
Utils/json_diff.cpp
GUI/KBShortcutsDialog.hpp
Expand Down
10 changes: 6 additions & 4 deletions src/slic3r/GUI/AboutDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,9 @@ wxString CopyrightsDialog::get_html_text()
"<font size=\"3\">",
bgr_clr_str, text_clr_str, text_clr_str,
_L("License"),
_L("Orca Slicer is licensed under "),
_L("Orca Slicer PE is licensed under "),
"https://www.gnu.org/licenses/agpl-3.0.html",_L("GNU Affero General Public License, version 3"),
_L("Orca Slicer PE is based on Orca Slicer by SoftFever"),
_L("Orca Slicer is based on BambuStudio by Bambulab, which is from PrusaSlicer by Prusa Research. PrusaSlicer is from Slic3r by Alessandro Ranellucci and the RepRap community"),
_L("Libraries"),
_L("This software uses open source components whose copyright and other proprietary rights belong to their respective owners"));
Expand Down Expand Up @@ -241,7 +242,7 @@ AboutDialog::AboutDialog()
// version
{
vesizer->Add(0, FromDIP(165), 1, wxEXPAND, FromDIP(5));
auto version_string = _L("Orca Slicer ") + " " + std::string(SoftFever_VERSION);
auto version_string = _L("Orca Slicer Printago Edition") + " " + std::string(SoftFever_VERSION);
wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize);
wxStaticText* bs_version = new wxStaticText(this, wxID_ANY, wxString::Format("Based on BambuStudio and PrusaSlicer"), wxDefaultPosition, wxDefaultSize);
bs_version->SetFont(Label::Body_12);
Expand Down Expand Up @@ -276,6 +277,7 @@ AboutDialog::AboutDialog()
text_sizer_horiz->Add( 0, 0, 0, wxLEFT, FromDIP(20));

std::vector<wxString> text_list;
text_list.push_back(_L("OrcaSlicer Printago Edition is based on OrcaSlicer."));
text_list.push_back(_L("OrcaSlicer is based on BambuStudio, PrusaSlicer, and SuperSlicer."));
text_list.push_back(_L("BambuStudio is originally based on PrusaSlicer by PrusaResearch."));
text_list.push_back(_L("PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci."));
Expand Down Expand Up @@ -321,7 +323,7 @@ AboutDialog::AboutDialog()

copyright_hor_sizer->Add(copyright_ver_sizer, 0, wxLEFT, FromDIP(20));

wxStaticText *html_text = new wxStaticText(this, wxID_ANY, "Copyright(C) 2022-2023 Li Jiang All Rights Reserved", wxDefaultPosition, wxDefaultSize);
wxStaticText *html_text = new wxStaticText(this, wxID_ANY, "Copyright(C) 2024 Printago All Rights Reserved", wxDefaultPosition, wxDefaultSize);
html_text->SetForegroundColour(wxColour(107, 107, 107));

copyright_ver_sizer->Add(html_text, 0, wxALL , 0);
Expand All @@ -338,7 +340,7 @@ AboutDialog::AboutDialog()
(boost::format(
"<html>"
"<body>"
"<p style=\"text-align:left\"><a href=\"https://github.com/SoftFever/Orcaslicer\">https://github.com/SoftFever/Orcaslicer</ a></p>"
"<p style=\"text-align:left\"><a href=\"https://github.com/printago/OrcaSlicer-PrintagoEdition\">https://github.com/printago/OrcaSlicer-PrintagoEdition</ a></p>"
"</body>"
"</html>")
).str());
Expand Down
17 changes: 11 additions & 6 deletions src/slic3r/GUI/DeviceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2963,12 +2963,17 @@ int MachineObject::parse_json(std::string payload)
else if (jj["errno"].get<int>() == -4) {
text = _L("When you set the chamber temperature below 40\u2103, the chamber temperature control will not be activated. And the target chamber temperature will automatically be set to 0\u2103.");
}
if(!text.empty()){
#if __WXOSX__
set_ctt_dlg(text);
#else
GUI::wxGetApp().show_dialog(text);
#endif
//printago -- this wasn't working in windows for me (only recieve these in mac).
//along w/ the refactor to remove dialog pops, we always call set_ctt_dlg, which in turn will flip the message out to all connected clients.
// if(!text.empty()){
// #if __WXOSX__
// set_ctt_dlg(text);
// #else
// GUI::wxGetApp().show_dialog(text);
// #endif
// }
if (!text.empty()) {
set_ctt_dlg(text);
}
}
}
Expand Down
Loading

0 comments on commit af5db0a

Please sign in to comment.