begin process at 2010 02 10 09:39:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

VB.NET (2008 express) et autocad 2008


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VB.NET (2008 express) et autocad 2008

lundi 20 octobre 2008 à 15:37:45 | VB.NET (2008 express) et autocad 2008

Vincentkro

Bonjour,

Je réalise actuellement un programme de calcule sous vb.net 2008 qui interagit avec autocad 2008.
Mon problème actuel et que je ne parviens pas à utiliser la fonction getentity, pour sélectionner une polyline.
Ce code fonctionne sous vba et vb6 mais je ne parvient pas à l'utiliser en vb.net.
Voici le code que j'utilise :

    Private Sub Button1_Click
        Dim AutoCAD As Object

        Dim PolyLigne As AcadEntity
        Dim Pt As AcadObject
        ' La ligne suivante attend une sélection de l'utilisateur
        ' Elle fonctionne en vba et vb6 mais pose problème en vb.net
        AutoCAD.Application.ActiveDocument.Utility.GetEntity(PolyLigne, Pt, "Sélectionnez la Polyline :")
        ' Code VBA autocad : ThisDrawing.Utility.GetEntity PolyLigne, Pt, "Sélectionnez la Polyline :"

        If PolyLigne_Type = "AcDbPolyline"Then
                   ' J'éclate la polyline
                   PolyLigne.Explode()
        Else
            MsgBox("L'entité sélectionnée n'est pas une Polyline !")
        End If
    End Sub


Si quelqu'un peut m'apporter son aide, je lui serai très reconnaissant car cela fait plusieurs jours que je bloque sur ce problème.

Merci d'avance.

Vincent.
lundi 20 octobre 2008 à 17:44:42 | Re : VB.NET (2008 express) et autocad 2008

pile_poil

Membre Club
bonjour
je ne connais pas VB.NET
mais il y a une erreur concernant ton Dim Pt As AcadObject
en effet Pt sous VB6 et VBA  doit etre un variant puisque ce sont les coordonnées x, y et z des points de la polyligne
ce ne peut donc pas etre un acadobject

de plus tu déclares AutoCAD comme object sans plus donc sous VB6 il faut faire
Set AutoCAD = GetObject(, "AutoCAD.Application.17")
pour que ça marche.
je suppose qu'en VB.NET cela doit aussi etre fait

si c'est la solution, penser : REPONSE ACCEPTEE
lundi 20 octobre 2008 à 17:55:11 | Re : VB.NET (2008 express) et autocad 2008

Vincentkro


Pour le premier point, je te confirma le type variant sous vba, sauf qu'en vb.net, cela n'existe pas. Il correspond au type objet, je pense. Mais pas certain.
Pour le second point, tu as tout a fait raison, j'ai coupé une partie du code qui me permet d'ouvrir autocad ainsi que le dessin souhaité.
J'ai trouvé d'autre piste du type :
Dim
prEnt As PromptEntityOptions = New PromptEntityOptions("Select an Employee")
Mais je ne sais pas comment déclarer le PromptEntityOptions, il doit faire appel à une dll que je ne connait pas.

Vincent.
lundi 20 octobre 2008 à 18:09:14 | Re : VB.NET (2008 express) et autocad 2008

pile_poil

Membre Club
PromptEntityOptions  ce n'est pas du VBA AutoCAD ça 
donc il ne le reconnaitra pas

si c'est la solution, penser : REPONSE ACCEPTEE
lundi 20 octobre 2008 à 21:45:20 | Re : VB.NET (2008 express) et autocad 2008

Vincentkro

Oui, je pense que ce code fait appel a des librairie spécifique d'autocad qui utilisent les objets ARX.
Cependant, je ne parviens pas à comprendre comment utiliser ce code. De plus j'ai essayer d'installer les fichiers (librairies, dll et autre) que j'ai récupéré sur le site autodesk mais l'installation échoue (elle nécessite visual studio 2005, et je ne posséde que VB Express 2005  ??).
Je rappelle que mon but étant par la suite de coder mon programme sous VB2008.

Je te remercie de l'attention que tu porte à mon problème et de la rapidité de tes réponses.
Je vais creuser encore un peu en espérant trouver au plus vite.
mardi 21 octobre 2008 à 22:13:34 | Re : VB.NET (2008 express) et autocad 2008

Vincentkro

J'ai creusé la piste du "PromptEntityOptions"

J'ai télécharger ces exemples sur le site d'autocad :
Lien: http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=1911627

Il s'avère que ce code correspond à des classes qui, une fois généré, constitue une dll que l'on peut utiliser sous autocad. Appelle de fonctions par l'intermédiaire de l'invite de commande d'autocad.
Je ne peut donc pas utiliser ce code directement dans un form. De plus je n'est jamais utiliser le code vb.net pour créer des dll ???

Quelqu'un peut-il me dire si il est possible de modifier le code d'une classe pour l'utiliser dans un form.
J'ai déjà essayer, mais j'ai constaté des problèmes au niveau des imports (autocad entre en vonflit avec vb).
Mais ne connaissant pas bien ce type de code, il est possible, même très probable, que j'ai fait des erreurs.

