Forum Sketchup Artlantis Archicad
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Annonces
Bonjour Invité Bienvenue sur le forum biblio3d - le forum a été créé le Sam 19 Jan 2008 - 14:26- Nous avons enregistrés 14727 topics pour un total de : 174827 posts - le record de membres connectés simultanément :555
Galerie


Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Empty
Ton bloc notes
Derniers sujets
» [ SKETCHUP généralité ] sortie officielle de sketchup 2024
par Rascal Aujourd'hui à 10:31

» [ ARTLANTIS ] Problème origine se déplace
par loic46 Hier à 22:28

» [ SKETCHUP plugins ] Vms_up
par Rascal Hier à 14:41

» [ SKETCHUP vray ]
par furax49 Mer 17 Avr 2024 - 17:20

» [ SKETCHUP objets ] aquarium
par JDD Lun 15 Avr 2024 - 22:20

» [ ARCHICAD ] raccourci clavier
par VertiKal Ven 12 Avr 2024 - 17:47

» [ ARCHICAD ] Zone - Menu déroulant
par Christophe Fortineau Jeu 11 Avr 2024 - 19:49

» [ MATOS INFORM. ] LICENCES ARCHICAD
par yannickniort Jeu 11 Avr 2024 - 15:00

» [ SKETCHUP généralité ] Servimg Premium pour tous les membres
par tenrev Jeu 11 Avr 2024 - 14:31

» [ SKETCHUP plugins ] Move it
par TF3 Mer 10 Avr 2024 - 10:23

» [ SKETCHUP plugins ] curic 2D export
par tenrev Mar 9 Avr 2024 - 17:41

» [ SKETCHUP plugins ] profil builder 4 est disponible
par furax49 Mar 9 Avr 2024 - 17:00

» [ ARCHICAD ] Torsion sur poteaux
par Ti Pack Mar 9 Avr 2024 - 14:59

» [ PRESENTATION ]
par tenrev Lun 8 Avr 2024 - 8:22

» [ TWINMOTION ] bug d'affichage des textures avec le path tracer
par Gaspard Hauser Ven 5 Avr 2024 - 12:53

» [ TWINMOTION ] eGPU / ralentissement Twinmotion important
par TF3 Mer 3 Avr 2024 - 9:11

» [ TWINMOTION ] twinmotion installée deux fois?
par tenrev Mer 3 Avr 2024 - 8:58

» [ INTELLIGENCE ARTIFICIELLE ] Joyeuses Paques avec sketchup.... diffusion
par tenrev Dim 31 Mar 2024 - 16:32

» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo de mes tests IA
par simjoubert Ven 29 Mar 2024 - 19:16

» [ SKETCHUP généralité ] Interface réinitialisée totalement suite connexion Trimble
par Shakna Ven 29 Mar 2024 - 15:04

» [ SKETCHUP LIVE COMPONENT ] Importer une liste de points dans son graphe via un input texte
par tenrev Jeu 28 Mar 2024 - 13:30

» [ ARCHICAD-OBJETS GDL ] Sortie de toit TCP (Poujoulat)
par BoTof Lun 25 Mar 2024 - 9:12

» [ SKETCHUP LIVE COMPONENT ] besoin de tuyaux sur les textures random
par tenrev Sam 23 Mar 2024 - 10:35

» [ SKETCHUP composants dynamiques ] Copies de copies
par Manutio Ven 22 Mar 2024 - 12:21

» [ SKETCHUP plugins ] plugin pour les textes
par vick Ven 22 Mar 2024 - 10:34

» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:08

» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 4/4 - 2ème TECHNIQUE INÉDITE
par jerryvento Jeu 21 Mar 2024 - 9:07

» [ KEYSHOT ] plugin sketchup
par tenrev Mer 20 Mar 2024 - 8:26

» [ SKETCHUP LIVE COMPONENT ] rendre visible ou invisible un paramètre utilisateur selon des conditions ?
par simjoubert Mar 19 Mar 2024 - 15:38

» [ PRESENTATION ] Manutio
par Manutio Lun 18 Mar 2024 - 9:21

» [ ARTLANTIS ] Ca donne envie !
par fraid Ven 15 Mar 2024 - 7:44

