g_barthe Posté(e) le 18 septembre 2006 Posté(e) le 18 septembre 2006 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] Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
(gile) Posté(e) le 18 septembre 2006 Posté(e) le 18 septembre 2006 Salut, Je ne connais pas le VBA, mais les types de ligne du dessin courant sont contenus dans la LineTypes Collection Object de l'ActiveDocument. En VisualLISP, pour récupérer la liste des types de ligne : (vlax-for lt (vla-get-LineTypes (vla-get-ActiveDocument (vlax-get-acad-object)) ) (setq lst (cons (vla-get-Name lt) lst)) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
g_barthe Posté(e) le 18 septembre 2006 Auteur Posté(e) le 18 septembre 2006 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. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
(gile) Posté(e) le 18 septembre 2006 Posté(e) le 18 septembre 2006 Si j'ai bien compris la question, il s'agit bien des types de lignes chargés dans le dessin AutoCAD actif (ActiveDocument) qui sont dans la liste déroulante du gestionnaire de calque, et ce sont bien les types de lignes de la collection LineTypes. À moins que tu veuilles récupérer tous les types de ligne du fichier acadiso.lin ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
g_barthe Posté(e) le 18 septembre 2006 Auteur Posté(e) le 18 septembre 2006 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. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
g_barthe Posté(e) le 18 septembre 2006 Auteur Posté(e) le 18 septembre 2006 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. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
g_barthe Posté(e) le 19 septembre 2006 Auteur Posté(e) le 19 septembre 2006 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à. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
g_barthe Posté(e) le 22 septembre 2006 Auteur Posté(e) le 22 septembre 2006 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. Vous voulez parler de génie climatique et poser vos questions alors venez par ici : http://le-genie-climatique.positifforum.com Les loisirs créatifs vous tentent : http://pausebroderie.fr
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant