(gile) Posté(e) le 1 décembre 2021 Posté(e) le 1 décembre 2021 Depuis AutoCAD 2018, l'aide aux développeurs tous environnements confondus (AutoLISP, ActiveX/VBA, Managed .NET, ObjectARX, JavaScript) est accessible depuis la même page web : https://help.autodesk.com/view/OARX/2018/FRA/ NB : on peut remplacer 2018 par une version ultérieure dans l'URL Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 1 décembre 2021 Posté(e) le 1 décembre 2021 Un grand merci à toi @(gile), je colle tout de suite ce raccourcis dans mes préférences... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 13 décembre 2021 Posté(e) le 13 décembre 2021 Juste une petite remarque. Quand je cherche toutes les propriétés d'un calque dans l'aide, je ne trouve que ça, et je ne trouve, par exemple, presque rien sur l'ensemble des propriété d'un calque. Le type de ligne, la couleur, l'épaisseur, l'option d'impression... Il faut avouer que ce n'est pas facile de trouver des renseignements complets dans cette aide, qui a le mérite d'exister, c'est vrai, mais qui ne sert pas souvent tout de suite... J'ai toutes-fois réussis à trouver beaucoup de renseignements, après plusieurs heures de recherches... Encore merci à @(gile) Mais je n'ai toujours pas trouvé la variable d'impression (T=Trace ou A=Aucun tracé) en VBA dans cette aide... Je cherche juste une deux choses, j'ai écris ce petit bout de code, qui fait parti d'un ensemble (en liaison tardive, encore merci à @(gile): Dim AcadApp As Object On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") Dim DocAutoCad As Object Set DocAutoCad = AcadApp.ActiveDocument Dim LayerNameColl As Object Set LayerNameColl = GetObject(, "AutoCAD.AcadLayer") NomFeuille = ActiveSheet.name Lign = 2 Do While Sheets(NomFeuille).Cells(Lign, 1).Value <> "" Sheets(NomFeuille).Cells(Lign, 1).Value = "" Lign = Lign + 1 Loop Lign = 2 Dim entry As Object Set LayerNameColl = DocAutoCad.layers Lign = 2 For Each entry In LayerNameColl If entry.name <> "0" Then Sheets(NomFeuille).Cells(Lign, 1).Value = entry.name 'C'est ici que je n'y arrive pas ************************************************* 'Et la couleur de ce calque Sheets(NomFeuille).Cells(Lign, 2).Value = entry.color 'Et le type de ligne de ce calque Sheets(NomFeuille).Cells(Lign, 3).Value = entry.LineType 'Et l'épaisseur de ce calque Sheets(NomFeuille).Cells(Lign, 4).Value = entry.LineWeight 'Et l'option d'impression de ce calque 'Sheets(NomFeuille).Cells(Lign, 5).Value = entry. En cours de recherche *************** Lign = Lign + 1 End If Next Mais je n'obtient que des "-3" pour les épaisseurs de ligne. Je n'ai trouvé aucune explication sur ce "-3". Et je n'ai toujours pas trouvé comment obtenir l'option d'impression d'un calque... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 14 décembre 2021 Auteur Posté(e) le 14 décembre 2021 La page que tu as trouvé est celle de la propriété Layers (au pluriel) des objets Document ou Database (Document.Layers ou Database.Layers) qui permet d'accéder à la collection des calques de ces objets (tout ça est clairement décrit dans cette page). Or ce que tu cherches ce sont les propriétés de l'objet Layer. Les valeurs pour les épaisseurs de ligne (propriété Lineweight des calques comme de tous les objets graphiques) sont les membres d'une énumération. Chaque membre d'une énumération correspond à un entier différent (en liaison tardive on utilise cet entier). -3 est la valeur de acLnWtByLwDefault, soit la valeur par défaut définie dans la variable système LWDEFAULT. acLnWtByLayer = -1 acLnWtByBlock = -2 acLnWtByLwDefault = -3 acLnWt000 = 0 acLnWt005 = 5 acLnWt009 = 9 acLnWt013 = 13 ... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Curlygoth Posté(e) le 14 décembre 2021 Posté(e) le 14 décembre 2021 Citation Mais je n'ai toujours pas trouvé la variable d'impression (T=Trace ou A=Aucun tracé) en VBA dans cette aide... .plottable = true 'or false tu as dans l'aide : je te le redis l'aide VBA est tres bien documenté ! abuses-en ! Sub Example_Plottable() ' This example creates a new layer called "New_Layer". It then uses ' the Plottable property of each Layer to display whether or not that layer ' is plottable. The user has the ability to toggle the plottable state ' for each layer, and the final plottable status for all layers is displayed. Dim layerObj As AcadLayer, tempLayer As AcadLayer Dim msg As String ' Add the layer to the layers collection Set layerObj = ThisDrawing.Layers.Add("New_Layer") ' Make the new layer the active layer for the drawing ThisDrawing.ActiveLayer = layerObj ' Cycle through the layers and allow user to make them plottable or not For Each tempLayer In ThisDrawing.Layers If tempLayer.Plottable Then ' Determine if this layer is plottable If MsgBox("The layer '" & tempLayer.name & "' will plot. Would you like to turn off plotting for this layer?", vbYesNo & vbQuestion) = vbYes Then tempLayer.Plottable = False ' Change plottable state End If Else If MsgBox("The layer '" & tempLayer.name & "' will not plot. Would you like to turn on plotting for this layer?", vbYesNo & vbQuestion) = vbYes Then tempLayer.Plottable = True ' Change plottable state End If End If Next ' Display the new plottable status of the layers in this drawing For Each tempLayer In ThisDrawing.Layers ' Determine if this layer is plottable If tempLayer.Plottable Then msg = msg & "The layer '" & tempLayer.name & "' will plot." & vbCrLf Else msg = msg & "The layer '" & tempLayer.name & "' will not plot." & vbCrLf End If Next MsgBox msg End Sub Mon site Web (en cours de construction) : Site DA-CODE de @didier
DenisHen Posté(e) le 15 décembre 2021 Posté(e) le 15 décembre 2021 Mille mercis @Curlygoth ! ! ! Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
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