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 (24.68 KiB) Viewed 1567 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:
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 (5.87 KiB) Viewed 1560 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.