#1 Mon 16 November 2009 16:20
- Mizu
- Juste Inscrit !
- Date d'inscription: 16 Nov 2009
- Messages: 4
Conversion object data => Xdata
Bonjour à tous,
Voila mon problème.
Je voudrais convertir des "Object Data" en "Xdata" afin de pouvoir ouvrir ce plan avec un Autocad normale et non avec MAP 2004.
Pouvez-vous me donner une commande ou une routine ou toutes autres choses qui pourrais me permettre de convertir ces "Object Data" en "Xdata".
Merci bien
Jérémie
Hors ligne
#2 Wed 18 November 2009 09:33
- fabcad
- Participant assidu
- Lieu: Acigné
- Date d'inscription: 3 Apr 2006
- Messages: 277
Re: Conversion object data => Xdata
Hello Jérémie,
La question est intéressante, mais la difficulté dans ce cas c'est que les programmeurs sont pour la plupart officient avec AutoCAD, les données d'Objets étant spécifique à AutoCAD MAP et que pour les atteindre en LISP ou autre langage de programmation il faut posséder les API AutoCAD MAP.
Cordialement,
Fabrice
Hors ligne
#3 Wed 18 November 2009 11:01
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Conversion object data => Xdata
Bonjour,
J'ai le sentiment que ce sujet mériterait d'être développé.
D'une part, les programme ont certaines spécificités, niveau de version etc., d'autre part il y a les données, sous forme de fichiers, qui devraient pouvoir être transmises d'un programme à un autre, surtout lorsqu'il s'agit du même éditeur.
Le format DXF me paraissait bien adapté pour ce genre de passerelle.
Cordialement.
Hors ligne
#4 Wed 18 November 2009 11:43
Re: Conversion object data => Xdata
Hello,
Le format DXF me paraissait bien adapté pour ce genre de passerelle.
Quel rapport ? On parle pas de format de fichier.
Pour lecture : http://georezo.net/forum/viewtopic.php?id=47774
Hors ligne
#5 Wed 18 November 2009 12:30
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: Conversion object data => Xdata
Bonjour Robin,
Je précise le sens des termes que j'emploie pour qu'il n'y ait pas d'ambiguïté.
Une donnée est un ensemble de caractères qui représente une information. Cette information peut être numérique simple, numérique complexe, codée, alphanumérique, relationnelle, descriptive etc.
Pour être conservée, cette donnée doit être stockée à un moment ou un autre sur un support magnétique, bande, disque etc.
Pour pouvoir être relue, cette donnée est stockée suivant un certain format. Ce format peut être "binaire", un individu ne peut pas les comprendre par simple lecture visuelle, exemple DWG, ou "texte", alors une valeur numérique sera stockée comme une suite de caractères, chaque caractère représentant un chiffre de la valeur numérique, exemple DXF.
Que le format soit texte ou non, il existe et doit être connu par le programme qui écrit les données et par le programme qui lit les données.
Le format DXF, créé par Autodesk dans les années 80 répondait à ce besoin.
Cela me rappelle la claque qu'a prise IBM quand ils ont voulu faire des machines "non-compatibles".
Je n'ai pas vu dans les messages de Patrice quelque-chose qui dise le contraire
Je pourrais poser ma question autrement :
Si les données résultant du programme Map 2004 sont des données numériques-géographiques-relationnelles-etc., pourquoi ne pas les stocker dans un format lisible par un autre programme qui traite de données numériques-géographiques-relationnelles-etc. ?
J'ai bien compris que c'était ainsi, mais ma question est POURQUOI.
Pierre.
Hors ligne
#6 Wed 18 November 2009 13:25
- Mizu
- Juste Inscrit !
- Date d'inscription: 16 Nov 2009
- Messages: 4
Re: Conversion object data => Xdata
Hello Jérémie,
La question est intéressante, mais la difficulté dans ce cas c'est que les programmeurs sont pour la plupart officient avec AutoCAD, les données d'Objets étant spécifique à AutoCAD MAP et que pour les atteindre en LISP ou autre langage de programmation il faut posséder les API AutoCAD MAP.
Cordialement,
Fabrice
Oui je comprend bien que cela n'est pas facile.
Mais ce serai super si quelqu'un arrive à trouver une solution car la plus par de mes collaborateur n'ont pas Autocad MAP.
Cordialement
Jérémie
Hors ligne
#7 Wed 18 November 2009 14:18
Re: Conversion object data => Xdata
Si les données résultant du programme Map 2004 sont des données numériques-géographiques-relationnelles-etc., pourquoi ne pas les stocker dans un format lisible par un autre programme qui traite de données numériques-géographiques-relationnelles-etc. ?
J'ai bien compris que c'était ainsi, mais ma question est POURQUOI.
Le mieux c'est d'appeller Autodesk pour leur demander POURQUOI ils ont fait ce qu'ils ont fait
Revenons à nos moutons : on cherche à savoir COMMENT "convertir des "Object Data" en "Xdata" afin de pouvoir ouvrir ce plan avec un Autocad normale et non avec MAP 2004", a savoir la démarche inverse que celle décrite par Pat.
Mizu, tu as essayé sur le forum CadXP (au cas où) ? Ils sont assez doué là bas en terme de programmation sur Autocad
Bonne chance,
Robin.
Hors ligne
#8 Wed 18 November 2009 14:55
- Mizu
- Juste Inscrit !
- Date d'inscription: 16 Nov 2009
- Messages: 4
Re: Conversion object data => Xdata
Si les données résultant du programme Map 2004 sont des données numériques-géographiques-relationnelles-etc., pourquoi ne pas les stocker dans un format lisible par un autre programme qui traite de données numériques-géographiques-relationnelles-etc. ?
J'ai bien compris que c'était ainsi, mais ma question est POURQUOI.
Le mieux c'est d'appeller Autodesk pour leur demander POURQUOI ils ont fait ce qu'ils ont fait
Revenons à nos moutons : on cherche à savoir COMMENT "convertir des "Object Data" en "Xdata" afin de pouvoir ouvrir ce plan avec un Autocad normale et non avec MAP 2004", a savoir la démarche inverse que celle décrite par Pat.
Mizu, tu as essayé sur le forum CadXP (au cas où) ? Ils sont assez doué là bas en terme de programmation sur Autocad
Bonne chance,
Robin.
Oui j'ai aussi posté dessus.
Mais pour le moment je n'ai rien de plus.
Cordialement
Jérémie
Hors ligne
#9 Wed 18 November 2009 22:02
- olivier.eckmann
- Participant assidu
- Date d'inscription: 14 Dec 2007
- Messages: 357
Re: Conversion object data => Xdata
Bonsoir,
pourquoi ne pas externaliser les données d'objets en enregistrement de base de données. Ainsi, un simple AutoCAD pourra voir l'enregistrement liée via le module DBConnect.
Le problème des XDatas, c'est qu'il n'y a aucune norme, ni règle. C'est le programmeur qui décide comment il stocke les XDatas, sous quel forme et sous quelle application enregistrée (RegApp). Si on demande à 10 programmeurs de stocker des données en XData sur un objet AutoCAD, on aura 10 strutures différentes.
A partir d'un AutoCAD MAP, on dispose des API pour lire les OD donc, si on définit le format des XDatas à stocker c'est assez simple de les convertir. Il suffit de définir ce que l'on veut.
Olivier
Hors ligne
#10 Thu 19 November 2009 09:01
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: Conversion object data => Xdata
Hello Olivier (Bien le bonjour a Thierry & Christian)
En effet les XDATAs, c le bordel !
Alors que les Objects Data (OD), c simple et suffisant pour la plupart des besoins !
Un programme "convivial" qui exporte les OD de MAP (ou CIVIL) en base de donnees
(Access par exemple) et qui cree un lien ASE-SQL AutoCAD pourrait s'averer interessant !
C ce que fait la fonction "Convertir donnees d'objets en base de donnees"
de MAP avec un lien UDL AutoCAD ...
Commande au clavier : MAPOD2ASE
Mais c pas simple a mettre en oeuvre !
Confere l'aide que propose MAP sur cette commande ...
J'ai fait un tutorial de 44 pages (Non diffusable, sorry) a ce sujet avec un exemple qui part de planches cadastrales (provenant d'EDIGEO et traitees avec EDICAD-LT - Clien d'oeil a Geomedia).
Ensuite les donnees d'objets sont modifiees par un utilitaire ARX (MODOD.arx) qui permet de rechercher / remplacer le contenu des OD afin de normaliser / rectifier les Identiiants de parcelle (DDIIIQQQSPPPP ou DDIIIQQQSSPPPP)
et enfin on fait un MAPOD2ASE
+ qq magouilles ulterieures ...
DD = Departement, III = Code INSEE, QQQ = Code Quartier,
S ou SS = No de Section, PPPP = No de Parcelle
Ainsi on dispose d'objets graphiques lies a une table en base de donnees (Access, Oracle, SQL-Server, MySQL, etc) au sens AutoCAD donc exploitable par un ACAD / ADT / MAP / CIVIL.
Avec un Identifiant CORRECT permettant des jointures vers les fichiers de la DGI ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#11 Thu 19 November 2009 12:20
- Zef
- Participant occasionnel
- Date d'inscription: 16 Apr 2007
- Messages: 42
Re: Conversion object data => Xdata
Bonjour,
En restant dans le monde Autodesk, la conversion en liens de bases de données est effectivement la solution la plus accessible. A mon sens le meilleur compromis simplicité, polyvalence, portabilité et performance c'est une base Access, une source de données directement en jet. Ensuite il faut juste absolument diffuser le .udl et demander aux utilisateurs de copier ce .udl dans le profil. Pas si compliqué, mais c'est clair que ça n'est pas aussi robuste et portable que les données d'objets.
Toujours dans le monde Autodesk, il reste la technique purement DAO consistant convertir les valeurs en simples textes ou blocs avec attributs positionnés sur l'entité concernée. Visisble sur AutoCAD et à la limite récupérable avec des jointures spatiales. Jouable facilement avec des requêtes Map.
En sortant un peu du monde Autodesk, il y a Esri qui apporte une solution avec ArcGIS pour AutoCAD. Cette extension gratuite permet notamment d'utiliser le MSD. MSD est un équivalent des données d'objets, c'est à dire une structure de tables attributaires stockées en données étendues. Esri fourni également les LISP permettant de manipuler ce format relativement ouvert (du moins beaucoup plus que les données d'objets). A ce jour je crois que les DWG avec données MSD sont exploitables directement sur ArcGIS, sur AutoCAD avec ArcGIS pour AutoCAD, sur AutoCAD avec les scripts LISP fournis et FME je crois le prends en compte. C'est une initiative d'Esri plutôt sympathique et qui semble bien fonctionner, donc je la souligne.
Zef
Dernière modification par Zef (Thu 19 November 2009 12:21)
Hors ligne
#13 Thu 19 November 2009 16:12
- Zef
- Participant occasionnel
- Date d'inscription: 16 Apr 2007
- Messages: 42
Re: Conversion object data => Xdata
ArcGIS pour AutoCAD peut aller chercher des données dans SDE (ArcGIS Server). Concernant le MSD c'est directement stocké dans le DWG.
Personnellement je reconnais que je n'ai pas laissé ArcGIS pour AutoCAD plus de quelques heures sur ma machine. Les LISP correspondaient à nos besoins, et ça fonctionne bien.
Dernière modification par Zef (Thu 19 November 2009 16:14)
Hors ligne
#14 Fri 20 November 2009 22:46
- olivier.eckmann
- Participant assidu
- Date d'inscription: 14 Dec 2007
- Messages: 357
Re: Conversion object data => Xdata
Bonsoir,
voilà un petit bout de lisp écrit rapidement pour convertir des OD en xdata.
Le principe :
le nom de la table est utilisé comme application enregistrée et chaque donnée est écrite sous forme de texte avec l'info sous forme de texte Nom_du_champ=valeur
Si ça peut servir.
Patrice je suis un peu surpris de la difficulté annoncée pour convertir les OD en BDexterne, je ne l'ai pas fait souvent, mais ça ne me semblait pas très compliqué. En principe j'exporte le calque et les OD associése aux objets en SHP file ce qui me donne la table attributaire en fichier DBF que je recharge en tant que table dans un base access. une fois la base connectée, on crée un gabarit de lien sur le champ identifiant, puis avec la fonction de xonversion on utilise l'option liée qui permet de faire le lein entre une des valeurs de l'OD avec le gabarit de lien. C'est assez direct.
Olivier
Hors ligne
#15 Mon 23 November 2009 14:12
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: Conversion object data => Xdata
Hello Olivier - Merci pour ta routine !
Sympa ton petit Lisp mais il traite la totalite du dessin car tu fais un :
(setq Jeu (ssget "x"))
et je pense qu'il serait plus pratique de passer par une selection AutoCAD classique :
(setq Jeu (ssget))
ainsi on peut creer les XDATAs depuis les OD (Object Data)
de seulement une partie des entites graphiques ...
Le resultat donne bien entendu N champs XDATA de type TEXT
avec dedans NomChamp1=xxxxx, NomChamp2=yyyyyy, etc
Car (comme tu le disais si bien), il n'y a AUCUNE STRUCTURATION possible
dans la notion de XDATA d'AutoCAD
Rappel : il faut de la programmation Lisp pour gerer les XDATAs
et en plus contrairement aux OD de MAP, on ne les voit meme pas
dans la case de dialogue des proprietes !
Par contre MapInfo, ArcView, SAFE-FME, etc, savent (en principe) lire et ecrire dans les XDATAs
Sinon pour la manipulation MAPOD2ASE, j'ai dit que c'etait un peu complique
car je ne fais jamais une extraction simple des OD vers une base quelconque !
mais je magouille avant et apres pour me synchroniser avec une table DEJA existante ...
En effet si on veut une extraction directe, c jouable ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#16 Tue 24 November 2009 16:41
- Mizu
- Juste Inscrit !
- Date d'inscription: 16 Nov 2009
- Messages: 4
Re: Conversion object data => Xdata
Bonjour à tous.
Merci à chacun d'entre vous pour votre aide.
J'ai réussi à trouver une solution qui n'est peut être pas la meilleur mais qui marche.
Celle-ci, je l'ai trouvé grâce à vous tous.
Un grand MERCI A VOUS TOUS!!!!!!!
Hors ligne