Je suis très nouveau sur Sketchup et rubis, j'ai travaillé avec Java et C#, mais c'est la première fois avec le rubis.rubis sérialisation scène SketchUp
Maintenant, j'ai un problème, je dois sérialiser toutes scène dans une JSON (hiérarchie de la scène, le nom de l'objet, objet matériel et la position pour ce seul objet) comment puis-je faire cela?
Je l'ai déjà fait pour Unity3D (C#) sans problème.
J'ai essayé ceci:
def main
avr_entities = Sketchup.active_model.entities # all objects
ambiens_dictionary = {}
ambiens_list = []
avr_entities.each do |root|
if root.is_a?(Sketchup::Group) || root.is_a?(Sketchup::ComponentInstance)
if root.name == ""
UI.messagebox("this is a group #{root.definition.name}")
if root.entities.count > 0
root.entities.each do |leaf|
if leaf.is_a?(Sketchup::Group) || leaf.is_a?(Sketchup::ComponentInstance)
UI.messagebox("this is a leaf #{leaf.definition.name}")
end
end
end
else
# UI.messagebox("this is a leaf #{root.name}")
end
end
end
end
'require 'json'; some_var.to_json' – Kris
Il n'y a pas construit en sérialisation des entités SketchUp/modèles à JSON si vous avez besoin de comprendre votre propre méthode. Pour chaque sous-classe de 'Sketchup :: Entity' vous devez déterminer quelles propriétés exporter et comment les représenter. Comment vous faites cela est déterminé par les exigences de tout ce qui va l'utiliser. – thomthom
hmm .. Cette question est sur la façon de creuser récursive vers le bas dans chaque enfant instance du modèle? Parce que je remarque que votre code ne traverse que la racine et le premier niveau. – thomthom