Rappel de mon but:
1- Clic sur un bouton dans un form (de mon application vb.net)
2- Attente de réponse, l'utilisateur doit sélectionner un objet sur un dessin d'autocad
3- Je doit récupérer l'objet, ici les coordonnées graphiques, le type d'objet, etc... (ex: pour une droite c'est une array)
Ensuite j'enregistre tout ça dans une base de donnée pour faire mes calculs et par la suite regénérer mon dessin si nécessaire.

Oui, je sais mon projet et ambitieux . Mais j'éspère que quelqu'un pourra me donner un petit coup de pousse car pour le moment je bloque sur la sélection de l'objet.

Merci.

Vincent
mardi 21 octobre 2008 à 22:26:11 | Re : VB.NET (2008 express) et autocad 2008

pile_poil

Membre Club
pourquoi ne fais tu pas cela directement dans le VBA d'autocad
regardes  ici: C:\Program Files\AutoCAD 2008\Sample\ActiveX\ExtAttr
tu as un exemple d'extraction de données d'un dessin et export vers excel

si c'est la solution, penser : REPONSE ACCEPTEE
mardi 21 octobre 2008 à 22:47:05 | Re : VB.NET (2008 express) et autocad 2008

Vincentkro

Voici le contexte:
Je travaille actuellement sur un programme existant sur autocad, coder sous autocad en LISP.
Pour des raisons pratiques, on souhaite faire évoluer ce code.
Raisons:
-Code peu conviviale (indigeste par rapport à VB et très peu utilisé)
-Créer une gestion de projet (fichiers, calcul)
-Stocker les calculs intermédiaires pour effectuer des modifications sans tout recommencer du début --> Gestion base de donnée
-En résumé, augmenter les possibilités du programme et faciliter la gestion par l'utilisateur.
Il faut savoir que dans mon cas, le dessin est "peu important", il ne sert qu'à la récupération des coordonnées graphiques afin de générer les calculs. Les calculs se réalisant sur des plans de plusieurs kilomètres sont très long et la moindre modification, nous oblige à tous recommencer. D'où l'intérêt de stocker les données dans une base pour les travailler et une fois les calculs vérifier, générer le plan.
Pour le moment, je suis capable de générer le dessin sur autocad grâce à vb.net, ma seule lacune est le chemin inverse (récupérer une selection autocad sou vb). J'ai pourtant utiliser le code VBA pour récupérer un point (GetPoint(, "sélectionner le point :")) sous vb.net sans aucun souci !

Je suis vraiment déçu, je pensé que ça aller fonctionner sans problème, mais la je suis refroidis !

Vincent.
lundi 5 janvier 2009 à 09:46:12 | Re : VB.NET (2008 express) et autocad 2008

BeuheC

Bonjour,

Je souhaite également programmer une application qui utilise AutoCAD via Visual Basic 2008 Express.
Mais pour l'instant impossible de faire comprendre mes commandes à VB08 Xpress ...

On dirai que j'ai un problème de références mais je ne trouve pas comment le résoudre ...

Faut-il installer des bibliothèques spécifiques (type ObjectARX, DOT.NET, ...) ?

D'avance merci.
mardi 25 août 2009 à 04:37:08 | Re : VB.NET (2008 express) et autocad 2008

bertyboy

Il faut utiliser charger les références acmgd.dll et acdbmgd.dll du dossier d'installation d'AutoCAD.
Dans les propriétés de ces références, spécifier de ne pas copier.

Le nouveau projet doit être de type "Bibliothèque de classes".

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.Runtime

Public Class bertClass
'Définition de votre commande
<CommandMethod("Programme")> _
Public Sub Programme()
Dim ThisDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim ThisDB As Database = ThisDoc.Database

'Votre code...
End Sub
End Class


Voilà un début!!

Bert


1 2

Cette discussion est classée dans : net, vb, autocad, polyline, polyligne


Répondre à ce message

Sujets en rapport avec ce message

VB.Net Process.Star en VB.Net avec un petit pour de code ? [ par MagDix ] Bonjour... Je désire démarer autocad en incluant un code après l'exécutable.Ce petit bout de code est utilisé pour faire démarer une aplication relié Autocad et vb.net : les jeux de sélection d'objets [ par Aribeau ] BonjourQui peut m'aider pour coder un jeu de sélection d'objets AutoCAD dans vb.net ? Impression en vb.net :o( [ par youil ] Dans une forme j'ai un viewer autocad et je cherche comment faire pour imprimer sont contenu à un endroit précis sur la feuille, tout en gardant la qu liaison vb.net - AutoCad [ par lispo ] Bonjour,je debut en vb.net ,Voila je voudrais ouvrire AutoCad et dessiner une ligne mais je n y arrive pas quelqu'un pourrais me dire les faute que j' liaison vb.net AutoCad [ par lispo ] Bonjour,je debut en vb.net ,Voila je voudrais ouvrire AutoCad et dessiner une ligne mais je n y arrive pas quelqu'un pourrais me dire les faute que j' Retrouver les coordonnées d'une polyligne en Vb sous Autocad [ par Mortalgui ] Bonjour à tous, je sui étudiant en école d'ingénieur et je dois réaliser un projet informatique.En fait je dois réaliser une macro en VB sous autocad collections en vb.net [ par KIRAIII ] salut tout le monde je suis débutant en vb et je cherche des exercices de collections en vb.net 2005 pour plus d'info : "was6-ife9@hotmail.fr"merci d' Copier un ensemble de fichier en VB.NET [ par fradimed ] Salut à Tous. Est ce que je peut savoir comment copier un ensemble de fichiers(en VB.NET)au même temps d'une répertoire à une autre,en utilisant la p VB.net Express 2008 et SQL Server Compact 3.5 [ par Treedent ] Quelque chose de si simple à faire en PHP, mais en VB.net c'est une autre affaire.Je réalise grace à un TableAdapter une insertion de commande :Dim in collection vb.net [ par DarGuA ] svp y'aurai pas un gentil petit homme parmit vous qui aurai une bonne petite demi heure à me consacrer pour m'expliqué les collections sur vb.net j'y


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales