Aller au contenu

Souci de macro


Messages recommandés

Posté(e)

Bonjour tout le monde,

 

Voilà j'ai un souci j'avais commencé un sujet dans Autocad 2010 pour savoir s'il fallait utiliser plutôt "enregistrer une action" ou créer une macro en vba...

 

Après plusieurs échanges avec entr'autres (gile) je suis arrivé à cette dernière question (qu'il m'a conseillé de poster sur ce forum):

 

Sur Autocad 2008 lorsque j'ouvre un dessin et que je dessine une polyligne de la couleur du calque et je lance la macro suivante:

 

Public Sub essai()

Dim objSS As AcadSelectionSet

Dim intCodes(0) As Integer

Dim varCodeValues(0) As Variant

 

Set objSS = ThisDrawing.SelectionSets.Add("2")

 

intCodes(0) = 0

varCodeValues(0) = "LWpolyline"

 

objSS.Select acSelectionSetAll, , , intCodes, varCodeValues

 

objSS.Erase

 

ThisDrawing.Regen acAllViewports

ThisDrawing.SelectionSets("2").Delete

 

End Sub

 

Là la polyligne est supprimée...je lance la même macro en changeant la couleur en couleur 30 et je modifie la macro en ajoutant le code 62 et la couleur 30. La polyligne est supprimée...

Je fait de même en changeant la couleur en couleur RGB 191,210,97 et en remplacant le code 62 par le code 420

et la couleur 30 par 12571233 (récupéré avec l'application que m'as donné (gile)):

 

(-1 .

(0 . "LWPOLYLINE")

(330 .

(5 . "190")

(100 . "AcDbEntity")

(67 . 0)

(410 . "Model")

(8 . "0")

(62 . 53)

(420 . 12571233)

(100 . "AcDbPolyline")

(90 . 6)

(70 . 128)

(43 . 0.0)

(38 . 0.0)

(39 . 0.0)

(10 4.34426 4.51881)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 6.77143 6.72875)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 9.98884 5.2053)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 7.44878 3.00476)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 5.22857 2.58158)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 2.09583 4.28371)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(210 0.0 0.0 1.0)

 

J'ai la réponse suivante sur la fenêtre de la commande:

"Autocad ne peut gérer la demande d'autorisation de service"

et dans la fenêtre autocad sur la ligne de commande j'ai "That command may not be invoked transaprently"

 

J'ouvre alors un nouveau dessin je refais une polyligne de la même couleur que précédemment je vérifie en lançant le lisp

 

(-1 .

(0 . "LWPOLYLINE")

(330 .

(5 . "18B")

(100 . "AcDbEntity")

(67 . 0)

(410 . "Model")

(8 . "0")

(62 . 53)

(420 . 12571233)

(100 . "AcDbPolyline")

(90 . 6)

(70 . 128)

(43 . 0.0)

(38 . 0.0)

(39 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(10 1.30087e+007 6.26326e+006)

(40 . 0.0)

(41 . 0.0)

(42 . 0.0)

(210 0.0 0.0 1.0)

 

Là la macro va jusqu'au bout mais ne me supprime pas la polyligne...

 

J'avoue que je ne comprends pas pourquoi la polyligne est supprimée avec la macro lorsque je lui précise la couleur 0-256 mais pas la couleur RGB? Est ce que ca viendrait de ce message? Et il en est de même pour les épaisseurs de ligne en code 370 qu'il ne reconnait pas...

 

Auriez-vous un début de réponse?

 

Merci d'avance.

 

NB: Cette macro fonctionne correctement si j'utilise Autocad 2010 (les autres étant en vacances j'ai pu essayer sur leur poste)

 

Je me demande également comment:

1- sélectionner des hachures d'une couleur RGB

2-de les transformer en couleur 0 - 256

3- de les mettre en arrière-plan.

 

Merci d'avance pour vos réponses.

Posté(e)

Slt

.... je modifie la macro en ajoutant le code 62 et la couleur 30 ...

 

peut-on voir ce code ?

 

Comme ça, à froid, je dirais :

a) une mauvaise utilisationd des codes dxf ?

b) un oubli de déclaration du RGB ?

 

Je me demande également comment:

1- sélectionner des hachures d'une couleur RGB

2-de les transformer en couleur 0 - 256

3- de les mettre en arrière-plan.

Pour le 1 et 2, voir petit b

Pour le 3, fais une recherche sur "ACAD_SORTENTS" dans l'Aide d'Acad ou sur le forum VB/VBA, il y a des exemples dont un de moi, par contre je ne saurais pas t'aiguiller pour le mot clé.

 

 

3- de les mettre en arrière-plan.

Je croyais qu'Acad 2010 le faisait automaiquement ?! ... à moins que ça ne soit que pour l'impression ?!

 

m'enfin ... bon courage et bonne continuation

 

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

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é