Aller au contenu

Gestion des dessus-dessous sous Autocad


Messages recommandés

Posté(e)

Bsr,

Je cherche un truc ou une solution sur un sujet pas facile qui est la gestion des dessus-dessous.

Je ne sais pas si cela est possible mais je cherche une solution voir macro pour gérer plusieurs calques de plusieurs xref en dessus-dessous au niveau hachurage.

Je m'explique au boulot j'ai un plan de travaux composé de plusieurs xref, comme fond de plan géomètre, hachurache chaussée route existante concerné par mon projet, mon projet, hachurage chaussée route projet, hachurage des talutages(remblais/déblais accotements fossés) soit 5 fichiers xref attachés à mon fichier projet de travail.

Sur celui-ci je veux sortir en impression une présentation montrant mon projet entier avec dans l'ordre des fichiers, projet, fond de plan,hachurage chaussée projet et talutages et enfin hachurage chaussée route existante concerné par le projet, pour distinguer comme c'est de l'aménagement surplace sur une route existante la partie neuve visible d'une couleur à la partie existante d'une autre.

Avec les dessus-dessous je n'arrive pas vraiment à gérer cela efficacement comme je le souhaiterai.

L'idéal serait de pouvoir avoir un petit de gestion des calques concernés sur l'ensemble de ces fichiers en imposant ou forçant l'ordre comme en déplaçant vers le haut ou bas les calques concernés.

Le problème est compliqué vu que c'est sur plusieurs xref.

Quelqu'un aurait-il une idée et comment faites-vous pour tenter de gérer les fameux dessus-dessous.

Je précise que je suis sur Map 2012

Merci de vos éventuelles idées

Phil

Posté(e)

Dessus-dessous possible pour tes R-Refs comme pour tout objet mais aucunement pour les calques !

Il y a bien un utilitaire pour les abonnés (plug-in of the month) qui fait ce travail, soi-disant, mais à mon avis, il ne fait que classer les objets appartenant à des calques et non des calques eux-mêmes.

 

Bref, pas de solutions par les calques.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

J'ai trouvé ce code mais comme je ne suis pas certain d'avoir le module vba au boulot je nesuis pas certain que cela corresponde à ma recherche mais ça va dans ce sens.

 

un petit code "clé en main" qui fait la liste des calques et la place dans l'espace objet. Chaque ligne de texte définissant le nom de calque, ainsi que ses propriétés type de ligne, épaisseur de trait et couleur est placé dans son calque respectif.

 

Il peut être ainsi facile d'imprimer cette liste de calque par exemple.

 

Comme tous les autres codes de ce site, il a été testé sous ACAD2005 et Windows XP. A copier dans un module.

 

'-------------------------------------------------------------------

'Cette macro liste les calques présents dans le dessin en écrivant

'leur nom, type de trait, épaisseur de trait et couleur dans

'l'espace objet. Chaque ligne sera rangée sur son calque respectif

'Auparavant, la macro demandera de saisir l'emplacement de la liste

'à l'écran.

'-------------------------------------------------------------------

 

Sub ListerCalques()

'Liste des variables

Dim Calque As AcadLayer

Dim objTxt As AcadText

Dim interligne As Double

Dim htTexte As Double

Dim NomCalque As String

Dim TypeLigne As String

Dim EpLigne As String

Dim Couleur As String

Dim Texte As String

Dim PtIns As Variant

 

On Error GoTo ListerCalques_Error

 

'Initialisation de la macro

'Trouve la hauteur de texte du style courant

htTexte = ThisDrawing.ActiveTextStyle.Height

'Si la hauteur=0, alors choisir la hauteur 2

If htTexte = 0 Then htTexte = 2.5

'Valeur de l'interligne

interligne = 1.5

'Demande de l'emplacement de la liste

PtIns = ThisDrawing.Utility.GetPoint(, "Saisir l'emplacement de la liste")

 

