Ruby : Récupérer des éléments issues d'un explode
-
Bonjour,
Je cherche depuis un moment un moyen de récupérer des éléments issues d'un explode depuis un code Ruby.
Je m'explique :
Nous avons un client qui utilise uniquement la version "Make" donc nous n'avons pas la possibilité d'utiliser la fonction substract pour faire une jointure automatique entre 2 éléments.
Par une astuce réfléchie en interne, nous avons donc décidé d'utiliser une autre fonction, à savoir "Follow me".
En gros, j'ai un composant à un point de départ, j'utilise les coordonnées de base de ce composant pour tracer des lignes et je souhaite utiliser ensuite la fonction follow me pour reproduire le dessin de mon composant sur les lignes que j'ai tracé.
Mais pour utiliser la fonction follow me, je dois faire un explode de mon composant et prendre la face que je souhaite utiliser. Mon soucis, c'est que je ne sais pas comment la récupérer suite à mon explode. J'ai essayé de stocker ça dans un tableau mais j'ai un message m'indiquant que j'essaye de travailler sur un élément qui n'existe plus.
Si quelqu'un a déjà fais quelque chose de similaire, je suis preneur!
Si je n'ai pas été assez clair n'hésitez pas à me le dire.
-
Make a group to contain what you are about to make.
model=Sketchup.active_model ants=model.active_entities group=ants.add_group()
If there is a preselected path use something likegroup=ants.add_group(model.selection)
ents=group.entities
Get the existing group entities [if any]...
gents=ents.to_a
Now add the component: assuming the component-definition's reference and the transformation need to locate it...
instance=ents.add_instance(component_definition, transformation)
Now explode the instance:
instance.explode
Now get the new entities...
new_entities=ents.to_a-gents
Formez un groupe pour contenir ce que vous vous apprêtez à faire.
model=Sketchup.active_model ants=model.active_entities group=ants.add_group()
Si il ya une utilisation de trajet présélectionné quelque chose commegroup=ants.add_group(model.selection)
ents=group.entities
Obtenez les entités du groupe existantes [le cas échéant] ...
gents=ents.to_a
Maintenant, ajoutez le composant: en supposant que la référence de la composante-définition et de la transformation doivent localiser ...
instance=ents.add_instance(component_definition, transformation)
Maintenant exploser l'instance:
instance.explode
Maintenant obtenir les nouvelles entités ...
new_entities=ents.to_a-gents
-
En dehors de la solution technique de TIG...
Ce que je ne comprends pas c'est en quoi le fait de recevoir des composants ou autres d'une version Make empèche de faire quoi que ce soit d'opération booléenne avec la version Pro ?
Une petite image aurait été la bienvenue!
En quoi un composant A et B réalisés dans Make empèchent de faire une opération boolénne de différence ou autre dans la Pro?
Un truc m'échappe! -
Non justement Pilou c'est l'inverse.
En gros, on a fait un script Ruby sur une version "PRO" qui utilisait la fonction "Substract" donc pas de problème, il fonctionnait à merveille... jusqu'à ce qu'on le teste chez le client, en version "Make" chez lui et que l'on s’aperçoive que cette fonction n'était pas disponible.
On a donc cherché une alternative gratuite pour contourner le problème.
Je n'ai pas encore testé la solution de TIG, je vais m'y pencher. J'espère que ça va solutionner une partie de mes problèmes! Si ce n'est pas le cas, je me creuserais encore la tête
-
Bonjour,
Suite à une recherche toute bête sur SketchUp Ruby API et avec l'aide du code de TIG, j'ai réussi à faire ce que je voulais!
Merci beaucoup d'avoir pris le temps de me répondre.
Bonne journée!
Advertisement