yusukens82 Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 Bonjours à tous, Je suis à la recherche d’une routine permettant de créer des hachures de tous les polylignes fermées d’un calque. Avez-vous ça sous le coude ? Merci
Tramber Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 Je propose SELECTRAP (polys fermées) après avoir isolé le calque. Puis :-HS 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 ./__\. (.°=°.)
yusukens82 Posté(e) le 14 décembre 2009 Auteur Posté(e) le 14 décembre 2009 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.
didier Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 Coucou mon copain que j'ai ... je t'ai tapé çà vite fait,c'est améliorable bien sûr avec des contrôlesmais çà fonctionnetiens 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
yusukens82 Posté(e) le 14 décembre 2009 Auteur Posté(e) le 14 décembre 2009 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
pascal19 Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 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+
lili2006 Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 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/
yusukens82 Posté(e) le 14 décembre 2009 Auteur Posté(e) le 14 décembre 2009 Merci beaucoupLes 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]
lili2006 Posté(e) le 14 décembre 2009 Posté(e) le 14 décembre 2009 Re, Si tu met ton modéle perso ou utilsateur Courant, tu récupères ce motif dans l'option en reprenant la commande => (Exemple ici => Motif perso "BOIS-10") http://free0.hiboox.com/images/5109/5b6096d30fd66c10b6b21eceb67332f1.jpg Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
yusukens82 Posté(e) le 14 décembre 2009 Auteur Posté(e) le 14 décembre 2009 Ah yes, c'est super !! Je vais partir de cette routique alors. vraiment une bonne causse :)
yusukens82 Posté(e) le 14 décembre 2009 Auteur Posté(e) le 14 décembre 2009 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=45tous les polylignes du calque "test2" aura une hachure AR-CONC - ech=5 - Angle=0etc.. Est-ce compliqué ?
didier Posté(e) le 15 décembre 2009 Posté(e) le 15 décembre 2009 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 soucion 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
yusukens82 Posté(e) le 15 décembre 2009 Auteur Posté(e) le 15 décembre 2009 Bonjour,Je te remercie beaucoup, j'ai essayé de bidouiller la routine de Lili2006 quelque heure hier, mais ce n'est pas facile je l'admet.
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