× Tout sur Rhino 3d

Plan C en script

il y a 2 ans 9 mois #168 par onlyforpeace
je n'arrive pas a comprendre comment on gère le plan C en script.
j'aimerais déplacer le plan C dans une direction précise (ex: normal et au début d'une droite) et dessiner un profil sur ce plan C directement en lançant un script et en cliquant sur une extrémité d'une droite... comment dois je procéder?

Connexion pour participer à la conversation.

il y a 2 ans 9 mois - il y a 2 ans 9 mois #170 par SwissRhino
Pour changer le PlanC (CPlane) dans une fenêtre (viewport) on peut utiliser la methode Rhinoscript ViewCPlane(). Sans argument, cette methode donne le PlanC actuel de la fenêtre, autrement on peut donner un "plane" comme argument, et le PlanC changera pour aligner sur le nouveau "plane" donné.
Option Explicit
Call Test()
Sub Test()	
	Dim line, dom, plane
	line = Rhino.GetObject("Sélectionner une droite", 4)
	If Rhino.IsLine(line) Then
		dom = Rhino.CurveDomain(line)
		plane = Rhino.CurvePerpFrame(line, dom(0))
		Call Rhino.ViewCPlane(Rhino.CurrentView(), plane)
	End If
End Sub

Connexion pour participer à la conversation.

il y a 2 ans 8 mois #188 par onlyforpeace
je vizns de copier coller ton script pour tester,

du coup j'ajoute la création d'une ligne, mais elle ne se créer pas au bout de la ligne...
Option Explicit
Call Test()
Sub Test()	
	Dim line, dom, plane
	line = Rhino.GetObject("Sélectionner une droite", 4)
	If Rhino.IsLine(line) Then
		dom = Rhino.CurveDomain(line)
		plane = Rhino.CurvePerpFrame(line, dom(0))
		Call Rhino.ViewCPlane(Rhino.CurrentView(), plane)
		rhino.addline array(0, 0, 0), array(10, 0, 0)
	End If
End Sub

Connexion pour participer à la conversation.

il y a 2 ans 8 mois #190 par SwissRhino
Oui... Les coordonnées en script sont TOUJOURS en WORLD, sauf que vous avez une option dans la méthode - p. ex. "BoundingBox". Donc, le plus simple c'est de créer l’objet en coordonnées World, et ensuite le transformer vers le planC désiré... comme cela:
Option Explicit
Call Test()
Sub Test()	
	Dim line, dom, plane, add_line, xform
	line = Rhino.GetObject("Sélectionner une droite", 4)
	If Rhino.IsLine(line) Then
		dom = Rhino.CurveDomain(line)
		plane = Rhino.CurvePerpFrame(line, dom(0))
		Call Rhino.ViewCPlane(Rhino.CurrentView(), plane)
		add_line = Rhino.AddLine(array(0, 0, 0), array(10, 0, 0))
		xform = Rhino.XformRotation(Rhino.WorldXYPlane, plane)
		Rhino.TransformObject add_line, xform, False
	End If
End Sub

--Mitch

Connexion pour participer à la conversation.

Modérateurs: SwissRhinoJenniferJoao
Temps de génération de la page : 0.145 secondes
Propulsé par Kunena

Powered by


3d design training



cadlantique.com


swissrhino.com