diff --git a/plugins/Utility-G-code_Generator/Readme.md b/plugins/Utility-G-code_Generator/Readme.md index 0e1a435..a4b52c5 100644 --- a/plugins/Utility-G-code_Generator/Readme.md +++ b/plugins/Utility-G-code_Generator/Readme.md @@ -1,4 +1,4 @@ -J'ai crée ce script pour faciliter l'utilisation de ma CNC. +J'ai crée ce script qui est un "couteau suisse" pour faciliter l'utilisation de ma CNC. Biensûr il existe des outils CAO et calcul de parcours d'outil qui font tout celà mais c'est assez lourd d'utilisation, chaque modification implique de revenir la source et de reproduire le Gcode. Cet outil intégré en plugin permet dans FigUI sur FluidNC permet tout en restant dans l'interface de créer et modifier instantanéement le gcode. Par exemple un surfaçage : on positionne la broche, en quelque clics on peut lancer le surfaçage et le corriger immédiatement (sans aucun transfer de fichiers. @@ -8,12 +8,13 @@ Un trou oblong, idem on défini X Y la largeur , taille de fraise... Un rayonage sur le plan X/Y peut être assez lourd via la CAO, ici on defini le coin, le sens, le rayon... en Fin programmer un filetage est extrèment lourd, tu choisi Vis ou ecrou, le pas la profondeur de passe, le nombre de fillets, c'est immédiat.. NB un filletage est aussi une bonne façon de réaliser un trou borgne, car le mouvement sera hélicoïdal avec un tour plat à fond de fillet.. +Le dernier mode (Créer schéma 7) permet de créer une répétition linéaire ou circulaire de l'une des 6 définitions. Pour lancer le plugin, depuis l'interface FigUI (plugin), la fenêtre s'ouvre directement sur les derniers paramètres utilisés ou les valeurs pas défaut. les modifications des champs s'exécutent instantanément (le g-code ainsi que le visuel), [Ouvrir dans le viewer] pour basculer sur FigUI, le retour vers le plugin reprendra les dernières valeurs. -I created this script to make my CNC easier to use. +I created this script that is a "swiss knife" to make my CNC easier to use. Of course there are CAD and toolpath calculation tools that do all this but it is quite cumbersome to use, each modification involves returning to the source and reproducing the Gcode. This tool integrated into a plugin allows in FigUI on FluidNC to instantly create and modify the gcode while remaining in the interface. For example surfacing: we position the spindle, in a few clicks we can start the surfacing and correct it immediately (without any file transfer) @@ -26,5 +27,6 @@ NB threading is also a good way to make a blind hole, because the movement will To launch the plugin, from the FigUI interface (plugin), the window opens directly on the last parameters used or the default values. field modifications are executed instantly (the g-code as well as the visual), [Open in viewer] to switch to FigUI, returning to the plugin will return to the last values. +The last mode (Create Pattern 7) enable to create a rectangular or circular pattern from one of the 6 previous definitions. -https://github.com/Franky464/Utility-G-code_Generator_FigUI_Plugin +https://github.com/Franky464/Utility-G-code_Generator_FigUI_Plugin \ No newline at end of file diff --git a/plugins/Utility-G-code_Generator/index.html b/plugins/Utility-G-code_Generator/index.html index d4e253c..02a667e 100644 --- a/plugins/Utility-G-code_Generator/index.html +++ b/plugins/Utility-G-code_Generator/index.html @@ -113,7 +113,7 @@ .viz-wrap { flex: 1; position: relative; - background: #0a0e16; + background: var(--bg, #0a0e16); min-height: 0; display: flex; flex-direction: column; @@ -139,7 +139,7 @@ font-weight: 700; letter-spacing: .06em; color: var(--text-muted, #6a7898); - background: rgba(12,16,24,.7); + background: color-mix(in srgb, var(--surface, #151c28) 85%, transparent); padding: 1px 5px; border-radius: 3px; pointer-events: none; @@ -150,17 +150,17 @@ left: 8px; bottom: 8px; font-size: 11px; color: var(--text-muted, #6a7898); - background: rgba(12,16,24,.85); - border: 1px solid var(--border, #222840); + background: color-mix(in srgb, var(--surface, #151c28) 90%, transparent); + border-color: var(--border, #222840); border-radius: 4px; padding: 6px 8px; pointer-events: none; } .viz-legend span { display: inline-block; width: 18px; height: 2px; vertical-align: middle; margin-right: 6px; } -.leg-rapid { border-top: 2px dashed #64748b; height: 0; } -.leg-cut { background: #f0a030; } -.leg-start { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; } -.leg-plunge { width: 6px; height: 6px; border-radius: 50%; background: #f0a030; } +.leg-rapid { border-top-color: var(--text-muted, #64748b); } +.leg-cut { background: var(--accent, #f0a030); } +.leg-start { background: var(--ok, #22c55e); } +.leg-plunge { background: var(--accent, #f0a030); } .action-bar { padding: 8px 12px; background: var(--surface, #151c28); @@ -186,6 +186,97 @@ } .language-section { padding-top: 8px; padding-bottom: 8px; } .language-section select { font-weight: 600; } + +.help-overlay { + position: fixed; inset: 0; z-index: 1000; + background: rgba(0,0,0,.65); + display: flex; align-items: center; justify-content: center; + padding: 16px; +} +.help-overlay.hidden { display: none !important; } +.help-dialog { + width: min(720px, 100%); + max-height: min(90vh, 900px); + background: var(--surface, #151c28); + border: 1px solid var(--border, #222840); + border-radius: 10px; + display: flex; flex-direction: column; + overflow: hidden; + box-shadow: 0 12px 40px rgba(0,0,0,.45); +} +.help-header { + flex-shrink: 0; + display: flex; align-items: center; gap: 10px; + padding: 12px 14px; + border-bottom: 1px solid var(--border, #222840); + background: var(--elevated, #1a2235); +} +.help-header h2 { + font-size: 15px; font-weight: 700; flex: 1; margin: 0; + color: var(--text-primary, #e2e6f4); +} +.help-close { + padding: 6px 12px; + background: var(--elevated, #1a2235); + border: 1px solid var(--border, #222840); + color: var(--text-primary, #e2e6f4); + border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer; +} +.help-close:hover { border-color: var(--accent, #f0a030); } +.help-nav { + flex-shrink: 0; + display: flex; flex-wrap: wrap; gap: 6px; + padding: 8px 12px; + border-bottom: 1px solid var(--border, #222840); +} +.help-nav button { + padding: 4px 10px; + font-size: 12px; font-weight: 600; + background: var(--elevated, #1a2235); + border: 1px solid var(--border, #222840); + color: var(--text-muted, #6a7898); + border-radius: 4px; cursor: pointer; +} +.help-nav button:hover, .help-nav button.active { + border-color: var(--accent, #f0a030); + color: var(--text-primary, #e2e6f4); +} +.help-body { + flex: 1; overflow-y: auto; + padding: 14px 18px 24px; + font-size: 13px; line-height: 1.55; + color: var(--text-primary, #e2e6f4); +} +.help-body h3 { + font-size: 15px; margin: 18px 0 8px; + color: var(--accent, #f0a030); + scroll-margin-top: 12px; +} +.help-body h3:first-child { margin-top: 0; } +.help-body h4 { font-size: 13px; margin: 12px 0 6px; color: #94a3b8; } +.help-body p, .help-body li { margin-bottom: 6px; color: #c8d0e0; } +.help-body ul { padding-left: 18px; margin-bottom: 8px; } +.help-body table { + width: 100%; border-collapse: collapse; margin: 8px 0 12px; + font-size: 12px; +} +.help-body th, .help-body td { + border: 1px solid var(--border, #222840); + padding: 6px 8px; text-align: left; vertical-align: top; +} +.help-body th { background: var(--elevated, #1a2235); color: #94a3b8; } +.help-body code { + font-family: ui-monospace, monospace; + font-size: 12px; + background: #0a0e16; + padding: 1px 5px; border-radius: 3px; +} +.help-body .tip { + border-left: 3px solid var(--accent, #f0a030); + padding: 6px 10px; margin: 8px 0; + background: rgba(240,160,48,.08); + border-radius: 0 4px 4px 0; +} +