Forum Sketchup Artlantis Archicad
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Galerie


Dimensions réelles d'un composant Empty
Ton bloc notes
Derniers sujets
» [ SKETCHUP plugins ] Parametric Modeling
par REGIS Aujourd'hui à 21:28

» [ PRESENTATION ]
par Samuel Tallet-Sabathé Aujourd'hui à 19:11

» [ AUTRES LOGICIELS ] Algodoo Physique 2D gratuit pour MAC!
par Pilou Aujourd'hui à 16:40

» [ ARCHICAD-OBJETS GDL ] Animation objet dans Archicad
par Christophe Fortineau Hier à 21:42

» [ SKETCHUP plugins ] Fredo Corner et Round corner
par jerryvento Hier à 18:47

» [ SKETCHUP plugins ] Parametric Modeling (WIP)
par Samuel Tallet-Sabathé Sam 6 Mar 2021 - 18:17

» [ SKETCHUP généralité ] Le gestionnaire des calque ne s'affiche pas
par tenrev Ven 5 Mar 2021 - 19:18

» [ ARCHICAD-OBJETS GDL ] Object GSM couleur et aspect
par Christophe Fortineau Ven 5 Mar 2021 - 16:34

» [ ARCHICAD ] Garde corps personnalisé
par Coulou Ven 5 Mar 2021 - 14:35

» [ SKETCHUP plugins ] Rampes d'escalier et garde-corps(free)
par tenrev Ven 5 Mar 2021 - 14:29

» [ TWINMOTION ] impossible de synchroniser un fichier archicad le lendemain
par tenrev Jeu 4 Mar 2021 - 14:33

» [ ENSCAPE ] sortie de la version 3 avec l'interface un peu changée
par freroil Jeu 4 Mar 2021 - 10:47

» [ PRESENTATION ] Lhoon
par freroil Jeu 4 Mar 2021 - 10:46

» [ FORUM ] nouveau look du forum
par Coulou Mer 3 Mar 2021 - 8:52

» [ SKETCHUP plugins ] Compo Spray by Didier Bur
par Orange_o Mar 2 Mar 2021 - 18:46

» [SKETCHUP GENERALITES] Dimensions d'un rectangle
par tenrev Mar 2 Mar 2021 - 14:48

» [ SKETCHUP généralité ] Imprimer à l'échelle
par Rascal Mar 2 Mar 2021 - 7:59

» [AUTRES LOGICIELS] Moi3D beta 4.0 - 64 bits Mac / PC 27 Octobre 2020
par Pilou Lun 1 Mar 2021 - 19:15

» [ AUTRES LOGICIELS ] L'Houdini Engine gratuit pour Unreal & Unity!
par Pilou Dim 28 Fév 2021 - 18:04

» [ CINEMA4D ] Grille de ventilation
par startchup Sam 27 Fév 2021 - 4:09

» [ ARCHICAD ] Problème ouverture plan sur autre poste
par bastoune66 Ven 26 Fév 2021 - 16:42

» [ ARCHICAD ] Jointure murs
par Modjo76 Ven 26 Fév 2021 - 14:44

» [ SKETCHUP généralité ] - Fuste et particularité
par tenrev Ven 26 Fév 2021 - 10:02

» [ SKETCHUP plugins ] licence Artisan en promo à 29 $ offre limitée dans le temps
par vick Jeu 25 Fév 2021 - 16:36

» [ AUTRES LOGICIELS ] ZBrush : Nouveautés Dispo 2 Mars M à J Gratuite!
par tenrev Jeu 25 Fév 2021 - 13:53

» [ SKETCHUP généralité ] ANIMATION
par tenrev Jeu 25 Fév 2021 - 8:41

» [ CINEMA4D ] Mesurer la distance entre deux cube
par startchup Jeu 25 Fév 2021 - 5:04

» [ AUTRES LOGICIELS ] UModeler Lite version free- outil de modélisation 3D-création de level pour Unity
par tenrev Mer 24 Fév 2021 - 9:46

» [ SKETCHUP objets ] ¨Plus de 1000 objets dans ma ware house
par vick Mar 23 Fév 2021 - 14:59

