#1 Mon 14 December 2009 10:20
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
[shp2dwg] affichage des textes dans le dwg
Bonjour,
Cela fait plus d'une heure que je cherche et je ne trouve pas de solution. Je suis sûre que la solution est toute bête mais comme je suis encore loin de maîtriser FME, je m'en remet à vous... Vivement la formation...
J'ai des fichiers shape en entrée que je voudrai transférer dans un fichier dwg. Parmi ces données shape, j'ai des fichiers points correspondant à des toponymes ou des numéros de parcelle. J'aimerai que ces toponymes et ces numéros de parcelle apparaissent en texte dans mon dwg. Pour l'instant ils n'apparaissent qu'en points dans le dwg et les données textes sont dans les données attributaires de ces points (qui sont des blocks ?).
Merci d'avance pour votre aide.
Hors ligne
#2 Mon 14 December 2009 10:40
Re: [shp2dwg] affichage des textes dans le dwg
Le moyen le plus simple est de transformer ces points en annotations avec LabelPointReplacer.
Il vous faudra également envoyer vos points directement vers le type d'entité destination pour avoir à la fois les points et les textes.
Hors ligne
#3 Mon 14 December 2009 10:41
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Il te faut dans un premier temps utiliser un transformer qui te transforme ton point en texte (labelPointReplacer dans ma version anglaise). Puis à ta sortie de ce transformer, tu mets un nouveau calque DWG où tu mettras ton texte.
Attention, il te faut activer dans les FormatAttributes (toujours en anglais), autocad_entity et lui mettre comme constante "autocad_multi_text".
Tu peux ensuite définir le type de texte, sa hauteur etc...
J'espère que celà aide
Cordialement
Véronique
Hors ligne
#4 Mon 14 December 2009 11:19
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
rahh, j'ai pas le LabelPointReplacer... il est grisé.
Existe-t-il un autre moyen ou faut-il que je demande un update de ma licence ?
Hors ligne
#5 Mon 14 December 2009 13:05
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Avec geometrycoercer, tu peux forcer que ce soit du texte.
Mais essaye peut-être tout d'abord simplement en faisant un Attributerenamer pour que le champ de ton label s'appelle autocad_mtext_string, active dans ton calque de sortie DWG la case autocad_mtext_string (FormatAttribute) et vois ce que ça donne.
Bonne chance et tiens-moi au courant
Véronique
Hors ligne
#6 Mon 14 December 2009 13:45
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
Le Attributerenamer avec autocad_mtext_string ne fonctionne pas. J'ai toujours un point et non un texte dans mon dwg.
Et avec le geometrycoercer, j'ai l'erreur suivante:
"AutoCAD Writer: An error occurred in file .\acadwrite2004.cpp, function AutoCAD2004Writer::setExtents. Exception thrown: 'Invalid input'
GeometryCoercer_Renamer: GeometryType function could not convert parameter 3 to a float"
J'ai mis "fme_text" dans Geometry Type. Est-ce qu'il faut mettre autre chose ?
Dans les attributs de mes données ponctuelles de départ, j'ai également une ROTATION que j'aimerai prendre en compte pour l'orientation du texte. Est-ce possible ?
Hors ligne
#7 Mon 14 December 2009 14:03
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
en fait, ça n'est pas un point que j'ai dans mon dwg mais un block reference. Je pense que cela vient du paramètre Attribute Output que j'ai mis à "Insert". Mais si je met "Extended Entity Data", je perd tous mes attributs et de toute façon, j'ai quand même un point et non un texte... une idée ?
Excusez de mon ignorance mais je ne maîtrise pas du tout le format Autocad. C'est quoi la différence entre autocad_mtext_string et autocad_text_string ? de plus, l'un n'a pas l'option rotation tandis que l'autre oui...
Hors ligne
#8 Mon 14 December 2009 14:33
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Juste pour clarifier un peu la situation. Dans ton shape de départ, tu as bien des points avec des attributs ?
Comment as-tu défini le dwg d'output ?
Pour le travail, je dois des fois aussi créer des dwg, certains avec et d'autres sans blocs. Pour le moment, je procède en 2 script. Le premier écrit soit vers un fichier dwg avec comme attribute storage method "autocad_entity_data" (les non blocs) et l'autre avec "insert_attribute" (pour les blocs). Le second script ouvre les 2 dwg créé et en fourni un seul en sortie (attribute storage method "extended_entity_data")
Est-ce que cela t'aide ??
Cordialement
Véronique
Hors ligne
#9 Mon 14 December 2009 15:09
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
oui, mon shape de départ contient bien des points avec des attributs (ROTATION, TEXTSTRING, TYPE...)
Dans mon dwg output, j'ai laissé les attributs par défaut dans User Attributes, dans Format Attributes j'ai coché autocad_mtext_string et dans Paramters, j'ai mis une couleur à 254.
Je ne vois pas ce qu'est le "attribute storage method ". Moi, j'ai Attribute Output dans les paramètres avancés de l'output et je n'ai que 3 choix dedans : Extended Entity Data, Inserts ou Ignore.
J'ai vraiment l'impression de patauger...
Hors ligne
#10 Mon 14 December 2009 17:15
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Alors voilà comment je vois les choses.
Essaye de sortir un dwg où les attributes output sont de type extended entity data.
Ensuite, tu prend le "truc" qui représente ton calque autocad de sortie et tu va dans le 3 ème onglet où tu coches autocad_entity et autocad_mtext_string. Tu acceptes puis tu "déploies" le truc qui représente ton calque de sortie autocad. Là tu crées une constante (avec comme texte "autocad_multi_text") liée à la ligne autocad_entity et tu joins le champ où tu as ton texte à la ligne autocad_multi_text_string.
Que vois-tu sortir ???
Véronique
PS : à demain ceci dit
Hors ligne
#11 Mon 14 December 2009 18:13
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
Youpiiiiiiiiiiiiiiiiiiiiiii ! ça fonctionne. Merci beaucoup !
Je n'ai pas trop compris ce que j'ai fait et pourquoi je l'ai fait mais ça fonctionne avec le Attributerenamer. Une petite explication ne serait pas de refus... en attendant la formation...
J'ai un attribut rotation. Est-ce que c'est possible de le prendre en compte pour l'orientation des textes ?
Cordialement
Hors ligne
#12 Tue 15 December 2009 06:53
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Contente pour toi. En ce qui concerne la rotation, il te faut activer (dans le troisième onglet de ton calque DWG) l'attribut "autocad_rotation" et à y connecter ton attribut d'angle provenant du shape mais attention à la manière dont tes angles sont définis dans autocad (grade / décimaux).
Bonne chance
Véronique
Hors ligne
#13 Tue 15 December 2009 10:00
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
super, tout fonctionne.
Maintenant que j'ai mis mes toponymes en texte dans mon dwg, j'aimerai que mes autres infos (bâtiment et parcelle) soient sous forme de block reference afin de conserver mes attributs. Pour le moment, je les ai en polyligne ou polygone dans mon dwg sans les attributs.
Véronique, tu disais arriver à créer un dwg avec et sans blocs en procédant en 2 scripts :
Pour le travail, je dois des fois aussi créer des dwg, certains avec et d'autres sans blocs. Pour le moment, je procède en 2 script. Le premier écrit soit vers un fichier dwg avec comme attribute storage method "autocad_entity_data" (les non blocs) et l'autre avec "insert_attribute" (pour les blocs). Le second script ouvre les 2 dwg créé et en fourni un seul en sortie (attribute storage method "extended_entity_data")
J'ai donc créé un script qui convertit mes shapes toponymes en texte dans un dwg2a. Puis un autre script qui convertit mes shapes bâtiment et parcelle en block reference avec attributs dans un dwg2b. Mais je n'arrive pas à créer le script qui permet de réunir mes 2 dwg en un seul. J'ai bien toutes mes données dans le dwg final mais les bâtiments et parcelles ne sont plus des blocks et n'ont donc plus d'attributs. J'ai oublié quelque chose ?
Hors ligne
#14 Tue 15 December 2009 10:13
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Alors voici comment fonctionne mon second script.
1) Charger les deux dwg de départ. Attention aux options. Celui avec des blocs doit avoir "Explode blocks = No" et celui sans les bloc ben on s'en tape vu qu'il n'a pas de blocs dedans en gros.
2) Tu charges les calques et tu les mets dans un seul fichier dwg de sortie avec attribute_sotrage_method : extended_entity_data
Bon ben ça fonctionne chez moi alors à voir chez toi
Véronique
Hors ligne
#15 Tue 15 December 2009 10:25
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
si je fais cela, j'ai les erreurs suivantes (pcn_test1a étant mon dwg avec les blocks) :
"Specified block 'pcn_test1a_ACAD_1_FMEBLOCK4734' is not defined in AutoCAD file. Skipping feature"
et je n'ai que les données de mon dwg toponyme dans le dwg final.
Je joins mon script pour la configuration.
Hors ligne
#16 Tue 15 December 2009 10:32
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Dans ton dwg final (du second script), tu dois lui spécifier, comme dans le script créant ton dwg avec block, un Template_file où se trouve tes blocs.
Je regarde le fichier zippé quand même
Véronique
Hors ligne
#17 Tue 15 December 2009 10:36
Re: [shp2dwg] affichage des textes dans le dwg
Bonjour,
Je ne suis pas sûre qu'avoir comme template file le fichier que tu lis soit une super bonne idée. Peux-tu essayer avec le template file qui t'a permit de créer le fichier pcn_test1b.
Bon ceci dit, je ne suis pas une experte de chez experte.
Dis-moi quoi
Véronique
Hors ligne
#18 Tue 15 December 2009 10:36
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
ça y est, j'ai trouvé: il faut bien mettre Expand Blocks into Entities à NO. Par contre, il faut mettre Explode Mtext Entities à NO aussi + dans les paramètres avancés Use Block Header Layer for Components = YES + Resolve entity color = NO.
Merci
Hors ligne
#19 Tue 15 December 2009 10:41
- Kyk
- Participant actif
- Date d'inscription: 20 Jan 2009
- Messages: 88
Re: [shp2dwg] affichage des textes dans le dwg
Tu as raison, il faut prendre comme template file le dwg qui contient les blocks.
Merci beaucoup pour ton aide.
Hors ligne