Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Voilà, je cherche à créer UNE hachure suivant un contour sélectionné, dans le calque du contour sélectionné.

Donc à partir d'une partit de code que j'ai trouvé (ET COMPRIS), j'arrive à hachurer mon contour:

(defun c:hs (/ ss n)

(if (setq n -1

ss (ssget)

)

(while (setq ent (ssname ss (setq n (1+ n))))

(command "_bhatch" "_select" ent "" "")

)

)

(princ)

)

 

Ensuite, je cherche à extraire le nom du calque du contour, soit de la sélection "ss", mais c'est la que je plante.

Car apparemment, la fonction "ssget" n'est pas compatible avec "entget", ce qui est normal car on demande les infos d'UN objet à partir d'une sélection multiple.

Donc j'ai essayé de remplacer "ssget" par "entsel", mais ça ne marche pas...

 

Je me prend la tête depuis 1 heure....

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Salut La Lozère.

 

PS : le message suivant est le bon...

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)

Posté(e)

Si tu veux placer les hachures dans le même calque que les contours 1 par 1 :

;;; hachure selon contours dans même calque, pour La Lozère de CadXP
;;; DenisHen...
(defun c:hs (/ ss n)
 (setq old_layer (getvar "clayer"))
   (while (setq ent (car (entsel "\nSélectionnez le contour :")))
     (setq NomCalq (cdr (assoc 8 (entget ent)))
     ) ;_ Fin de setq
     (setvar "clayer" NomCalq)
     (command "_bhatch" "_select" ent "" "")
     (setvar "clayer" old_layer)
     (princ (strcat "\nNomCalq=" NomCalq))
   ) ;_ Fin de while  
 (princ)
) ;_ Fin de defun

J'ai choisi de hachurer chaque contour un par un... Je trouve ça plus "propre"...

 

On aurait pu aussi créer un calque NomCalq + "_HACH" pour faire plus pratique. Exemple, si le contour est dans le calque Contour, on créé un calque Contour_HACH et on place les hachures dedans...

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)

Posté(e)

Merci Denis, j'ai cherché...; Et je me suis bien pris la tête. Mais comme il faut que j'avance mon taf, j'avais laissé de coté.

Du coup, ton code va bien m'aider.

 

Juste un bricole, le top serait que ça marche si l'objet était préalablement sélectionné.

Mais MERCI

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Posté(e)

Tu peux faire ton entget sur ta variable ent:

(defun c:hs (/ ss n)
(if (setq n -1
ss (ssget)
)
(while (setq ent (ssname ss (setq n (1+ n))))
(command "_bhatch" "_select" ent "" "")
(setq MONCALQUE (cdr (assoc 8 (entget ent))))
)
)
(princ)
)

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Posté(e)

Du coup, ton code va bien m'aider.

C'est le but, content de t'aider...

 

Juste un bricole, le top serait que ça marche si l'objet était préalablement sélectionné.

Là, je ne vois pas trop comment faire...

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)

Posté(e)

Bon ben merci les gars,

Avec votre aide, le support de (gile) et un peu beaucoup de tâtonnement, je suis arrivé à ça, et ça marche:

(defun c:hs (/ ss n)
(if (setq n -1
ss (ssget)
)
(while (setq ent (ssname ss (setq n (1+ n))))
(setq MONCALQUE (cdr (assoc 8 (entget ent))))
     (setq CCOURANT (getvar "clayer"))
     (setvar "clayer" MONCALQUE)
     (command "_bhatch" "_select" ent "" "")
     (setvar "clayer" CCOURANT)
)
)
(princ)
)

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas

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é