Salut,
Les plugins (en rbz) installer via préférence/extension peuvent être activés à la volée, mais ne peuvent pas être désactivés ensuite à la volée (nécessite le redémarrage de SU).
Salut,
Les plugins (en rbz) installer via préférence/extension peuvent être activés à la volée, mais ne peuvent pas être désactivés ensuite à la volée (nécessite le redémarrage de SU).
I thought this topic was used to identify inconsistencies in the API doc.
I had just noticed that the code of the tutorial was a mistake.
I started in ruby but I think the line "value = value.gsub(/'/,''')" contains an error.
Maybe I'm wrong and that it is normal that the two following functions can be found commented.
So TIG you say it should be .gsub(/'/,"'"). That's what I wanted to know and get noticed.
Sorry for the inconvenience.
Hi !
I haven't seen if it had benn reported but :
In Attribute reporting Tutorial in the function :
def clean_for_xml(value)
value = value.to_s
value = value.gsub(/\</,'<')
value = value.gsub(/\>/,'>')
value = value.gsub(/\"/,'"')
value = value.gsub(/\'/,''')
return value
end
The last gsub make that the rest of code is a comment...
Niquel ton composant Silic !
Super la possibilité de choisir si on peut redimensionné avec l'outil échelle.
Par contre j'aurai rajouté l'étape "complètement fermé". Et pourquoi pas pouvoir agir sur chaque vantaux.
@Vick : Normalement la version pro ser uniquement à "programmer" un composant. Un utilisateur avec la version non pro peut interagir avec un composant dynamqie.
Essayes : clic droit sur le composant, composants dynamique, options du composant.
Ok, I need some times to understand what you say.
But... Why I can't get the information that I see in the DC attribute window ?
Then in the DC attribute window the information is update automatically...
How the feature File/Generate rapport do that ?
Ok for the time being my aim is to get the angle of my DC.
In the DC dialog window roty = 17.
With my code I get 0.
Ohhh, I get news
So I entered directly the angle in the DC dialog window
and now the angle appears in the ruby console !
But if I move the DC with "move" or "rotate" the angle change in the window but no in the return of my code.
Why ?
You speak about transformation... did i get my angle with other method than attribute_dictionaries ?
Ok I don't understand something...
In my model, I create a "cube" and make it DC (manually).
I rotate (Y axe) it (manually).
I type your code in ruby console and run it.
Return nil
I display in attributes component window : x,y,z,lenx,leny,lenz,rotx,roty,rotz.
I run again your code.
It return each pair key and value
With my model who have my DC,
Your code return just
"_has_movetool_behaviors"
1.0
and the two personnal key/value
But in the attributes component windows all the key and value are displaying...
In fact, with my code, I can get name, _lengthunits, lenx,ley,lenz. But x,y,z,rotx,roty,rotz, return 0
Thanks TIG for your reply.
Yes, entites[0] is a DC instance.
It was a simplified example, in my whole code I have different "test" to be sure that is a DC instance.
And in the same examaple with only one DC :
entity.get_attribute("dynamic_attributes", "lenx")
return a value > 0
I have tested with _inst_roty
return nil
Hello !
Sorry for my poor english...
I will get the value RotY of DC's dynamic_attributes.
But in my code :
model = Sketchup.active_model
entity = model.entities[0]
roty_1 = entity.get_attribute("dynamic_attributes", "roty")
roty_2 = entity.definition.get_attribute "dynamic_attributes", "roty"
puts roty_1
0
puts roty_2
0
Why get I zero ?
It must be 30...
Any idea ?
Merci pour l'explication en mode tableur.
Moi j'ai un problème pour extraire la valeur de RotY de mon composant :
la commande : entity.definition.get_attribute "dynamic_attributes", "roty"
renvoie : 0
de même la commande : entity.get_attribute( "dynamic_attributes", "roty" )
me renvoie 0
C'est bizar que j'obtienne les autres valeur mais pas les rotations...
Comment on obtient cette valeur d'attribut ?
Salut,
En ruby il faut transformer la valeur en "float" avec .to_f puis la convertir en cm par exemple avec .to_cm
Par exemple :
model = Sketchup.active_model
entite_0 = model.entities[0]
entite_0_lenx = entitie_0.definition.get_attribute "dynamic_attributes", "LenX"
entite_0_lenx_cm = entite_0_lenx.to_f.to_cm
Bon courage !
Et bien a partir du moment où Trimble propose une API en ruby et que celle ci est largement documenté.... Tout est possible !
En ruby tu lis ton fichier source, tu extrait ce qui t'interesse puis en ruby avec l'api tu modifie, créer, extrait ce que tu veux.
Salut Silic,
Tu peux déjà faire Fichier/Générer un rapport (html ou csv)
Tu obtiendra les attributs de toutes les entités du model.
Et tu trouveras le code source ruby de cette fonctionnalité à cette page :
https://developers.google.com/sketchup/docs/tutorial_attrreporting
En réalité il y plus de fonctionnalité dans Générer un rapport que dans le plugin Attribute Reporting mais ce dernier étant divulgué, on peut donc se l'adapter et comprendre le fonctionnement.
Merci Daredevil ! Je vais regarder pour les formules. Effectivement la mise à l'échelle selon l'axe rouge (longueur) est plus précise.
@silic : sur ce modèle la texture s'étire.
Bonjour,
Tout d'abord un grand merci à Daredevil. J'ai pus mener à bien mon Coposant Dynamique.
Voici le fichier : Chevron dynamique
Les extrémités de ce composant s'adaptent à la pente.
Bonjour à tous,
J'espère que je vais arriver à vous expliquer mon problème.
J'ai donc un composant dynamique qui se décomposent en trois sous composants dynamique.
DC Barre
On peut considérer que mon composant est une barre composé d'un Corps et d'une Extrémité à chaque bout.
Je voudrait pouvoir influer sur la longueur de ma Barre tout en gardant fixe la longueur des Extrémités. De plus les Extrémité doivent rester "souder" au Corps.
Par exemple la Barre doit faire 3000 mm hors tout avec les extrémités qui font 100 mm.
Je dois donc avoir : Ext 1 de 100 mm + Corps de 2800 mm + Ext 2 de 100 mm.
Si je veux que ma Barre fasse 2500 mm, je voudrais obtenir :
Ext 1 de 100 mm + Corps de 2300 mm + Ext 2 de 100 mm.
Mon problème ou plutôt mes problèmes :
Via les attributs des composants :
Si je modifie la longueur de Barre, alors cela modifie aussi la longueur des mes Extrémités.
Si je modifie la longueur de Corps, il se détache des Extrémités.
Idem si je modifie la longueur des Extrémités, elles se détachent de Corps.
J'ai cru avoir ma solution avec Alignement/Liaison lors de la création des composants Ext mais non, elles ne reste pas collé à Corps.
Je pense que je m'y prend mal, mais après quelques jours d'expérimentation je n'arrive pas au résultat attendu.
PS : J'aimerais pouvoir faire ça sans plugins.
Merci d'avance de votre aide.