'Parcours de la liste des calques présents dans le dessin

For Each Calque In ThisDrawing.Layers

With Calque

'Détermination du nom du calque

NomCalque = .Name

'Détermination du nom de type de ligne

TypeLigne = .Linetype

'Détermination de l'épaisseur de la ligne

If .Lineweight = -3 Then '-3 est le code pour les lignes Ep Par défaut

EpLigne = "Par défaut"

Else 'Sinon, le code de l'épaisseur est donné en 100e

'Il faut le convertir pour trouver des millimètres

'et le formater pour obtenir 2 chiffres après la virgule

EpLigne = Format(CStr(.Lineweight / 100), "0.00")

End If

Select Case .color 'Détermination de la couleur

'ACAD possède 6 variables définissant les couleurs de base

'On traduit les variables en français.

Case acWhite: Couleur = "Blanc"

Case acYellow: Couleur = "Jaune"

Case acGreen: Couleur = "Vert"

Case acRed: Couleur = "Rouge"

Case acCyan: Couleur = "Cyan"

Case acBlue: Couleur = "Bleu"

Case acMagenta: Couleur = "Magenta"

'Les autres couleurs, on indique leur numéro

Case Else: Couleur = "N°" & CStr(.color)

End Select

 

'Comosition de la ligne. Chaque paramètre est séparé par --

Texte = NomCalque & " -- " & TypeLigne & " -- " & EpLigne & " -- " & Couleur

'Insertion du texte dans l'espace objet

Set objTxt = ThisDrawing.ModelSpace.AddText(Texte, PtIns, htTexte)

 

objTxt.Layer = .Name 'On place le texte créé dans son calque

objTxt.color = acByLayer 'On règle la couleur le texte sur Par calque

objTxt.Linetype = "BYLAYER" 'On règle le type de trait du texte sur Par calque

objTxt.Lineweight = acLnWtByLayer 'On règle l'épaisseur du texte sur Par calque

 

'On modifie la valeur y du point d'insertion en la soustrayant de

'la hauteur du texte courant x interligne choisie.

PtIns(1) = PtIns(1) - htTexte * interligne

End With

Next 'Traitement du calque suivant

 

'Fin de la macro

On Error GoTo 0

Exit Sub

 

'Gestionnaire d'erreur :

ListerCalques_Error:

If Err.Number = -2147352567 Or Err.Number = -2145320928 Then

'Si la touche échap ou le clic droit de la liste est pressé

'quand le point d'insertion est demandé, on quitte la macro.

Exit Sub

Else 'Sinon, donner un message d'erreur.

MsgBox "Une erreur s'est produite", , "Liste des calques"

End If

End Sub

 

 

 

 

Dessus-dessous possible pour tes R-Refs comme pour tout objet mais aucunement pour les calques !

Il y a bien un utilitaire pour les abonnés (plug-in of the month) qui fait ce travail, soi-disant, mais à mon avis, il ne fait que classer les objets appartenant à des calques et non des calques eux-mêmes.

 

Bref, pas de solutions par les calques.

Posté(e)

VBA ? pffff... je ne sais pas si ca vaut le coup.

 

Tu as VBA dès lors que n'es pas sur LT.

 

Le lien promis est ici.

DrawOrder by Layer for AutoCAD

C'est un des premiers. Il marche pour la 2014 y compris. Donne-nous des nouvelles. MAis je doute pour les Xref......

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

bjr Tramber,

Le logiciel VBA n'est plus installéé avec Autocad et je n'ai pas les droits au boulot donc impossible pour moi, tant pis

 

 

VBA ? pffff... je ne sais pas si ca vaut le coup.

 

Tu as VBA dès lors que n'es pas sur LT.

 

Le lien promis est ici.

DrawOrder by Layer for AutoCAD

C'est un des premiers. Il marche pour la 2014 y compris. Donne-nous des nouvelles. MAis je doute pour les Xref......

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é