#1 Tue 28 July 2009 19:27
- fabrice.delcasso
- Juste Inscrit !
- Date d'inscription: 28 Jul 2009
- Messages: 2
convertir des points en blocs
Bonjour à tous
J'exporte les données de notre sig Star-Apic (asc) vers autocad map (Autodesk AutoCAD Map 3D Object Data) avec FME.
Je souhaiterais attribuer un style/symbol aux objets ponctuels, l'idéal étant d'affecter sélectivement un bloc pour un flux de points tout en conservant les données attributaires
Je ne trouve pas la solution, merci d'avance pour vos pistes
Hors ligne
#2 Thu 30 July 2009 07:03
Re: convertir des points en blocs
Bonjour,
Voilà comment nous procédons pour créer des fichiers dwg avec blocs en utilisant FME 2009.
Il faut
1) avoir un fichier dwg où les différents blocs avec leurs noms ont été défini et l'indiquer comme le Template File (on a la version anglaise de FME)
2)Attribute storage method : insert_attributes
Ensuite, dans le calque DWG où iront les symboles, activer les Format attributes suivants :
1)autocad_block_name et y forcer le nom du bloc (ou y aller avec un valuemapper)
2)autocad_entity : autocad_insert (mis via une constante dans notre cas)
3)autocad_xscale / autocad_yscale pour les valeurs de grandeur du bloc
4)autocad_rotation à indiquer aussi si jamais vous avez des symboles avec rotation.
Bon, on ne connait pas tout de tout dans FME donc en fait, quand on a un fichier DWG à créer avec des blocks mais aussi du texte, on crée deux fichiers (un avec et un sans bloc, dans ce dernier cas, on met Attribute storage method = extended_entity_data ce qui permet d'avoir le texte). Puis on a un second script qui lie les deux fichiers dwg.
J'espère que ça va vous aider.
Véronique
PS : d'un autre côté, si vous avez une police de caractère symbolique, c'est plus simple évidemment et vous pouvez faire le tout en une seule fois en oubliant les block. En Suisse, il y a une police gratuite qui existe : Cadastra et CadastraSymbol.
Hors ligne
#3 Tue 29 September 2009 16:56
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: convertir des points en blocs
Bonjour,
Merci Véronique pour vos conseils qui m'ont été bien utiles, en revanche, j'aurais une petite question concernant l'orientation des blocs.
J'ai pourtant bien fait pointer le champ portant mes valeurs d'angle de rotation sur le champ "autocad_rotation" du calque de destination portant les blocs, mais je n'arrive pas à récupérer l'orientation souhaitée (issue d'une table), cette dernière reste désespérément à "0"...
D'où ma question:
Arrivez-vous a obtenir un DWG avec des blocs orientés ?
Merci
Hors ligne
#4 Tue 29 September 2009 17:48
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: convertir des points en blocs
Hello
Je ne sais pas si c'est votre probleme mais AutoCAD travaille en Radians
donc il faudra eventuellement convertir vos degres en radians ...
GeoBye, Pat
PS: C juste une idee en passant ...
(Autodesk Expert Elite Team)
Hors ligne
#5 Tue 29 September 2009 19:00
- fabrice.delcasso
- Juste Inscrit !
- Date d'inscription: 28 Jul 2009
- Messages: 2
Re: convertir des points en blocs
Merci Véronique, c'est exactement ce que je cherchais.
Je n'ai pas eu de problème quant à l'orientation des blocs, je pense également que le problème de Christophe doit être dû aux modalités de conversion d'unité
Merci encore Véronique
Hors ligne
#6 Wed 30 September 2009 06:24
Re: convertir des points en blocs
Bonjour Christophe,
Juste une question pour ton problème de rotation, tu dis que l'angle est "issu d'une table". Tu veux dire quoi exactement ? Peut-être que cela résoudra permettra de mieux comprendre ton problème.
Véronique
Hors ligne
#7 Wed 30 September 2009 11:05
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: convertir des points en blocs
Bonjour à vous tous et merci pour votre réactivité.
Pour répondre à la question de Véronique, je cherche à écrire du DWG "annoté" à partir de données stockées dans une base Oracle Spatial (10gr4).
J'ai donc une table avec un champ GEOMETRY contenant les coordonnées de mes blocs, un champ pour les noms de blocs (contenu dans le template) à utiliser et enfin un champ ROTATION qui contient l'angle du bloc (en degré).
J'ai également crée un nouveau champ "Angle_rad" pour tenter l'astuce de Patrice, mais le résultat reste le même.
Je pense repartir sur un workbench épuré pour voir ce que ça donne sans transformer intermédiaire.
Je vous tiens au courant si je trouve quelque chose, vos idées seront bien évidemment toujours les bienvenues ;-)
Encore merci à vous tous.
Hors ligne
#8 Wed 30 September 2009 11:30
Re: convertir des points en blocs
Bonjour,
Si j'ai bien compris, ton dwg est du map 3d object avec comme données, celles contenues dans la base de données Oracle qui est liée à ton dessin DWG (ça sentirait presque du Topobase ton truc !)
As-tu pu vérifier dans ton DWG devenu du 3D Object si ton champ rotation a bien quelque chose d'inscrit et si ce n'est pas l'écriture de tes données oracle dans le dwg qui pose problème.
Bon ceci dit, c'est bien sûr dans le cas où ton dwg "annoté" est du DWG sous format Map 3D Object.
Tiens-nous au courant
Véronique
Hors ligne
#9 Wed 30 September 2009 12:24
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: convertir des points en blocs
Bonjour,
Je souhaite faire un dwg simple pouvant être lu par un autocad basique.
Désolé pour mon manque de précision, je détaille un peu :
Lorsque je parle d'un DWG "annoté", il s'agit d'un bloc avec un texte au-dessus précisant son ID par exemple ou son nom, un peu comme on pourrait le faire avec un bloc avec ses attributs visibles.
Je suis tout de même parvenu à mes fins ce matin en décomposant le travail en deux workbench, l'un pour passer d'Oracle Spatial au DWG et un autre qui se charge d'orienter mes blocs (ceux présents dans le dwg créé par le premier workbench).
Pas très classe et frustrant, mais bon, j'arrive au résultat souhaité.
Je suis toujours en quête d'une solution n'utilisant qu'un seul workbench...
Merci.
Dernière modification par ALCAÏNA Christophe (Wed 30 September 2009 13:49)
Hors ligne
#10 Wed 30 September 2009 13:13
Re: convertir des points en blocs
Bonjour,
Pour faire un seul workbench, voudrais-tu essayer d'ouvrir les deux datasets (DWG + TABLE Oracle) dans le même workbench, de faire un lien via la géometry (tu créé un point par exemple via les coordonnées de ta table (si cette dernière n'est pas spatiale) et tu fais un pointonpointoverlayer entre ces points créés et le point d'insertion de tes blocs du fichier dwg). Ensuite, si tes points venant de du dataset 1 (DWG) ont la même géométrie que tes points créés à partir de ton dataset 2 (Oracle), alors le spoints que cela donnera auront les attributs des deux datasets et donc l'attribut rotation.
Est-ce possible comme ça ?
Véronique
PS : Ou sinon, fait en sorte que le texte mis au-dessus de ton point ait une insertion en son centre, même si ensuite le texte est décalé vers le haut pour que tu puisse le lire. Ca peut aider aussi car alors, il te faudra juste ouvrir le DWG et non la table ORACLE
Hors ligne
#11 Wed 30 September 2009 14:16
- ALCAÏNA Christophe
- Participant occasionnel
- Date d'inscription: 29 Sep 2009
- Messages: 16
Re: convertir des points en blocs
Véronique,
En fait, mon fichier DWG avec ses blocs "non-orientés", est généré avec le premier workbench.
Ce fichier n'existe donc pas au démarrage du process.
Sauf erreur de ma part, incompréhension du process que vous me conseillez, ou alors tout simplement par
méconnaissance d'une fonction FME (honte à moi pauvre autodidact ), je ne peux pas appeler ce dwg comme "Dataset Source".
Merci beaucoup pour ton aide.
PS:
Je continue mes tests et ne manquerai pas de vous tenir au courant si jamais je trouve une solution.
Hors ligne
#12 Wed 30 September 2009 16:55
Re: convertir des points en blocs
Bonjour,
Alors évidemment, j'utilise une version FME en anglais (enfin évidemment, c'est pas évident comme ça on est d'accord). Donc Dataset Source, ben c'est pas la même chose en fran4ais, ça doit être "source de données".
Donc en fait, donne deux sources de données : ton DWG et ta base de données oracle.
Est-ce que cette dernière est spatiale ou non ? Si oui, alors tu peux faire une jointure des deux via un matcher. Sinon, il te faut recréer la géométrie via les X et Y stockés sous forme de texte dans ta table oracle (et oui, chez nous, on utilise topobase et on est encore en non spatial pour oracle, c'est pas la norme mais la réalité de la chose dans le bureau) en utilisant le transformeur 2DPointAdder et puis seulement faire une jointure sur la géométrie.
Si tu veux, tu peux toujours fournir à titre d'exemple un extrait de ton fichier DWG de base (sans le texte) et un extrait (euh correspondant of course) de la base de données Oracle en format CSV par exemple.
Bonne chance de toute façon...
Véronique
Hors ligne