Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
coren

L'if Il Mio Tallone Di Achille

Recommended Posts

insomma...... ho scritto lo script per la creazione delle banchine e delle persiane, solo che non mi funziona la parte delle persiane: io creo le finestre come pivotDoor, le persiane le creo come copia delle finestre(in questo modo ho già tutte le dimensioni giuste), l'unica cosa che devo fare è attivare il flag FlipSwing ed aprire la persiana di 180°.

quindi io creo una copia di tutte le finestre selezionate(in questo modo ottengo le persiane istanziate tra di loro esattamente come le finestre) assegnandogli un nome temporaneo, poi la mia idea era di scandire gli oggetti della scena e per quelli che si chiamavano col il nome prestabilito facevo le modifiche necessarie, tra le quali quella di assegnargli il nome finale. Solo che l'IF non viene mai verificato, qualcuno potrebbe spiegarmi come funziona esattamente l'IF?

Magari provate a far girare lo script sul vostro computer che magari va o magari scoprite perchè non va l'IF.

Grazie ancora

global Float nnn

global Float dep

for i in selection do( 

  --leggiamo la profondità della porta

  

  dep = i.depth

  dep = dep+6

  --leggiamo la larghezza della porta

  

  nnn = i.width

  nnn=nnn+6

  --leggiamo la posizione della porta

  

  ChamferBox Name:"banchina_temp" Length_Segments:1 Width_Segments:1 Height_Segments:1 Fillet_Segments:3 length:dep width:nnn height:5 Fillet:2.5 pos:[0,0,0]

  $banchina_temp.rotation.z_rotation=i.rotation.z_rotation

  $banchina_temp.pos=i.pos

  set coordsys local

  move $banchina_temp [((nnn/2)-3),-((dep/2)-3),-4.8]

  set coordsys world

  $banchina_temp.name=uniquename "banchina"


)

copy $ name:"persiana_temp"

for i in geometry do

(

	if i.name=="persiana_temp" then

	(  

  i.Flip_Swing=on

  i.Double_Doors=1

  i.Open__degrees=180

  i.Leaf_Thickness=5

  i.Stiles_Top_Rail=5

  i.Bottom_Rail=5

  i.Create_Frame=off

  i.name=uniquename "persiana"	

	)

)

Share this post


Link to post
Share on other sites

Ciao, allora nn son esperto di script so un pò di c++ e parlando anche con lauranncè siamo arrivati alla conclusione che nn dichiari mai la variabile i.name dove la vai a prendere nel listato nn si trova.

ciaooooooo

Share this post


Link to post
Share on other sites

l'if verifica una condizione

la tua condizione è i.name=="persiana_temp"

se questa condizione restituisce il valore true l'if va avanti, altrimenti si ferma o va ad eseguire il codice presente nell' else ()

per verificare se la condizione è scritta correttamente e restituisce true puoi selezionare la tua persiana e digitare nel listener solo la condizione

ho fatto delle prove con un box che si chiamava Box01 e ho scoperto che le stringe sono case sensitive, ovvero tengono conto anche delle maiuscole quindi

$.name=="box01" restituisce false

$.name=="Box01" restituisce true

@lemmolo

se noti l'ultimo ciclo for trovi la riga for i in geometry

ovvero ad ogni ciclo la i assume il valore di un'entità presente in geometry (che è l'insieme delle entità presenti nella scena)

quando una variabile diventa uguale ad un'entità, a quest'entità sono associati dei valori

prendiamo un box chiamato cubo01

se i = $cubo01, possiamo leggere e cambiare le proprietà del cubo mediante la sintassi

i.width i.height etc etc tra queste proprietà c'è anche i.name ;)

mi spiace per il casino che ho scritto purtroppo non sono programmatore e non parlo utilizzando i termini adatti


: :  Youtube : : 

Share this post


Link to post
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...