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 14769 topics pour un total de : 175136 posts - le record de membres connectés simultanément :555
Galerie


Dimensions réelles d'un composant Empty
Ton bloc notes
Derniers sujets
» [ SKETCHUP généralité ] Problème avec le 3d warehouse
par tenrev Jeu 25 Juil 2024 - 11:35

» [ INTELLIGENCE ARTIFICIELLE ] quelques vidéo IA
par tenrev Mer 24 Juil 2024 - 13:37

» [ SKETCHUP généralité ] modélisation rapide d'un grand pouf style "fatboy"
par tenrev Mer 24 Juil 2024 - 13:30

» [ SKETCHUP généralité ] Retourner le long de
par vick Mar 23 Juil 2024 - 15:17

» [ ENSCAPE ] tuto rendu style "studio" et amélioration avec IA
par tenrev Mar 23 Juil 2024 - 13:43

» [ SKETCHUP généralité ] short sur youtube bien organiser les scénes
par tenrev Mar 23 Juil 2024 - 13:40

» [ SKETCHUP composants dynamiques ] un petit short youtube qui montre une utilisation de composants dynamiques
par tenrev Mar 23 Juil 2024 - 13:35

» [ SKETCHUP plugins ] Parametric Modeling
par Anar Mar 23 Juil 2024 - 10:11

» [ SKETCHUP plugins ] Universal Importer
par tenrev Sam 20 Juil 2024 - 19:55

» [ D5_RENDER ] Le Cull effect dans un scatter
par Gaspard Hauser Ven 19 Juil 2024 - 17:52

» [ LUMION ] mémorandum LUMION
par Lumion France Jeu 18 Juil 2024 - 11:36

» [ LUMION ] Lumion 2024
par Lumion France Jeu 18 Juil 2024 - 11:28

» [ SKETCHUP composants dynamiques ] Hidden avec formule IF et OR imbriqué
par simjoubert Lun 15 Juil 2024 - 23:05

» [ PRESENTATION ] Anar (Spacymen)
par simjoubert Jeu 11 Juil 2024 - 23:11

» [ CHALLENGES ] Ca vous intéresserait un challenge - je lance un sondage
par Gaspard Hauser Jeu 11 Juil 2024 - 14:13

» [ SKETCHUP généralité ] barre outils 2024
par JDD Mer 10 Juil 2024 - 11:52

» [ SKETCHUP plugins ] boolean
par Anar Mar 9 Juil 2024 - 17:30

» [ D5_RENDER ] Quelques Rendus D5 Render
par Gaspard Hauser Sam 6 Juil 2024 - 11:39

» [ SKETCHUP composants dynamiques ] Demande aide Composant dynamique
par tenrev Sam 6 Juil 2024 - 7:31

» [ ARCHICAD ] Alignement entre textures et hachures en façades
par eddyje Jeu 4 Juil 2024 - 17:01

» [ PRESENTATION ] Alpilles AMO
par tenrev Sam 29 Juin 2024 - 14:19

» [ SKETCHUP plugins ] JHS power bar
par vick Mer 19 Juin 2024 - 22:51

» [ SKETCHUP tutos ] Modéliser à partir d'1 image, d'1 photo
par jerryvento Lun 17 Juin 2024 - 8:38

» [ SKETCHUP généralité ] Modéliser à partir d'1 image, d'1 photo
par jerryvento Lun 17 Juin 2024 - 8:38

» [ SKETCHUP plugins ] plugin fredo 6 - réinstallation des licences
par vick Ven 14 Juin 2024 - 17:31

» [ SKETCHUP généralité ] export-import de scènes
par silic Mer 12 Juin 2024 - 18:18

» [ SKETCHUP plugins ] import nuages de points
par bruno Mar 11 Juin 2024 - 13:08

» [ SKETCHUP plugins ] layout sketchup et VBO LayOut Flattener
par JDD Mer 5 Juin 2024 - 19:42

» [ CHAINE TWITCH ] replay d'un mini live
par tenrev Mar 4 Juin 2024 - 9:35

» [ SKETCHUP Layout ] Texture en rendu vectoriel
par tenrev Mar 4 Juin 2024 - 8:30

» [ SKETCHUP objets ] tiroir cuisine
par JDD Dim 2 Juin 2024 - 10:43

» [ SKETCHUP composants dynamiques ]
par Miroslav Mar 28 Mai 2024 - 15:51

» [ SKETCHUP composants dynamiques ] Masquer valeur attribut
par Manutio Mar 21 Mai 2024 - 14:02

» [ TWINMOTION ] CONSEIL FORMATION
par tenrev Mar 21 Mai 2024 - 10:17

» [ AUTRES LOGICIELS ] LOGICIEL OFFERT
par jerryvento Ven 17 Mai 2024 - 8:36

Sondage

êtes vous intéressé et prêt à participer à un challenge ?

Dimensions réelles d'un composant Poll_c1015%Dimensions réelles d'un composant Poll_c10 15% [ 2 ]
Dimensions réelles d'un composant Poll_c1031%Dimensions réelles d'un composant Poll_c10 31% [ 4 ]
Dimensions réelles d'un composant Poll_c1046%Dimensions réelles d'un composant Poll_c10 46% [ 6 ]
Dimensions réelles d'un composant Poll_c108%Dimensions réelles d'un composant Poll_c10 8% [ 1 ]
Dimensions réelles d'un composant Poll_c100%Dimensions réelles d'un composant Poll_c10 0% [ 0 ]
Dimensions réelles d'un composant Poll_c100%Dimensions réelles d'un composant Poll_c10 0% [ 0 ]

Total des votes : 13

chaine sketchup.tv
Serveur Discord
Le Deal du moment :
Manga Spy x Family Tome 13 édition Collector : ...
Voir le deal
14.50 €

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 : 36
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

landry01 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
Dimensions réelles d'un composant Captur44
c.plassais
c.plassais
modérateur
modérateur
Masculin Date d'inscription : 19/07/2009
Nombre de messages : 2058
Points : 2479
Age : 62
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 : 36
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 : 62
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
Dimensions réelles d'un composant Boundi10

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 : 36
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 : 62
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 : 36
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 : 62
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à

http://code.google.com/intl/fr-FR/apis/sketchup/docs/ourdoc/transformation.html
avatar
landry01
Loquace
Loquace
Masculin Humeur : Blagueur
Date d'inscription : 10/06/2010
Nombre de messages : 52
Points : 86
Age : 36
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 : 62
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 : 36
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 : 62
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 : 36
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 : 62
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 : 36
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 : 62
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 : 36
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 : 36
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 : 62
Localisation : Chambéry
Emploi : Responsable Gestion Atelier
http://bande.village.free.fr/

Messagec.plassais Mar 15 Juin 2010 - 11:46

landry01 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 : 36
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 : 36
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 : 36
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 : 62
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 : 36
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...
Contenu sponsorisé

MessageContenu sponsorisé

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