» [ SKETCHUP ] Tutoriel : Importer un arbre 3D réaliste dans SketchUp
par Fab Mar 23 Fév 2021 - 11:28

» [ SKETCHUP plugins ] Material Browser
par Fab Mar 23 Fév 2021 - 11:17

» [ SKETCHUP généralité ] Appel aux bonnes volontés...
par Fab Mar 23 Fév 2021 - 10:57

» [ PRESENTATION ] Daniel - urdan8465
par Fab Mar 23 Fév 2021 - 10:44

» [ PRESENTATION ] Paméla
par Fab Mar 23 Fév 2021 - 10:43

» [ SKETCHUP composants dynamiques ] lcomposants live
par tenrev Sam 20 Fév 2021 - 20:13

Dimensions réelles d'un composant

Page 1 sur 3 1, 2, 3  Suivant

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

avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Jeu 10 Juin 2010 - 17:44

Bonsoir,
je tiens tout d'abord à m'excuser si je ne post pas dans la bonne section, mais je ne savais pas vraiment ou mettre cette question :

Comment peut on obtenir les dimension réelles composant et non les dimensions de la BoundingBox et ce, quelque soit l'angle ou l'orientation du composant...

Pour l'instant je n'ai pas trouvé...

Merci,
bonne soirée à vous! sourire
chrismat
chrismat
Moulin à parole
Moulin à parole
Masculin Date d'inscription : 01/02/2009
Nombre de messages : 396
Points : 453
Localisation : Troyes
Emploi : Concepteur paysagiste
http://www.paysaginfo.fr

Messagechrismat Jeu 10 Juin 2010 - 19:30

[Vous devez être inscrit et connecté pour voir ce lien] a écrit:Bonsoir,
je tiens tout d'abord à m'excuser si je ne post pas dans la bonne section, mais je ne savais pas vraiment ou mettre cette question :

Comment peut on obtenir les dimension réelles composant et non les dimensions de la BoundingBox et ce, quelque soit l'angle ou l'orientation du composant...

Pour l'instant je n'ai pas trouvé...

Merci,
bonne soirée à vous! sourire
Salut,
tu as essayé l'outil "mètre" ? tu devrais avoir la dimension réelle
[Vous devez être inscrit et connecté pour voir cette image]
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Jeu 10 Juin 2010 - 20:52

Salut,

Si c'est dans le cadre d'une utilisation courante, il faut effectivement faire comme l'indique Christophe
Mais comme j'ai lu que tu était programmeur, c'est peut-être pour une utilisation dans un plugin ?

@+

Christophe
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 9:48

Oui, c'est exacte monsieur Plassais.

Excusez moi j'avais effectivement oublié de préciser que je recherchais une solution pour pouvoir l'integrer dans un plugin...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 11:13

Salut,

Par sur qu'il existe de solution idéale saispas
La solution la plus simple reste malgrè tout la boundingbox
[Vous devez être inscrit et connecté pour voir cette image]

La boundingbox utilise le repere orthonormé
Une solution qui a ses limites Arrow Consider que l'axe z (hauteur) est toujour bon, balayer l'ensemble des arêtes du composant
pour determiner l'arête la plus longue. Transformer (rotation sur les axes x et y) pour aligner le composant avec cette arête sur l'axe x. Le point de depart de l'arete devient le point d'origine du composant. Supprimer la boundingbox et la recréer. Ca me marche pas pour une sphère par exemple rigole
A tester

@+
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 11:52

J'avais pensé à une solution un peu barbare, mais qui devrai fonctionner, qui consistait à éclater le groupe ou le compostant, sélectionner l'entité, réinitialiser ses axes, regrouper ou recomposé (selon la nature de départ) et récupérer les dimensions de la boundingbox.

Une fois les valeurs récupérées, un bon vieu Undo permet de revenir à l'état d'origine...

la solution fonctionne pour les formes parallépipédiques et de type cylindrique...

Mais mon tuteur m'a dit que l'on utiliserai cette méthode qu'en dernier recours car il la trouve trop barbare à son gout...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 12:50

Oui c'est une solution.
De toute manière je ne vois pas trop comment on peut faire autrement qu'en recomposant la boundingbox saispas
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 13:34

