Aller au contenu

VBA, et création de lien entité autocad et enregistrement BDD acces (.mdb)


Messages recommandés

Posté(e)

Bonjour, tout d'abord je tenais a remercier les initiateurs (et utilisateurs) de ce site qui me permet depuis quelque mois maintenant, de me lancer dans les automatisations AutoCAD. Je ne suis pas très actifs mais je dois d'abord apprendre avant d'aider.

 

Aussi ma question porte sur l'automatisation de création de table dans une base de donnée.

d'insertion d'enregistrement depuis des attributs de block.

de création de gabarit de liens

de création de liens (en utilisant un gabarit donné) entre des enregistrements de cette table vers des entités type polyligne.

 

Je cherche dans un premier temps des exemples de codes afin de m'inspirer.

 

Aussi je ne comprend pas du tout le fonctionnement des base de données sous autocad.

Ou plutot comment autocad "emule" en quelquesorte une BDD.

Pourquoi il crée des table temporaire qui même un fois le fichiers dessin fermé et la base (sous acces) nétoyé réapparaisse à la connexion suivante.

 

 

Si vous avez des idées ou des questions quand à des précisions je serais heureux de vous lire.

 

Merci d'avance.

Bon WE

 

DezHopper......

  • 2 semaines après...
Posté(e)

Bonsoir à toutes et tous,

 

Bienvenue dezhopper

 

J'ai dis une connerie???

 

Bien sur que non, jamais personne ne le fais,...Enfin, je veux dire il n'y a pas de questions idiotes,... :P

 

C'est surtout que ton message est peut-être passé inaperçu ou bien personne n'as de réponses satisfaisantes à te proposer,...

 

Et, moi non plus d'ailleurs,..

 

Parles-tu de la connexion BD ?

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

  • 3 semaines après...
Posté(e)

 

Bonsoir lili 2006, je ne suis passé sur le site depuis cette maxime.

Oui je parlais de connexions BD. En effet je cherche à lier automatiquement dèspolylignes, dès création de celles ci des enregistrement d'une table.

Mais je n'ai toujours pas trouver d'exemple concret.

Aussi depuis mes recherches vont plutot vers l'attachement de données objets (présentes sous map)

Auparavant j'avais crée un outils me permettant d'attacher des XDATA en créant une poly, mais ces XDATA sont dificilement modifiables par la suite.

 

Aussi si tu as des exemples d'attachement de données objets en VBA sur des entités autocad, cela peu m'interresser.

 

Bonne soirée

 

DezHopper

Posté(e)

Salut

 

Il existe plusieurs solutions, mais comme tu as posté ton message en VBA et apparemment, ceux qui maîtrisent ce type de demande seraient plutôt orientés en lisp/vlisp

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour, je viens de trouver réponse à ma question, alors pour ceux qui verrait le Topic, je laisse le liens et l'exemple de code qui permet de créer des table OD et d'attacher des enregistrement OD à des entités.

 

You can create object data table with AcadMap COM

API or with Map ObjectARX/ObjectARX .NET API.

 

 

 

Using COM API in VBA is a bit easier than ObjectARX

API. Do to it in VBA code,

 

 

 

1. Start AutoCAD Map and go to VBA IDE;

 

2. menu "Tools->References...";

 

3. Select "AutoCADMap" in "Availavle references"

list (which points to [Acad Map folder]\AmVBAPI.dll file.

 

4. Open Object Browser to browser "AcadMap" objects

in AutoCADMap libaray. You will find ODTable/ODTables. You an also click "?"

button for more information.

 

 

 

Here is the quote form the Help

documnet:

 

 

 

 

 

The following example creates an object data table and attaches records to

drawing objects.

 

1 Declare

variables.

 

Dim amap As AcadMap

 

Dim acadObj As Object

 

Dim ODfdfs As ODFieldDefs

 

Dim ODfdf As ODFieldDef

 

Dim ODtb As ODTable

 

Dim ODrc As ODRecord

 

2 Set application

and project objects.

 

Set amap = ThisDrawing.Application. _

 

GetInterfaceObject("AutoCADMap.Application")

 

3 Create the schema

for the object data table.

 

Set ODfdfs =

amap.Projects(ThisDrawing).MapUtil.NewODFieldDefs

 

4 Create fields for

object data. For example, create fields for the name, color, and layer of a

drawing object. Specify default values, for example, empty string, AcRed,.and

layer 0, respectively. Add the fields to the table using consecutive index

numbers.

 

Set ODfdf = ODfdfs.Add("Entity", "Entity name", "",

0)

 

Set ODfdf = ODfdfs.Add("Color", "Object color", acRed, 1)

 

Set ODfdf = ODfdfs.Add("Layer", "Object layer", "0", 2)

 

5 Name the table and

test the uniqueness of the name.

 

If amap.Projects(ThisDrawing).ODTables. _

 

Item("SampleOD3")

Is Nothing Then

 

6 Register the OD

Table in the drawing and specify the type of object data as Xdata.

 

Set ODtb = amap.Projects(ThisDrawing) _

 

.ODTables.Add("SampleOD3", "Sample

Xdata", ODfdfs, True)

 

7 Create a record of

data with defaults specified in step 4.

 

Set ODrc = ODtb.CreateRecord

 

8 Loop though each

drawing object, get its values for the name, color, and layer of the object, and

attach the data to the drawing object.

 

For Each acadObj In ThisDrawing.ModelSpace

 

ODrc.Item(0).Value

= acadObj.EntityName

 

ODrc.Item(1).Value

= acadObj.Color

 

ODrc.Item(2).Value

= acadObj.Layer

 

ODrc.AttachTo

(acadObj.ObjectID)

 

Next

 

Testing the example

 

Run the example, and enter ADEEDITDATA at the command prompt to see the

output. To run the code again, change the name of the table from SampleOD to

another name.

 

Aussi dans l'aide de MAP 2009 3D j'ai trouvé un exemple de code mais je suis incapable vu la profondeur de l'aide de retrouver les chemin (mais ca existe)

Avant cela dans l'IDE VBA de MAP il faut référencer les biblio Autocad MAP .

 

Bonne journée et bon WE

 

 

DezHopper

 

 

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité