Aller au contenu

Routine hachure


Messages recommandés

Posté(e)

Je propose SELECTRAP (polys fermées) après avoir isolé le calque.

 

Puis :

-H

S

 

Zou

 

:cool:

Je suis le contraire de (gile) : le moins je programme le mieux je me porte :D

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

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

Salut,

C’est en autre, ce que je fais depuis quelque année : j’isole le calque et j’affecte l’hachure correspondant aux polylignes du calque

 

Et je répète cette tâche autant de fois que j’ai de calque hachure.

C'est-à-dire une trentaine.

 

Posté(e)

Coucou mon copain que j'ai ...

 

je t'ai tapé çà vite fait,

c'est améliorable bien sûr avec des contrôles

mais çà fonctionne

tiens moi au courant...

 

(defun c:Hacalque()

(setq ent (car(entsel "\Entité du calque à Hachurer\n"))

calqueàfaire(cdr(assoc 8 (entget ent)))

jeusel (ssget "x" (list (cons 8 calqueàfaire)(cons 0 "LWPOLYLINE")))

n 0

compteur 0)

(command "_-layer" "_M" (strcat calqueàfaire " Hachures") "")

(repeat (sslength jeusel)

(setq tempo (ssname jeusel n))

(if (= (cdr(assoc 70 (entget tempo))) 129)

(progn

(command "_-bhatch" "p" "s" "s" tempo "" "")

(setq compteur (+ 1 compteur))

)

)

(setq n (+ 1 n))

)

(alert (strcat (itoa compteur) " Polylignes Closes traitées"))

)

 

amitiés

Posté(e)

Bonsoir, merci beaucoup de ton aide

 

Je n'ai pas très bien compris le mode d'emploie.

 

Après avoir lancé la routine, je sélectionne une polylignes et un message s'affiche :

0 polylignes Closes traitées

Posté(e)

Salut

 

perso j'utilise celui-ci:

 

(defun C:hach-pol ()
 (setvar "cmdecho" 0)
 (prompt "\nchoix des polylignes...")
 (setq grh (ssget))
  (setq cont 0)
 (setq essai (sslength grh))
 (setq essai2 (ssname grh cont))
 (repeat essai
     (setvar "HPASSOC" 1)
     (command "_.BHATCH" "_p" "SOLID" "_s" essai2 "" "")
     (setq cont(+ 1 cont))
     (setq essai2 (ssname grh cont))
   )
  )

 