Une autre solution consistait à faire de la translation vectorielle, mais n'ayant pas fait de cycle en bac général, je n'ai jamais eu de cour dessus et ne sais pas comment cela fonctionne...

Je sais qu'il faut raisonner à partir du point d'origine des axes du composant et du point d'origine des axes du model, mais cela reste pour moi que de la theorie, puisque je ne saurai le mettre en pratique... hmm
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 14:09

Jettes un oeil ici mais tu connais peut-être déjà

[Vous devez être inscrit et connecté pour voir ce lien]
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 15:24

Mouai, mais c'est pas évident...
Je vais essayer quand même, on sait jamais des fois que j'y arrive quand même...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 15:47

Si tu as besoin d'aide dans la limite de mes capacités fais moi signe
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 17:36

Changement de méthode (encore?)...

Je vais essayer de récupérer tous les sommets et les stocquer dans une collection...
puis dans une autre collection je vais stocker l'enssembles des longueurs qu'il est possible de faire à partir d'un seul point (7 possibilités dans un paralépipède (8 sommets))
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 18:03

j'y avais pensé, mais un problème se pose si ta ligne est segmenté, cela se produit assez souvent sur Sketchup hmm
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Lun 14 Juin 2010 - 18:27

à voir, mais pour l'instant je n'arrive pas à trouver la methode pour récupérer les points d'un composant... arf pourtant si vector existait dans le composant je pourrai faire une boucle mais hélas non...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Lun 14 Juin 2010 - 19:22

Tu ne peux pas recuperer les points du composant hormi la boundingbox.
Il faut que tu balayes les entitées du composant

Un petit exemple, en supposant que tu aies un seul composant et un seule instance de ce composant dans ton modele.
Prends un composant avec 3 ou 4 aretes, sinon la boucle est longue rigole

Code:
model = Sketchup.active_model
entities = model.entities
selection = model.selection
definitions = model.definitions
mon_entite = definitions[0].entities
nb = mon_entite.count
UI.messagebox "nombre d'entités du composant = " + nb.to_s
for x in (0..nb-1)
mon_arete = definitions[0].entities[x]
if mon_arete.is_a? Sketchup::Edge
  UI.messagebox " Longueur de l'arete = " + mon_arete.length.to_s
  point_depart = mon_arete.start
  point_depart = point_depart.position
  UI.messagebox "point_depart = " + point_depart.to_s
  point_fin = mon_arete.end
  point_fin= point_fin.position
  UI.messagebox "point_fin = " + point_fin.to_s
  vecteur = point_depart.vector_to point_fin
  UI.messagebox " vecteur de l'arete = " + vecteur.to_s
end
end
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 9:33

Non, finalement on a trouvé avec le tuteur :

Code:

   ### Listing des composants selectionnes
   def getSubComponents(entityList, level)
      model=Sketchup.active_model
      if Sketchup.version[0,1].to_i > 6
         model.start_operation((db("Créer une liste de découpe")),true)
      ### 'false' is best to see results as UI/msgboxes...
      else
         model.start_operation((db("Créer une liste de découpe")))
      end 
      selection = model.selection   
      check = false
      for c in entityList
         status = selection.contains? c
         if (status || level>1)
            if c.typename == "ComponentInstance"
               check = true      
               
               subList = c.definition.entities
               hasSubComponents = getSubComponents(subList, level+1)
               if (!hasSubComponents )
                  name = " "+(c.definition.name) ### autorise les noms commencant par - + etc
                  boundingBox = c.definition.bounds
                  dims = [ boundingBox.width.to_s,boundingBox.height.to_s,boundingBox.depth.to_s ]
                  layer = " "+(c.layer.name) ### autorise les noms commencant par - + etc
                  materialClass = c.material
                  if(materialClass==nil)
                     material = getMaterial(c)
                  else
                     material = materialClass.name
                  end    
       
                  #####Tri decroisant des dimensions"
                   if(boundingBox.width >= boundingBox.height && boundingBox.height >= boundingBox.depth)        
                        @@clist = @@clist.push([name,level,dims[0],dims[1],dims[2],material])
                    elsif(boundingBox.width >= boundingBox.depth && boundingBox.depth >= boundingBox.height)
                        @@clist = @@clist.push([name,level,dims[0],dims[2],dims[1],material])
                    elsif(boundingBox.height >= boundingBox.width && boundingBox.width >= boundingBox.depth)
                        @@clist = @@clist.push([name,level,dims[1],dims[0],dims[2],material])
                    elsif(boundingBox.height >= boundingBox.depth && boundingBox.depth >= boundingBox.width)
                        @@clist = @@clist.push([name,level,dims[1],dims[2],dims[0],material])
                    elsif(boundingBox.depth >= boundingBox.width && boundingBox.width >= boundingBox.height)
                        @@clist = @@clist.push([name,level,dims[2],dims[0],dims[1],material])
                    else
                        @@clist = @@clist.push([name,level,dims[2],dims[1],dims[0],material])
                   end #if
               end #if
            end#if
         end#if
      end#for c
      return check
   end #getSubComponents