» [ SKETCHUP généralité ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par JDD Mer 13 Mar 2024 - 10:39

» [ SKETCHUP plugins ] SketchUp et Menuiserie : Rencontre avec Artwood
par art wood concept Mer 13 Mar 2024 - 9:54

» [ SKETCHUP tutos ] SÉLECTIONNER - Tuto 3/4 - 1ère TECHNIQUE INÉDITE
par jerryvento Mar 12 Mar 2024 - 8:48

» [ SKETCHUP LIVE COMPONENT ] table avec chaises
par tenrev Mar 12 Mar 2024 - 8:46

Sondage

Chaine Twitch

Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c1029%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 29% [ 11 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c1011%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 11% [ 4 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c103%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 3% [ 1 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c108%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 8% [ 3 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c108%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 8% [ 3 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c108%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 8% [ 3 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c1029%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 29% [ 11 ]
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c105%Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Poll_c10 5% [ 2 ]

Total des votes : 38

chaine sketchup.tv
Serveur Discord
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 18:40

Re Ga,

Pour faire suite à notre conversation, pour mettre à l'échelle ton composant à l'importation il faut que tu rajoutes ces lignes là a ton plugin

A ajouter Arrow
Code:

etir_comp = Geom::Transformation.scaling 1.0, 2.0, 1.0
instance.transform! (etir_comp)

Sur la premiere ligne, tu crées une transformation.scaling (mise à l'échelle) etir_comp avec ici des valeurs fixes 1.0 à l'indentique 2.0 tu doubles tu peux mettre des valeurs négatives pour inverser le sens de ton composant tu peux essayer par exemple 1.0, -2.0, 1.0. Ensuite tu pourras les remplacer par tes variables. mais testes d'abord ton scaling.
Ensuite sur la deuxième ligne tu appliques la transformation à instance (ton composant importé).

Ton plugin avec l'ajout des deux lignes Arrow
Code:

def routine
model = Sketchup.active_model
entities = model.active_entities
definitions = model.definitions
path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
componentdefinition = definitions.load path
selection = model.selection


edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
position = vertex0.position  # determine les coordonnées de ton point n°1
vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
position = vertex1.position  # determine les coordonnées de ton point n°2

point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
trans = Geom::Transformation.new point
instance = entities.add_instance componentdefinition, trans
etir_comp = Geom::Transformation.scaling 1.0, 2.0, 1.0
instance.transform! (etir_comp)
point1 = Geom::Point3d.new verticies[1]  # debut import composant au point 2
trans = Geom::Transformation.new point1
instance = entities.add_instance componentdefinition, trans

end


    if( not file_loaded?("zzz.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposantici") { routine }
    end
    file_loaded("zzz.rb")
end

Je te cherche les éléments pour déterminer la longueur de ton gabarit et celle de ton composant et je te les communique

Ca avance sérieux bien
@+
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 18:54

Pour retrouver la longeur d'un segment Arrow Edge.length

Dans ton plugin ton segment c'est ta sélection

@+
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 19:05

J'ai modifier quelque ligne car mon composant est sur l'axe X puis j'ai supprimé l'insertion du 2 éme composant car celui-ci n'a plus raison d'être rigole

Code:
def routine
model = Sketchup.active_model
entities = model.active_entities
definitions = model.definitions
path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
componentdefinition = definitions.load path
selection = model.selection


edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
position = vertex0.position  # determine les coordonnées de ton point n°1
vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
position = vertex1.position  # determine les coordonnées de ton point n°2

point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
trans = Geom::Transformation.new point
instance = entities.add_instance componentdefinition, trans
etir_comp = Geom::Transformation.scaling 2, 1, 1
instance.transform! (etir_comp)
point1 = Geom::Point3d.new verticies[1]  # debut import composant au point 2


end


    if( not file_loaded?("zzz.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposantici") { routine }
    end
    file_loaded("zzz.rb")
end




pour la longueur je m'était intéresse a celle-ci d'API LatLong.longitude LatLong.longitude mais bon c'est surement pour ça que sa ne marché pas moqueur mdr2
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 19:22

Je viens de tester ca marche nickel
tu peux supprimer cette ligne elle ne sert plus à rien :
Code:

point1 = Geom::Point3d.new verticies[1]  # debut import composant au point 2

Arrives-tu à derterminer la longueur de ton gabarit?

Avec LatLong.longitude tu partais à l'Ouest :icon_wink:

@+
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 19:26

J'ai essayé ça sans sucés , mais j'y réfléchis hmm
Code:
def routine
model = Sketchup.active_model
entities = model.active_entities
definitions = model.definitions
path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
componentdefinition = definitions.load path
selection = model.selection



edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
position = vertex0.position  # determine les coordonnées de ton point n°1
vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
position = vertex1.position  # determine les coordonnées de ton point n°2
edge =selection
length = edge.length

point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
trans = Geom::Transformation.new point
instance = entities.add_instance componentdefinition, trans
etir_comp = Geom::Transformation.scaling length, 1, 1
instance.transform! (etir_comp)



end


    if( not file_loaded?("zzz.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposantici") { routine }
    end
    file_loaded("zzz.rb")
end
hmm
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 19:34

Pour trouver la longueur de ton composant Arrow BoundingBox.height

Bon courage, si tu as besoin n'hésites pas Exclamation Exclamation

@+
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 19:40

Je sais que ce n'ai pas ça , mais pourquoi l'échelle du composant n'est pas égale a la longueur de ma ligne ?
Code:
def routine
model = Sketchup.active_model
entities = model.active_entities
definitions = model.definitions
path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
componentdefinition = definitions.load path
selection = model.selection



edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
position = vertex0.position  # determine les coordonnées de ton point n°1
vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
position = vertex1.position  # determine les coordonnées de ton point n°2
edge = selection[0]
length = edge.length
longueur = lengh0.value

point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
trans = Geom::Transformation.new point
instance = entities.add_instance componentdefinition, trans
etir_comp = Geom::Transformation.scaling longueur, 1, 1
instance.transform! (etir_comp)



end


    if( not file_loaded?("zzz.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposantici") { routine }
    end
    file_loaded("zzz.rb")
end
En plus il ne marche même pas hi hi hi
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 19:51

Les valeurs du scalling sont des coefficients, là tu multiplies la longueur de ton composant par la longueur de ton segment, c'est pour cela qu'il aussi determiner la longueur de ton composant.
Le calcul est le suivant : coefficient = gabarit / composant et ca marche meme si le gabarit est plus grand que le composant, il va te le réduire
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 20:01

Oui oui je suis d'accord mais j'y vais par étape j'essaie déjas d'affecter une variable a mon échelle .
Le calcul est le suivant : coefficient = gabarit / composant et ça marche mémé si le gabarit est plus grand que le composant, il va te le réduire
A vrais dire je crois que c'était la seule chose que je savais dans ce script moqueur , les maths et la géométrie c'est comme toi avec la programmation d'un script pour sketchup "je suis au top" mdr2
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 20:08

Il y a une erreur

Code:

length = edge.length
longueur = lengh0.value

Il faut écrire

Code:

gabarit = edge.length
UI.messagebox gabarit

Tu peux rajouter la commande UI.messagebox, pour controler ta variable gabarit après tu peux la supprimer
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 20:22

Je suis vraiment tros bête ................Oh la honte rouge rouge
rouge rouge
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 20:47

ga a écrit:Je suis vraiment tros bête ................Oh la honte rouge rouge
rouge rouge

Il y a franchement pas de honte à débuter bravo2 je préfère 100 fois quelqu'un qui demande quand il n'a pas capté, plutot qu'un snobeur et Dieu sait si il y en a!!!

Sinon en début de script tu as déjà defini la variable edge
edge = selection[0]
ce n'est pas nécessaire de le faire une deuxième fois

Tu as pu lire dans la messagebox la longueur de ton arête?
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Sam 9 Jan 2010 - 20:53

Oui çà marche du tonnerre .
maintenant j'essaie d'adapter BoundingBox.height a mon composant .
J'ai beaucoup de mal à comprendre leur explication sur ce lien
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Sam 9 Jan 2010 - 21:18

1°) il faut mettre en place cette commande après avoir importé ton composant et avant ton "transformation.scaling" bien logique...
2°) Ca doit te donner une ligne du style :
ta_variable = ton_composant.bounds.height
UI.messagebox ta_variable # pour contrôle à supprimer après ton test
ensuite le calcul de ton_coefficient
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Dim 10 Jan 2010 - 10:17

Bonjour à tous

Après une bonne nuit de sommeille j'y suis enfin arrivé voici le code :

Code:
def routine
  model = Sketchup.active_model
  entities = model.active_entities
  definitions = model.definitions
  path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
  componentdefinition = definitions.load path
  selection = model.selection

edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
    verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
    vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
    position = vertex0.position  # determine les coordonnées de ton point n°1
    vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
    position = vertex1.position  # determine les coordonnées de ton point n°2


point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
    trans = Geom::Transformation.new point
    instance = entities.add_instance componentdefinition, trans

gabarit = edge.length
 
longueur_composant =componentdefinition .bounds.width

coefficient = gabarit /  longueur_composant

etir_comp = Geom::Transformation.scaling coefficient, 1, 1
    instance.transform! (etir_comp)



end


    if( not file_loaded?("zzz.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposantici") { routine }
    end
    file_loaded("zzz.rb")
end
_Par contre il y à encore une petit erreur le composant ne s'insère pas au début de la ligne et ce phénomène est accentué par l'augmentation de la longueur de la ligne .
Ceci est du a la ligne : etir_comp = Geom::Transformation.scaling coefficient, 1, 1
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Dim 10 Jan 2010 - 10:50

Si l'on met la valeur du coefficient à 3 le composant s'insère au "début de la ligne + (la distance entre l'axe y d'origine et le début de la ligne * le coéfficient )"
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Essais12
Une idée ou j'ai pu met planté ?
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Dim 10 Jan 2010 - 12:45

ga a écrit:Si l'on met la valeur du coefficient à 3 le composant s'insère au "début de la ligne + (la distance entre l'axe y d'origine et le début de la ligne * le coéfficient )"
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Essais12
Une idée ou j'ai pu met planté ?

Oui j'ai vu ça, le problème se pose si ton gabarit démarre à l'origine et que ton composant est en réalité un modèle sauvegardé

Je ne suis pas sur mais je vais contrôler Arrow
  1. Pour te faciliter la compréhension tu vas d'abord dans le menu fenetre\infos sur le modele\composant et tu coches afficher les axes du composant et vas tout de suite comprendre, ton composant est inséré par rapport à ce repérage.
  2. je suppose que le composant que tu utilises est enfin de compte un modele que tu as sauvegardé??
    Si c'est le cas tu ouvres ton modèle, sélectionnes ton composant contrôle où se trouve le point d'origine des axes de ton composant (en faisant par exemple modifier composant), il faut que le point d'origine corresponde au point d'insertion souhaité. Sinon tu éclates ton groupe ou ton composant. Tu sélectionnes à nouveau les éléments de ton chevron, clic droit créer composant et la tu fais attention de bien placer tes axes



Mais il faut aussi fouiller de coté là Arrow transformation.origin

Je fais des essais et je te tiens au courant, mais ce qui est sur il faut que ton composant soit un "vrai composant"

@+


Dernière édition par c.plassais le Sam 30 Jan 2010 - 8:25, édité 1 fois
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Dim 10 Jan 2010 - 13:20

Pourtant les axes de mon composant sont bien placés non ?
Suite du Plugin de Ga, Import d'un composant avec mise à l'échelle suivant un gabarit Chevro10
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Dim 10 Jan 2010 - 13:49

Ok, donc ton garabit est dans le sens de l'axe rouge?
il faudra par la suite penser à la situation où le gabarit n'est pas dans le sens de l'axe longitudinal du composant, il faudra determiner le gabarit comme vecteur pour l'insertion et l'étirement du composant

Il faut que le point d'intersion du composant (point de départ de la ligne) devienne temporairement le point ORIGIN

A tout
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Dim 10 Jan 2010 - 15:04

C'est plus simple que ça et tu avais raison la réponse pour le point de départ est avec transformation.scaling ou tu peux déterminer le point de départ du scaling
Le point de départ étant le point de départ du ton gabarit
Donc pas de ligne à ajouter juste une ligne à légerement modifier

Je viens de tester ca fonctionne
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Lun 11 Jan 2010 - 18:14

Saluuuuttttt rigole

C'est un 4 éme argument qu'il manqué ce qui donne
Code:
etir_comp = Geom::Transformation.scaling point,coefficient,1,1
Et c'est vrais que sa marche nickel comme ca c'est magique .
Code complet :
Code:
def routine
model = Sketchup.active_model
    entities = model.active_entities
    definitions = model.definitions
 
path = Sketchup.find_support_file "Chevrons.skp",    "Components/Perso/"
  componentdefinition = definitions.load path
  selection = model.selection

if selection.length > 1
    UI.messagebox("Selectionner une seule ligne SVP.")
    return nil
end

edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
    verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
    vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
    position = vertex0.position  # determine les coordonnées de ton point n°1
    vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
    position = vertex1.position  # determine les coordonnées de ton point n°2


point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
    trans = Geom::Transformation.new point
    instance = entities.add_instance componentdefinition, trans

gabarit = edge.length
 
longueur_composant =componentdefinition .bounds.width

coefficient = gabarit /  longueur_composant

etir_comp = Geom::Transformation.scaling point,coefficient,1,1
    instance.transform! (etir_comp)



end


    if( not file_loaded?("Ligne/Composant.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposant") { routine }
    end
    file_loaded("Ligne/Composant.rb")
end
Il faut à present que je regarde l'éventualité que le composant ne soit pas dans l'axe rouge .
Et aussi pouvoir changer de composant par ce qu'il n'y a pas que des chevrons dans la vie mdr1 il y a des pannes , des fermes , de la volige etc ...........hi hi hi :icon_wink:
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 11 Jan 2010 - 18:52

bien Il marche nickel
Ca y est tu as fini de cochonné beret
Je vais chercher en même temps que toi, je viens de tester ton script, mon chevron est dans le sens de l'axe bleu du coup mon chevron est plus large que long mdr2 il faut peut-être regarder de ce coté là Arrow transformation.rotation en determinant l'axe longitudinal du composant et calculer son l'angle par rapport au gabarit.

Pour les composants cela ne doit pas être trop compliqué, scruté le repertoire perso et proposer une liste
Il faudra aussi que tu prevois une boucle ou une copie multiple pour la conception du solivage d'un plancher par exemple

Ton contrôle fonctionne bien par contre il faudrait la même chose lorsque rien n'est sélectionnée
De selectionner plusieurs lignes cela peut te permettre aussi une insertion multiple, il suffit de faire une boucle en fonction du nombre de lignes sélectionnées

@+

Christophe
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Lun 11 Jan 2010 - 19:52

Je suis sur le problème "Quel composant voulez vous insérer ?" j'y suis presque il me faut plus que j'arrive à récupérer la sélection puis la mettre dans une variable et le tour est joué ha ha .....
ga
ga
Moulin à parole
Moulin à parole
Masculin Humeur : boiseuse ......
Date d'inscription : 02/01/2010
Nombre de messages : 312
Points : 363
Age : 47
Localisation : Chez moi !........
Emploi : Charpentier

Messagega Mer 13 Jan 2010 - 11:35

Salut .........

Voici le nouveau script amélioré :
Vous avez le choix du composant à insérer , par contre je ne suis pas encore arrivé a afficher le dossier composant puis faire le choix dans ce dernier , donc vous pouvez insérer que les composants qui sont inscrit dans le script pleure , pour moi ca me va mais pour un autre utilisateur il va falloir qu'il inscrive le nom de ces composants sur cette ligne :
Code:
 list = [ "Chevrons.skp|Ferme.skp|Demi ferme.skp" ]
par exemple ceci
Code:
list = [ "pla pla pla.skp|truc truc.skp|sac a caca.skp" ]

voici le code non définitif (Beta):
Code:
def routine
model = Sketchup.active_model
    entities = model.active_entities
    definitions = model.definitions

    prompts = ["Quel composant voulez vous insérer ?"]
      defaults = ["Chevrons.skp"]
      list = [ "Chevrons.skp|Ferme.skp|Demi ferme.skp" ]
      results = UI.inputbox prompts, defaults, list,  "Choix du composant"
      results = results.to_s
 
path = Sketchup.find_support_file (results), "Components/Perso/"
  componentdefinition = definitions.load path
  selection = model.selection

if selection.length > 1
    UI.messagebox("Selectionner une seule ligne SVP.")
    return nil
end

edge = selection[0]          # Récupère la sélection dans la variable edge il faudra faire un bouclage si tu veux l'appliquer à des sélections multiples et mettre un controle de validité
    verticies = edge.vertices    # Récupère les sommets de edge et les stocks dans un tableau
    vertex0 = verticies[0]        # affecte le sommet position [0] du tableau verticies à la variable vertex0
    position = vertex0.position  # determine les coordonnées de ton point n°1
    vertex1 = verticies[1]        # affecte le sommet position [1] du tableau verticies à la variable vertex1
    position = vertex1.position  # determine les coordonnées de ton point n°2


point = Geom::Point3d.new verticies[0] # ici séquence d'importation j'itère deux fois la même chose pour le point 1 et 2, on peut aussi créer un bouclage si + de points
    trans = Geom::Transformation.new point
    instance = entities.add_instance componentdefinition, trans

gabarit = edge.length
 
longueur_composant =componentdefinition .bounds.width

coefficient = gabarit /  longueur_composant

etir_comp = Geom::Transformation.scaling point,coefficient,1,1
    instance.transform! (etir_comp)



end


    if( not file_loaded?("Ligne/Composant.rb") )
      UI.add_context_menu_handler do |context_menu|
      context_menu.add_separator
      context_menu.add_item("Insérer uncomposant") { routine }
    end
    file_loaded("Ligne/Composant.rb")
end
Maintenant il faut que je regarde le problème des axes hmm encore de belles heures devant sont pc calin
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 61
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Mer 13 Jan 2010 - 15:44

Ca prend tournure bien
Je galère sos toujours avec la rotation du composant, quelques pistes qui ne sont pas forcément les bonnes moqueur

Pour déterminer le vecteur entre deux points Arrow vector_to
Pour déterminer l'angle entre deux vecteurs Arrow angle_between

Pour la rotation Arrow Transformation.rotation

Bon courage
Contenu sponsorisé

MessageContenu sponsorisé

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum