Snippet - COMMANDE DANS LA CONSOLE SKETCHUP
-
Bonsoir
Suite a une discussion avec PILOU , je vous propose l'ouverture d'un POST dédié aux snippet ou "one line" (à vérifier)
Résumé des épisodes précédents :
Chri
Je viens de découvrir l'usage de la console SKETCHUP
Y a t-il des commandes simples, ou non que l'on peut taper dans la console et ou les trouves-t-on ?PILOU
by Pilou » 29 Jan 2014 23:15
C'est en général des fonctions faites à la volée en 5 minutes par les caïds du Ruby!
Ils appellent cela des "Snipset" ou "one line" (à vérifier)
Il y en a quelques uns qui parsèment mes posts!en voici un pour une fonction bien particulière!
http://sketchucation.com/forums/viewtopic.php?f=323%26amp;t=50305ou là bon il y a 60 pages à éplucher!
http://forum.zbrush.fr/index.php?topic=1622.msg140541#msg140541ici
http://forum.zbrush.fr/index.php?topic=1622.msg111971#msg111971et cette page
http://forum.zbrush.fr/index.php?topic=1622.520
-
Attention, c'est le plus difficile, il faut que la ligne entrée dans la console soit "en une seule ligne"!
Fabulous!
Fait avec le premier de la liste du post du dessus! Merci à Sdmitch ! -
Et 1 snippet 1 !
a+ -
@chri said:
Suite a une discussion avec PILOU , je vous propose l'ouverture d'un POST dédié aux snippet ou "one line" (à vérifier)
Super idée !!!! Dès que j'ai fini tout ce que j'ai en cours, je m'y mets@unknownuser said:
Attention, c'est le plus difficile, il faut que la ligne entrée dans la console soit "en une seule ligne"!
le chalenge me rappelle furieusement les Deuligne de Hebdogiciel des années 80 (pour ceux à qui ça ne parle pas, je vous laisse chercher ça ) -
Bonjour,
Très bonne idée ce post. Si chaque snippet a une petite explication et une image, on pourra en associer ensemble pour arriver à nos fins, enfin en bidouillant un peu le ruby ! Ca m’intéresse
-
Par exemple le "Undrop multiple" des groupes ci-dessous ou ce fichier pour des composants!
(l'inverse serait le Drop by Thomthom curieusement appellé Raytracer mais qui n'est pas multiple en "empilement", pour cela il faut utiliser SketchyPhysics!
Mon code pour le "undrop" et hélas un des derniers !
model = Sketchup.active_model model.start_operation("Move in Z") entities = model.entities selection = model.selection zeds=[] index=0 sorted_groups=[] groups=[];selection.each{|entity|groups.push(entity) if entity.kind_of?(Sketchup;;Group)} groups.each{|group|zeds.push([group.bounds.min.z, index]) index+=1 } zeds.sort! zeds.each{|z|sorted_groups.push(groups[z[1]]) } ### sorted_groups is now groups sorted by z z = 0.0 sorted_groups.each do |e| # update! # Now we process the groups t = Geom;;Transformation.new(Geom;;Point3d.new(0,0,z)) # Apply the transformation e.transform!(t) z = z + 100.cm end model.commit_operation return nil
-
Au fait il y a une "Super Ruby Console Web" by Jim Foltz
Ce qui vous permettra par exemple de bidouiller mes premiers essais de Ruby "one line" (une peu grosse d'accord)
Avec mes remerciements à Tig, Thomthom et Chris Fullmer qui m'ont gentiment aiguillé mais hélas j'ai ensuite abandonné n'étant pas trop en phase avec ce langage!Concept qui a été repris et fortement complexifié avec brio par CPlassais qui en a fait le célèbre et fameux "Eclate - Déplace" ! Bravo à lui, un ruby maker émérite!
Il suffit de presser sur "eval" dans la console! Voir le post suivant pour l'utilisation de la console!
Cela "écarte" les objets les uns des autres!
Comme quoi en 30 lignes on peut faire du mal!model = Sketchup.active_model entities = model.entities selection = model.selection xp=100 # Pivot Point (as you want) yp=100 zp=100 q=50 # Measure of translation (as you want) selection.each do |e| # update! # Skip all entities that aren't groups or components (replace follow "ComponentInstance" by "Group" if you have groups next unless e.is_a? Sketchup;;ComponentInstance # Now we process the component or group center = e.bounds.center #Center Point of the grouped object xc= center.x yc= center.y zc= center.z xe=xc #End Point of the grouped object ye=yc ze=zc if xc<xp xe =xc - q end if xc>xp xe =xc + q end if yc<yp ye =yc - q end if yc>yp ye =yc + q end if zc<zp ze =zc - q end if zc>zp ze =zc + q end point = Geom;;Point3d.new xe,ye,ze t = Geom;;Transformation.new point # Apply the transformation e.transform!(t) end
Advertisement