2017-07-02 8 views
0

Je suis la construction d'un CMS autour Three.js et je dois garder une trace des objets à travers un attribut qui ne change pas lors du chargement du fichier la prochaine fois. J'utilise des fichiers DAE exportés à partir du format Sketchup .skp. Les attributs "id" et "uuid" semblent être générés sur chaque chargement. Parfois, l'attribut "name" a le format "group_41" ou "instance_58", mais il est souvent vide ce qui le rend peu fiable. Je ne suis pas bloqué en utilisant .DAE si quelqu'un a une autre solution, mais il est fortement favorisé parce qu'il est plus facile d'exporter à partir de Sketchup que de passer par Blender pour créer le format JSON (qui, d'après mon expérience, nécessite également un beaucoup de réglages et de paramètres pour fonctionner correctement).Comment générer des ID pour les objets importés à partir d'un fichier .dae qui sera le même que le chargement suivant?

Quelqu'un at-il une expérience avec cela, ou une solution de contournement dans les deux Sketchup ou un autre plug-in/logiciel tiers pour créer des ID durables?

Répondre

1

On dirait que j'ai trouvé une solution simple: regrouper les faces/« côtés » ensemble, de cette façon qu'ils obtiennent le « group_nn format » -nom. De là, vous pouvez sélectionner les enfants-mailles de ce groupe avec lequel travailler. Notez que les faces individuelles n'obtiennent aucun nom, mais nous pouvons toujours les trouver via leur parent. Pour le groupe dans SketchUp, cela a fonctionné pour moi: 1]

1

En SketchUp 2017, Entities ont une persistent_id qui ne changera pas dans un modèle SketchUp entre les sessions.

Vous pouvez écrire un script SketchUp Ruby pour renommer tous les groupes en leur ID persistant, puis vous pouvez suivre les entités à partir du modèle SketchUp vers le fichier d'exportation.

http://ruby.sketchup.com/Sketchup/Entity.html#persistent_id-instance_method

+0

Merci, je vais vérifier! –