[RISOLTO] Problema con posizionamento Draft > ShapeString

Forum per le domande e le discussioni in Italiano
Forum rules
regole del forum e le informazioni utili

Importante: PRIMA di chiedere aiuto leggete qui!
Post Reply
Mark81
Posts: 121
Joined: Tue Jul 12, 2022 2:21 pm

[RISOLTO] Problema con posizionamento Draft > ShapeString

Post by Mark81 »

Ciao,
allego un file di esempio.
Guardate per favore l'elemento ShapeString.
Ha coordinate X = 0, ma in realtà è completamente fuori asse:
Schermata del 2022-09-21 16-21-15.png
Schermata del 2022-09-21 16-21-15.png (17.28 KiB) Viewed 1481 times
non riesco a capire come mai. Mi sarei aspettato che il boundingbox fosse allineato all'asse X.
Tra l'altro non è possibile centrare automaticamente il testo rispetto a una data posizione? Una volta risolto questo problema potrei settare un offset pari a metà della larghezza, ma se cambiassi testo o font dovrei rifare tutto a mano. C'è una soluzione più elegante?

Code: Select all

OS: Ubuntu Core 20 (ubuntu:GNOME/ubuntu)
Word size of FreeCAD: 64-bit
Version: 0.21.30423 (Git) Snap 300
Build type: Release
Branch: master
Hash: 8ce0e325cdb06a00109fb1de17d355270a08ae28
Python 3.8.10, Qt 5.15.5, Coin 4.0.0, Vtk 7.1.1, OCC 7.6.3
Locale: Italian/Italy (it_IT)
Installed mods: 
  * kicadStepUpMod 10.15.1
  * fasteners 0.4.6
  * 3D_Printing_Tools
  * CurvedShapes 1.0.4
  * Manipulator 1.4.9
  * Assembly4 0.12.4
  * fcgear 1.0.0
  * A2plus 0.4.59
  * Part-o-magic 1.0.0
  * POV-Ray-Rendering (Disabled)
  * Render 2022.2.0
Attachments
ex_draft.FCStd
(217.05 KiB) Downloaded 68 times
Last edited by Mark81 on Mon Sep 26, 2022 5:34 am, edited 1 time in total.
User avatar
onekk
Veteran
Posts: 6144
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Problema con posizionamento Draft > ShapeString

Post by onekk »

Mark81 wrote: Wed Sep 21, 2022 2:23 pm Ciao,
allego un file di esempio.
Guardate per favore l'elemento ShapeString.
Ha coordinate X = 0, ma in realtà è completamente fuori asse:

Beh non è proprio così:
shapestring_er.png
shapestring_er.png (24.68 KiB) Viewed 1459 times
In più il file non è proprio un MWE (minimal working example) in soldoni un "esempio minimo funzionante" anche se parlare di funzionante per un problema è un controsenso ma tant'è si usa dire così (in Inglese).

richiede dei file esterni che non hai allegato.

Dall'immagine che ho postato aprendo il file con:

Code: Select all

OS: Artix Linux (openbox)
Word size of FreeCAD: 64-bit
Version: 0.21.30398 (Git)
Build type: Release
Branch: master
Hash: b3dfdc568a92810449bf47bc73b6784d65dfa206
Python 3.10.6, Qt 5.15.4, Coin 4.0.0, Vtk 9.1.0, OCC 7.6.3
Locale: Italian/Italy (it_IT)
Installed mods: 
  * fcgear 1.0.0
  * Assembly4 0.12.4
  * toSketch 1.0.1
  * Curves 0.5.8
  * Help 1.0.3

Vedo che la proprietà Placement non è a (0,0,0) ma a (0, -62, 5), in più stiamo parlando di caratteri che probabilmente non hanno una origine al centro del carattere ma in un altro posto, probabilmente sulla cosiddetta "baseline" e hanno una "spaziatura" che li distanzia dal carattere precedente e da quello seguente, per cui il posizionameto può risultare "non immediatamente chiaro".

ad esempio nel file:
test_shape.FCStd
(3.94 KiB) Downloaded 68 times
puoi vedere che il posizionamento è fatto a (0,0,0) ma il carattere è messo allineato in Y = 0 ma leggermente spostato dall'asse X proprio per la spaziatura.

shapestring_e1.png
shapestring_e1.png (5.87 KiB) Viewed 1452 times
Magari vedi ad esempio:

https://stackoverflow.com/questions/359 ... the-origin
Mark81 wrote: Wed Sep 21, 2022 2:23 pm Tra l'altro non è possibile centrare automaticamente il testo rispetto a una data posizione? Una volta risolto questo problema potrei settare un offset pari a metà della larghezza, ma se cambiassi testo o font dovrei rifare tutto a mano.
Beh semplicemente una ShapeString è solo un passaggio che trasforma un testo in una serie di facce, (in realtà in qualcosa di più complesso, perché dipende da come è composto il carattere)

Queste facce in teoria sono destinate ad essere usate per create solidi o cose simili, ad esempio cose come queste:

https://forum.freecadweb.org/viewtopic. ... 66#p613966

Non sono esperto di GUI, ma probabilmente il posizionamento è possibile attraverso una espressione, ma non conosco tutte le implicazioni della GUI, in genere ottengo il bounding box ed elaboro nello script le informazioni, come nell'esempio riportato, ma ovviamente sono "flussi di lavoro" completamente diversi dalla GUI.

Sperando di non essere stato troppo complicato nella spiegazione.

Saluti

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
Mark81
Posts: 121
Joined: Tue Jul 12, 2022 2:21 pm

Re: Problema con posizionamento Draft > ShapeString

Post by Mark81 »

Grazie della completa spiegazione!
Chiedo scusa per il foglio di calcolo, è presente all'interno del file "master". A margine, come posso inviare file di esempio che si appoggiano a fogli esterni? E' possibile fare in modo di integrare nel file stesso i valori correnti?

Comunque, l'obiettivo finale è esattamente quello da te descritto: andrò a creare un pocket di 1 mm a partire dalla shapestring in modo che sia "scavata" nella superficie dell'oggetto.

Utilizzando FreeCAD ho imparato che spesso quando non riesco a fare una cosa è perché utilizzo l'approccio sbagliato :lol:
Quindi ti chiedo questo. Se guardi il file (sperando tu possa aprirlo correttamente) vedrai 7 aree ribassate, posizionate sull'esterno del disco.
Vorrei posizionare al centro di ciascuna area un numero progressivo (1..7) e ruotato in modo che sia leggibile correttamente dal lato esterno.

Come mi suggeriresti di procedere?
domad
Veteran
Posts: 2053
Joined: Mon Jun 22, 2020 12:16 pm

Re: Problema con posizionamento Draft > ShapeString

Post by domad »

Mark81 wrote: Thu Sep 22, 2022 5:46 pm .....
Ciao Mark81, un saluto alla Comunità!
Nella gif animata uno dei tanti metodi per effettuare la trasformazione (traslazione e/o rotazione), viene utilizzato il banco di lavoro "Part" impiegando le funzioni snaps (ritengo sia il metodo più intuitivo, preciso e semplice).
Per creare gli altri numeri, basta creare dei duplicati del primo numero, ruotarli utilizzando sempre gli snaps: centro per il punto di rotazione e mediano per il punto inizio rotazione e fine rotazione.
Ultimata la rotazione attraverso i parametri Proprietà --> Data--> String cambiare il numero con quello che si vuole.
In allegato trovi tuo file con l'applicazione della numerazione traforata di cui alla gif animata, realizzata utilizzando i banchi di lavoro "Part Design", "Part" e "Draft".
Attachments
ex_draft_domad.FCStd
(328.21 KiB) Downloaded 68 times
Trasformazione_guidata_da_snaps.gif
Trasformazione_guidata_da_snaps.gif (473.38 KiB) Viewed 1278 times
ex_draft_domad.gif
ex_draft_domad.gif (245.99 KiB) Viewed 1278 times
Mark81
Posts: 121
Joined: Tue Jul 12, 2022 2:21 pm

Re: Problema con posizionamento Draft > ShapeString

Post by Mark81 »

Grazie! Non avevo mai utilizzato questo workbench e adesso mi è tutto più chiaro e sono riuscito a riprodurre in autonomia il risultato finale 8-)
Post Reply