Aller au contenu

[Résolu] lister en vba les types de lignes


Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

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é