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 ] sj_AddDCFunctions
par simjoubert Hier à 18:18

» [ SKETCHUP plugins ] Move Align Me by Fredo
par Pilou Hier à 17:50

» [ AUTRES LOGICIELS ] bibliothèques d'objets ArchitecPC
par tenrev Hier à 15:24

» [ SKETCHUP composants dynamiques ] démo de composants dynamiques
par Pilou Hier à 11:53

» [ TWINMOTION ] résolution image de sortie
par Pistou Jeu 25 Nov 2021 - 15:34

» [ SKETCHUP plugins ] Skatter 2 disponible
par Pilou Jeu 25 Nov 2021 - 12:21

» [ SKETCHUP plugins ] sj_AddDCAttribut création d'attribut sur une sélection d'instances de composants
par tenrev Jeu 25 Nov 2021 - 8:52

» [ SKETCHUP plugins ] Black friday -30 % à - 50% sur des plugins sketchup
par tenrev Mer 24 Nov 2021 - 13:13

» [ WIP ] Rendu Loft
par REGIS Lun 22 Nov 2021 - 23:45

» [ FORUM ] Compteur de visite d'un lien
par simjoubert Lun 22 Nov 2021 - 12:38

» [ SKETCHUP composants dynamiques ] placement composant dynamique
par tenrev Lun 22 Nov 2021 - 12:08

» [ AUTRES LOGICIELS ] SPline En ligne
par Pilou Ven 19 Nov 2021 - 17:37

» [AUTRES LOGICIELS] Moi3D beta 4.0 - 64 bits Mac / PC 27 Octobre 2020
par Pilou Ven 19 Nov 2021 - 10:14

» [ OBJETS ET BILLBOARDS ] 90 modèles de plantes 3D en téléchargement gratuit chez Maxtree
par jerryvento Jeu 18 Nov 2021 - 15:20

» [ UNREAL ENGINE ] Mise à jour de metahuman-creator en ligne pour Unreal
par tenrev Jeu 18 Nov 2021 - 9:57

» [ CORONA ] Corona 8 prévu en début d'année 2022
par tenrev Jeu 18 Nov 2021 - 9:05

» [ UNREAL ENGINE ] mise à jour de Faceware Studio 1.5 capture de mouvement facial
par tenrev Jeu 18 Nov 2021 - 9:03

» [ BLENDER ] Modificateur sur plusieurs maillages
par Farkas Mar 16 Nov 2021 - 21:59

» [ UNREAL ENGINE ] Tuto en français par Jack ???
par jerryvento Mar 16 Nov 2021 - 15:04

» [ TEXTURES ET SHADERS ] Téléchargez 1 800 images de ciel 2K gratuites depuis MattePaint
par tenrev Mar 16 Nov 2021 - 10:26

» [ ARCHICAD ] Cotation de Niveau / Maillage / Etage Fantôme.
par chapichapo Lun 15 Nov 2021 - 22:07

» [ FORUM ] Bitdefender sur le Forum Tentatives de phishing
par simjoubert Dim 14 Nov 2021 - 22:08

» [ SKETCHUP généralité ] Dessiner une vis métal (fausse) en moins d'1 minute, tête comprise
par jerryvento Dim 14 Nov 2021 - 14:31

» [ SKETCHUP objets ] probleme de modelisation en STL
par tenrev Dim 14 Nov 2021 - 14:30

» [ SKETCHUP tutos ] Dessiner 1 vis métal (fausse) en moins d'1 miute, tête comprise
par jerryvento Dim 14 Nov 2021 - 14:28

» [ SKETCHUP généralité ] spectre des éléments à l'arrière
par jerryvento Sam 13 Nov 2021 - 18:10

» [ ARCHICAD ] Archicad 25 "V2" arrive tout bientôt et voici les nouveautés :
par Coulou Jeu 11 Nov 2021 - 16:38

» [ SKETCHUP généralité ] Spam sur 3dWH???
par tenrev Jeu 11 Nov 2021 - 9:53

» Probleme pour redimensionner les objets Autocad importer sur Lumion
par tenrev Mer 10 Nov 2021 - 16:20

» [ ARCHICAD ] Compatibilité Apple (M1 Max) et ArchiCad (25)
par Coulou Mer 10 Nov 2021 - 9:06

» [ UNREAL ENGINE ] Les assets gratuits du mois pour Unreal Engine
par jerryvento Mar 9 Nov 2021 - 12:11

» [ SKETCHUP Layout ] Texture en rendu vectoriel
par tenrev Dim 7 Nov 2021 - 8:21

» [SKETCHUP] Modèles à partager !
par JDD Ven 5 Nov 2021 - 11:40

» [ SKETCHUP Vray ] mise à jour Vray 5 pour sketchup
par tenrev Ven 5 Nov 2021 - 8:59

» [ TWINMOTION ]sortie de la nouvelle version 2022 .1
par tenrev Jeu 4 Nov 2021 - 11:09

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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 59
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 : 33
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 : 33
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 : 59
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 : 33
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 : 33
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 : 33
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 : 59
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 : 33
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