-
Compteur de contenus
92 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par g_barthe
-
Bonsoir, Je sais qu'il est tard mais les pb n'ont pas d'heures :casstet: Je dois dessiner une ellipse en vba comme mon application l'est entièrement et je souhaite pas melanger les langages. En fait c'est une demi ellipse car l'ellipse ca marche. Un arc ne me permet pas d'aplatir, j'obtiens un demi cercle. Je suis un peu perdu. Je sais que en dessin autocad permet d'applatir un arc a la main mais en vba... Et je n'ai pas trouver pour effacer une partie de mon ellipse. Y a t'il plusieurs techniques ? Merci à vous [Edité le 26/9/2006 par g_barthe]
-
Alors voilà le résultat des ma cogitation intense. Dim strChemFich As String Dim F As Integer Dim strLigne(10000) As String Dim i As Integer Dim j As Integer Dim bytD As Byte, bytF As Byte, bytL As Byte Dim SearchString, SearchChar, MyPos SearchChar = "*" strChemFich = "E:\aero_cad_v.0\aero_cad_v.0.1\acadiso.lin" F = FreeFile '1er numéro libre Open strChemFich For Input As #F 'ouvert en lecture i = 0 While Not eof(F) Line Input #F, strLigne(I) 'lit la ligne entière et l'attribue à la variable strLigne i = i + 1 Wend Close #F For j = 0 To i MyPos = InStr(1, strLigne(j), SearchChar) If MyPos <> 0 Then bytD = InStr(strLigne(j), "*") bytF = InStr(strLigne(j), ",") - 2 bytL = Len(strLigne(j)) If bytD <> 0 Or bytF <> 0 Then DelCrochets = Mid$(strLigne(j), 2, bytF) ligne_choisie.AddItem DelCrochets End If End If Next j Ca permet de lire li fichier acadiso.lin et de mettre les types de lignes dans une liste déroulante placée sur une form. Le truc simple. Après récupération de la valeur de la liste déroulante par liste.value.
-
Euh à pas compris ! ! ! ! Boulet du jour ou gag qui sert à rien ?
-
Alors j'ai trouvé qqch sur la lecture des bdd mysql. En fait il faut un dll et qq fonction ecrites en vba ds un module. Je peux détailler par la suite si besoin. Mais en fait mon choix s'est orienté sur un fichier xml pour stocker des paramètres. Je vous détaillerais cela par la suite. J'en suis qu'à mes débuts.
-
Euh apres plusieurs essais, j'en viens a me dire que ce que je veux faire en fait est appeler les boites de dialogues internes à Autocad : http://img175.imageshack.us/img175/1387/typelignerg5.th.jpg Mais pour cela il doit falloir appeler un librairie contenue dans une dll ou le AutoCAD.exe mais je ne connais pas le lien. Un peu comme pour celle de la palette de couleur mais je ne trouve rien a part la palette de couleur Public Declare Function acedSetColorDialog Lib "acad.exe" (color As Long, ByVal bAllowMetaColor As Boolean, ByVal nCurLayerColor As Long) As Boolean Public Function ChooseColor(ByVal lngInitClr As Long, ByVal blnMetaColor As Boolean, ByVal lngCurClr As Long) As Long ChooseColor = -1 On Error Resume Next If acedSetColorDialog(lngInitClr, blnMetaColor, lngCurClr) Then ChooseColor = lngInitClr End If End Function Qqn aurait-il une idée la dessus ? Pck refaire une boite de dialogue en chosissant le .lin et en lisant le contenu les paramètres et autres me parait un peu dommage alors que qqch de bien existe déjà.
-
J'ai trouvé cela : Sub Example_Linetypes() ' This example finds the linetypes collection and ' lists all the available linetypes in the collection. Dim linetypeColl As AcadLineTypes Dim entry As AcadLineType Dim msg As String ' Return the linetype collection object of the active document Set linetypeColl = ThisDrawing.Linetypes ' List all available linetypes For Each entry In linetypeColl msg = msg & entry.name & vbCrLf Next MsgBox "The linetypes available in this drawing are:" & vbCrLf & msg, vbInformation, "Linetypes" End Sub Alors cette macro liste les styles de lignes utilisés ds le document actuel. Mais ne met pa sa disposition les types dispo ds le fichier AutoCAD.lin Alors finalement je vais me tourner vers la lecture du fichier AutoCAD.lin en vba et la mise en liste deroulante.
-
ok ca marche alors dans ce cas dès demain je me tourne ves cette option. EUh récuperer tous les types de lignes du fichier acadiso.lin est peut etre un peu lourd. merci du coup de main je regarde ca demain et je vous tiens au courant.
-
Merci de cette reponse mais moi c'est pas de l'active document que je veux recuperer mais dans autocad. Comme qd tu choisi dans ton gestionnaire de calque le type de ligne que tu veux y appliquer. Et dans c ecas tu as une liste déroulante et moi je voudrais connaitre où est stoché le contenu de cette liste. Et je ne pense pas que ce soit dans l'activedocument euh sauf erreur bien sur. Mais je vais regarder de ce coté la.
-
Bonsoir, Alors je reviens encore pour un petit pb. Je cherche à récuperer dans une liste déroulante, tous les types de lignes dispo. Je pense qu'il existe un truc dans le genre de ce topic http://www.cadxp.com/sujetXForum-8112.htm qui lui liste les couleurs d'autocad et ouvre la boite de dialogue traditionnelle. Comme les propriétés sont un peu cachées, voir limite retention d'info, je me tourne vers ce forum. Parceque le coup de la boite de dialogue des couleur etait qd meme bien caché et pas dans l'explorateur d'objet. Qd il faut charger des AutoCAD.exe et autre pour avoir les librairies la je décroche un peu. Merci de votre aide. Un lien vers un site me va aussi. [Edité le 22/9/2006 par g_barthe]
-
J'ai trouvé, cela etait décrit ds les routines. Mais l'objet que j'utilise ne gère pas l proprité coordinates. Mais j'ai fais autrement. Pour l'instant tout va bien plus de pb
-
Salut, J'ai bien réussi à décaler mon objet. Aucun pb. Mais maintenant je bute sur la récuperation du point de départ de l'objet décaler qui est de type variant. La propriété startpoint ne s'appplique plus. L'objet variant "test" est un tableau (array) mais en faisant test(0) ca ne marche pas. Alors j'ai bien regardé ds l'aide mais pas de manip pour récuperer mes valeurs. QQn aurait-il une petite idée. Merci à vous
-
J'utilise la propriété CreateObject(AutoCad.Application) Recherche dans l'exploratuer d'objet cette propriété tu aura peut surement un exmple d'utilisation. Je peux pas te coller un exmple de mon code pour l'instant je suis sur 2 pc en meme tps. (le net sous linux et la je prog une grosse application autocad en vba sur xp) Alors dès que j'ai la possibilité de te mettre un exemple je le poste. Mais moi je me sers énormement de l'explorateur d'objet et des exemples fournis qui sont d'ordinaire assez complet (en anglais dommage mais bon) Bon courage
-
Voilà je pense un élément qui pose pb. Il faut remplacer la AutoCAD App.Visible... Par AcadApp.Visible..... car tu as déclarer la variable AcadApp en application autocad. Donc la de cette manière, l'extraction des attributs du plan se fait a priori sans pb. Par contre la modification des attributs pose un pb pour la mise a jour. Mais j'espère déjà avoir fait avancer ton pb.
-
Je n'ai pas testé le code mais si ma réponse n'est pas la bonne je le ferais demain. Mais si c'est un probleme de bibilotheque inexistante, il faut activer la bibiliotheque liée à autocad sous excel. Donc ds ton editeur vba excel, tu vas ds outils-> reférences et tu cherches ds la liste une référence qui ressemble à Autocad. Je pourrais être plus précis demain si besoin. Bon courage et tiens moi au courant.
-
Je viens de comprendre un peu la structure de cet élément et je compte afficher les infos d'un fichier xml. Car en fait je veux réussir à paramétrer des variables de configuration qui permettrons de définir des calques (couleur, style de trait...) et autres variables nécessaires à un projet autocad. L'avantage du fichier xml est sa lecture sur n'importe quel éditeur de texte et struture relativement simple. Dès que j'ai sortie qqch je vous fait part de mon avancement.
-
Merci du coup de main je venais egalement de toruver la referecne a ce controle. Il m'a l'air assez complexe d'ailleurs à paramétrer. Mais bon avec la doc sur le net on doit arriver à qq chose. Merci @tous
-
Bonjour, Je cherche a développer une interface graphique de configuration pour une application en vba mais je voi spas trop comment je peux realiser ca. En fait c'est fait sous forme d'arborescence et on peut developper le menu et apres en cliquant ca ouvre une form pour configurer des choses. Mais le coup de ce menu psedo deroulant facon explorateur en vba je vois pas trop comment faire (avec vba pour autocad). Peut etre pas clair mais je peux apporter des precisions si nécessaire. http://img201.imageshack.us/img201/8382/configvbajp4.th.jpg
-
Super tramber tjs égal à lui même. Les solutions apportées sont toujours aussi efficaces. Merci et bonne journée.
-
Bonjour, Je cherche a recréer la fonction décaler en vba pour mon projet. A l'heure actuelle je me sers de la commande vba "move" mais si je rajoute mais valeur de décalage de 40 par exemple, si mon objet est en diagonal, cette valeur est fausse car on ne peut pas décaler en X et en Y de 40. dans ma focntion acutelle, je spécifie els coordonnée sdes pts. Mais le mieux serait de spécifier une distance. Et ce cas la je ne vois pas comment le traiter. Qqn autrait-il une idée. Si je suis pas clair dites le moi. [Edité le 22/9/2006 par g_barthe]
-
Bonjour, Je me penche sur plusieurs projets dont celui de développer un "clone" d'autogaine mais en vba en non en lisp. Je dis clone pck je ne veut pas faire du copier coller de leur application loin de là. Mais la question que je me pose est : ce projet peut-il être viable en utilisant le VBA ou est-ce uniquement faisable avec le LISP ou mieux des objets ARX. J'adore le VBA et el maitrise pas trop mal (je pense). Donc je voulais em pencher sur ce langage mais je ne sais pas si le dessin en tps réel de gaine n'est pas trop demandé à VBA. Auriez-vous une idée la dessus.
-
Je pense qu'il est possible de réaliser qqch comme cela. Ca reste simple mais efficace. A améliorer et completer en fonction de tes besoins perso(arrondi des surface...). Ce bout de prog n'est pas vérifié ds tous les sens donc peut produire des bugs de tps en tps. c'est juste une ligne de conduite Sub aire_polyligne() Dim acadutil As Object Dim points(0 To 5) As Double Dim acadDoc As Object Dim aire As Double Dim moSpace As Object Dim acadObj As Object Dim pnt As Variant Dim startpoint(0 To 2) As Double Dim annotobj As Object Dim returnObj As AcadObject Dim basePnt As Variant Set acadObj = GetObject(, "AutoCAD.Application") Set acadDoc = acadObj.ActiveDocument Set moSpace = acadDoc.ModelSpace On Error Resume Next ThisDrawing.Utility.GetEntity returnObj, basePnt, "Sélectionner un objet" returnObj.Update aire = returnObj.Area returnObj.Update 'saisie de l'emplacement du texte pnt = ThisDrawing.Utility.GetPoint(, "Position de l'étiquette ? ") startpoint(0) = pnt(0) startpoint(1) = pnt(1) startpoint(2) = pnt(2) Set annotobj = moSpace.AddText(aire, startpoint, 1#) End Sub PS : il est aussi possible d'utiliser la fonction "insertion" -> "champ"... d'autocad 2006 (voir les versions antérieures) qui ajoutes le champs aire en fonction de l'objet choisi et le met à jour à l'enregistrement du fichier. Donc action dynamique sympa. Je viens de m'appercevoir que ce sujet etait traiter ds l'annonce "routines VBA" le prog est déja réaliser et les champs dynamiques ont déjà été abordés. Donc j'ai réinventé la roue. Désolé. A voir suivant le besoin réel.[Edité le 11/9/2006 par g_barthe] [Edité le 11/9/2006 par g_barthe]
-
Recherche de fichiers dans un repertoire par multicritères
g_barthe a répondu à un(e) sujet de gmsfrederic dans VBA et VB
si tu veux recupérer les fichiers pdf dont le nom contient "00", je mettrais les 2 conditions ds la meme ligne. fs.FileName = "*00*.pdf" Je n'ai pas tester mais c'est ce que je ferais instinctivement. -
Bonjour, Je refléchi à la conception d'une très grosse application pour autocad (en vba car les arx me sont inconnu et la syntaxe tres particulière). Je pense que ce projet m'amènera a interroger une base de donnée. Je ne voudrais pas me servir d'access (les différentes versions posent trop de pb à mon gout). Connaissant bien les base mysql, je voulais me tourner vers cette solution. Seulement je ne vois pas la référence à sélectionner dans l'éditeur basic d'autocad pour le lier à ce genre de base. Auriez vous une petite idée ? Merci bien
-
effectivement je me suis apercu de ca. Donc c'est bidouillage et compagnie. Sur la version 2007, est-ce mieux geré ? En fait le but est de realiser des schéma isométrique "jolis" en plus d'être fonctionnels. Donc je me base sur des éléments 3D. (précision : je ne suis pas projeteur)
-
Oui ils sont en maillage donc j'en conclue que mon cas n'est pas déesepéré. Je vais donc apporfondir le sujet Merci
