Vai al contenuto
phidias

Spostare Tutti I Vertici Oltre Una Determinata Quota

Recommended Posts

Esiste un comando che sposti automaticamente la coordinata z di una spline oltre la coordinata specificata se esiste altrimenti lasciando la z corrente qualora sia gia' superiore, lasciando la x e la y inalterate in ogni caso? O forse si puo' fare con uno script? Sembra abbastanza semplice ma non so come si fa :)

Il problema che ho e' di una corda poggiata su un piano che compenetra il piano in alcuni punti e spostarli manualmente e' abbastana lungo perche' sono molti vertici.

Ne ho trovato uno simile, ma cambia le coordinate di tutti i vertici.

The following tutorial shows how to access and modify the splines and their knots (vertices) and tangents in a SplineShape. The resulting macroScript will move all knots to the Z height defined by the shape’s Z position, thus aligning them to a plane parallel to the ground XY world construction plane.

Related Topics:

Defining MacroScripts

SplineShape : Shape

Spline Shape Common Properties, Operators, and Methods

Natural Language:

Package the code as macroScript to be able to use as a button, menu item or shortcut.

Enable the script only when a single Editable Spline without modifiers has been selected.

When executed, go through all splines in the shape

For each spline, go through all knots (vertices)

For each knot, set the Z coordinate of the In and Out tangent to the shape’s Z position

For each knot, set knot’s Z coordinate to the shape’s Z position

When ready with all splines and knotes, update the shape.

MAXScript:

macroscript FlattenSpline category:"HowTo" tooltip:"Flatten Spline"

(

on isEnabled return

(

selection.count == 1 and \

(classof selection[1] == SplineShape or \

classof selection[1] == Line) \

and selection[1].modifiers.count == 0

)

on execute do

(

new_z = $.pos.z

for s = 1 to (numSplines $) do

(

for k = 1 to (numKnots $ s) do

(

knt = getKnotPoint $ s k

in_vec = getInVec $ s k

out_vec = getOutVec $ s k

knt.z = in_vec.z = out_vec.z = new_z

setInVec $ s k in_vec

setOutVec $ s k out_vec

setKnotPoint $ s k knt

)--end k loop

)--end s loop

updateshape $

)--end execute

)--end script


Modificato da phidias

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

In Editspline selezioni i vertici, imposti il sistema di coordinate in view, scegli "Use selection center", tasto dx su scala non uniforme e porti a zero la Z. ;)

P.s.:occhio, argomento già trattato

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

In realta' non e' proprio la stessa cosa. Mi accelera cmq il lavoro manuale, quindi mi e' utile (ed e' sempre una funzione in piu' che imparo), ma non posso fare la selezione automatica tra i vertici oltre una determinata z e quelli sotto, quindi cmq devo selezionarli e spostarli manualemente. Per far capire meglio quello che mi servirebbe posto un 'immagine. Come vedete alcune parti della corda sono affossate nel pavimento, altre ovviamente no. io dovrei sollevare solamente le parti affosssate e lasciare immutate le altre. ovviamente non e' sufficiente fare sposta perche' in altre parti del disegno la corda e' correttamente poggiata sul piano, e poi volerebbe creando un'ombra

aaade4.th.jpg


Modificato da phidias

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Vediamo se ho capito (sono duro di comprendonio): tu vuoi spostare tutta la spline (o solo alcuni vertici) facendo in modo che coincidano col piano? Se è così basta usare l'Align.

Un'altra interpretazione: tu vuoi selezionare solo i vertici al di sotto del piano? Mettiti in una vista laterale e usa la selezione a mo' di lazo lineare di photoshop, navigando con la rotellina del mouse e il tasto I (se non hai l'opzione di centramento dello zoom).

Scusa, ma c'ho la testa dura. Anzi, vado a fare la pappa, ci si sente dopo :hello:


Modificato da ruezzana

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Hai ragione, e' che mi ero intestardito con lo script, ma cosi' va bene anche. Solo che ho provato, ma in realta' non e' sufficiente. La corda e' creata con un path deform, quindi io sto modificando la spline. I punti selezionati effettivamente sono stati spostati sullo stesso piano, ma parti della corda continuano ad essere affossate, perche' la spline non cambia bruscamente direzione in corrispondenza del punto (e' una smooth). C'e' un modo per evitare cio'? Nel frattempo li sto spostando manualmente uno a uno, pero' per sapere per la prossima volta


Modificato da phidias

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Bhe, non me ne intendo molto di path deform, ma se dipende cmq dalla spline e dai suoi vertici io cambierei la modalità di curvatura ai vertici da smooth a bezier corner (seleziona vertici + tasto dx), così puoi regolarti l'entrata e l'uscita della spline rispetto al vertice (purtroppo due regolazioni per ogni vertice :( )

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Ospite
Rispondi

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×
×
  • Crea nuovo...