tu sélectionne tes polylignes (qui doivent être fermées) et tu lance la commande (ou l'inverse).

Tu obtiens 1 hachure solide associative par polyligne.

j'ai aussi personnalisé un bouton avec la macro suivante:

 

C^C(load"hach-pol.lsp");hach-pol;

(avec hach-pol.lsp dans un fichier support)

 

a+

 

Posté(e)

Bonsoir à toutes et tous,

 

J'avais récupéré celui-ci mais je ne sais plus du tout ou ???

 

Que l'auteur me pardonne, ;) (Mais c'est pour la bonne cause, :D )

 

 (defun c:mhatch (/ cmdecho mod_hatch ang_hatch esp_hatch dbl_hatch ss i ss1 pt)
(setq cmdecho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(command "_.UNDO" "_Group")
(initget "Solide Utilisateur Courant _Solid User Current")
(setq mod_hatch (getkword (strcat "\nUtiliser le motif [solide/Utilisateur/Courant]? : ")))
(cond
((eq mod_hatch "Solid") (setvar "HPNAME" "_SOLID"))
((eq mod_hatch "User") (setvar "HPNAME" "_USER"))
)
(if (and (/= (getvar "HPNAME") "_SOLID") (/= (getvar "HPNAME") "SOLID"))
(if (or (wcmatch (getvar "hpname") "_U*") (wcmatch (getvar "hpname") "U*"))
(progn
(setq ang_hatch (getangle (strcat "\nSpécifiez l'angle des lignes de hachures : ")))
(if ang_hatch (setvar "HPANG" ang_hatch))
(initget 6)
(setq esp_hatch (getdist (strcat "\nSpécifiez l'espacement entre les lignes : ")))
(if esp_hatch (setvar "HPSPACE" esp_hatch))
(initget "Oui Non _Yes No")
(setq dbl_hatch (getkword (strcat "\nDouble hachures? [Oui/Non] : ")))
(cond ((eq dbl_hatch "Yes") (setvar "HPDOUBLE" 1)) ((eq dbl_hatch "No") (setvar "HPDOUBLE" 0)))
)
(progn
(initget 6)
(setq esp_hatch (getdist (strcat "\nSpécifiez l'échelle du modèle : ")))
(if esp_hatch (setvar "HPSCALE" esp_hatch))
(setq ang_hatch (getangle (strcat "\nSpécifiez l'angle du modèle : ")))
(if ang_hatch (setvar "HPANG" ang_hatch))
)
)
)
(princ "\nChoisir des objet ou pour point interne.")
(setq
ss (ssget
'((-4 . "(-4 . "(0 . "POLYLINE")
(-4 . "(-4 . "&") (70 . 1)
(-4 . "(-4 . "&") (70 . 16)
(-4 . "NOT>")
(-4 . "AND>")
(-4 . "AND>")
(-4 . "(0 . "LWPOLYLINE")
(-4 . "(-4 . "&") (70 . 1)
(-4 . "AND>")
(-4 . "AND>")
(-4 . "(0 . "MLINE")
(-4 . "(-4 . "=") (71 . 3)
(-4 . "AND>")
(-4 . "AND>")
(-4 . "(0 . "CIRCLE")
(-4 . "AND>")
(-4 . "(0 . "3DFACE")
(-4 . "AND>")
(-4 . "(0 . "ELLIPSE")
(-4 . "(-4 . "=") (41 . 0)
(-4 . "=") (42 . 6.283185307179586)
(-4 . "AND>")
(-4 . "AND>")
(-4 . "(0 . "SPLINE")
(-4 . "(-4 . "&") (70 . 1)
(-4 . "AND>")
(-4 . "AND>")
(-4 . "(0 . "REGION")
(-4 . "AND>")
(-4 . "OR>"))
)
i -1
ss1 (ssadd)
)
(cond
(ss
(repeat (sslength ss)
(command "_.-bhatch" "_select" (ssname ss (setq i (1+ i))) "" "")
(ssadd (entlast) ss1)
)
)
(T
(while (setq pt (getpoint "\nSpécifiez un point interne: "))
(command "_.-bhatch" pt "")
(ssadd (entlast) ss1)
)
)
)
(if (not (zerop (sslength ss1))) (command "_.draworder" ss1 "" "_back"))
(command "_.UNDO" "_End")
(setvar "CMDECHO" cmdecho)
(princ)
)

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Posté(e)

Merci beaucoup

Les routines de pascal19 et de lili2006 fonctionnent à merveille.

 

Je vais essayer de bidouller un peu pour qu'il puisse utilise également des hachure personnalisé (fichier .pat)

 

[Edité le 14/12/2009 par yusukens82]

Posté(e)

Mon but et d'attribuer un type d'hachure + echelle à un calque spécifique.

 

exemple :

tous les polylignes du calque "test1" aura une hachure STEEL - ech=2 - Angle=45

tous les polylignes du calque "test2" aura une hachure AR-CONC - ech=5 - Angle=0

etc..

 

 

Est-ce compliqué ?

Posté(e)

coucou

 

tu risques de me vexer, mais je vois que tu n'as pas peur !! ;)

ce que je t'ai tapé vite fait était pour te dépanner et çà fonctionne chez moi

 

mais le but est de trouver une solution à ton souci

on ne cherche pas une médaille.

 

si je trouve un peu de temps de te fais quelque chose dans le sens de ta dernière demande.

 

amitié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 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é