parabola da lista di coordinate

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!
renatorivo
Veteran
Posts: 2611
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: parabola da lista di coordinate

Post by renatorivo »

calculon
Posts: 26
Joined: Fri Nov 03, 2017 3:07 pm

Re: parabola da lista di coordinate

Post by calculon »

Prendendo spunto dalla macro che mi hai indicato ho sviluppato questo scriptino per rilevare le coordinate di un oggetto così da poterlo ricomporre successivamente magari ad ogni ciclo valutando la lunghezza, fino a raggiungere quella che mi occorre.

Code: Select all

lista = []
numberOfPoints = 100                                                         # Decomposition number (or precision you can change)
selectedEdge = FreeCADGui.Selection.getSelectionEx()[0].SubObjects[0].copy() # select one element
points  = selectedEdge.discretize(numberOfPoints)                            # discretize the element
i=0
for p in points:
	i+=1
	lista.append(App.Vector(p.x, p.y, p.z))
Draft.makeBezCurve(lista,closed=False,support=None)
Purtroppo il problema è proprio la precisione dei 100 punti che mi vincola, poiché gli spezzoni creati progressivamente hanno delle lunghezze che non posso modificare.
Tuttavia, per quanto riguarda la divisione in parti uguali della curva, ho scoperto che il comando

Code: Select all

Draft.makeBezCurve(lista,closed=False,support=None)
crea blocchi da 25 punti ciascuno. Dunque con una precisione di 100 punti mi aspetterò 4 blocchi che costituiranno la sincola BezCurve.
calculon
Posts: 26
Joined: Fri Nov 03, 2017 3:07 pm

Re: parabola da lista di coordinate

Post by calculon »

Molto poco efficiente in vero. La sto utilizzando per replicare Bezcurve più complesse ed è un vero disastro. :cry:
gozzo.FCStd
(20.25 KiB) Downloaded 42 times
mario52
Veteran
Posts: 4692
Joined: Wed May 16, 2012 2:13 pm

Re: parabola da lista di coordinate

Post by mario52 »

ciao

se volete fare BSpline

Code: Select all

Draft.makeBSpline(lista,closed=False,face=False,support=None)
creare punti su la linea (nel ciclo for)

Code: Select all

Draft.makePoint(p)
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting.
My macros on Gist.github here complete macros Wiki and forum.
Post Reply