Il suffisait en fait de remplacer :
Code:
boundingBox = c.bounds

Par:
Code:
boundingBox = c.definition.bounds

Il ne me reste maintenant qu'à tester le facteur d'échelle, car le fait de faire une mise à l'échelle, ne modifie pas la taille du composant dans sa définition...

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

Messagec.plassais Mar 15 Juin 2010 - 9:58

oK bien

mais dans ce cas cela suppose que tu n'es qu'un seul composant dans ton modele et une seule instance de ce composant...
Je ne connais pas la nature de ton plugin et ta maniere de de l'appréhender...
Il est peut-être judicieux de travailler plutot sur la boundingbox de la selection en cours ?
Si dans ton modele si tu as plusieurs composants la difficullté est de terminer sur lequel tu dois travailler, sauf tu connais déjà le nom de la definion de ton composant. Si tu as plusieurs instances de cette definition, la transformation s'applique à toutes les instances sauf si tu les as rendu unique ou alors il faut travailler sur l'instance et non sur le composant.

Je te donne surement des infos que tu connais déjà, mais ça me donne l'importance negatif rigole

Bon courage

@+
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 10:19

Non, la méthode fonctionne quelque soit le nombre de composant présent dans le modèle et dans la sélection et chaque composant peut être instancié n fois...

Là, je me heurte au
Code:
.to_a
qui appartient à
Geom Classes

je n'ai pas encore trouver comment appliquer la méthode
Code:
.to_a
sur
Entity Classes
17
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 11:23

Problème :
la méthode que j'utilise récupère les definition du composant qu'il ait été modifié ou non, mais ne prend pas en compte les modifications, la dernière solution consisterai à tout éclater et recoposer les composant un par un...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Mar 15 Juin 2010 - 11:46

[Vous devez être inscrit et connecté pour voir ce lien] a écrit:Non, la méthode fonctionne quelque soit le nombre de composant présent dans le modèle et dans la sélection et chaque composant peut être instancié n fois...


Tu ne peux pas appliquer .to_a sur entity (une entité est unique) il faut que tu utilises entities qui est déjà un tableau

Code:
definitions = model.definitions
mon_entite = definitions[0].entities
nb = mon_entite.count
for x in (0..nb-1)
  mon_arete = definitions[0].entities[x]
.......
end
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 11:48

Ou que je test les instances de chaque composant...
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 12:00

En fait je ne vois pas pourquoi je m'embête...
Si on copie un composant et que l'on change des dimenssions, ce ne sera plus du tout le même composant que le composant original.
Il faudra donc renommer le nouveau composant...
Et cela je le laisse au soin de l'utilisateur...
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 13:46

Erf, le patron ne veut pas...
Il veut que je récupère le facteur d'échelle...
Et je ne vois pas comment...
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 58
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Mar 15 Juin 2010 - 14:17

Qu'est ce que tu entends par facteur d'échelle
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 32
Localisation : Lyon
Emploi : Étudiant/A la recherche de petits boulots

Messagelandry01 Mar 15 Juin 2010 - 14:28

exemples :

1 si la taille ne change pas
1.25 si la taille est augmentée de 25%
0.75 si la taille est diminuée de 25%
2 si la taille est doublée

etc...

Page 1 sur 3 1, 2, 3  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