Aller au contenu

Hachurage multiple


Oli35

Messages recommandés

Bonjour à tous !

 

Voilà j'ai un nombre impressionnant de polylignes (toutes dans le même calque) à hachurer, et je voudrais pouvoir le faire de manière à ce que chaque hachure soit associée à sa polyligne... Y a-t-il une routine lisp ou autre chose qui puisse me faire gagner du temps ? (une par une c'est galère...)

 

Merci d'avance...

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

une possibilité avec Covadis :

Covadis 2d

Habillage

Hachurage contours/calque

 

au pire envoi moi le fichier en me précisant le type de hachurage souhaité

 

tot.o@caramail.com

 

@+

 

Le Hamac est une science exacte qui ne tolère pas l'amateurisme.

Lien vers le commentaire
Partager sur d’autres sites

 

Bonjour

 

Autre solution très facile, si tu disposes d'un AutoCAD MAP (quelque soit la version) :

 

- Requete sur les polylignes (closes) du calque en question (ou des calques)

avec l'option de modification des proprietes et generation automatique

d'une hachure sur chaque polyligne.

 

Ou bien si tu as un AutoCAD / MAP 2006, il y a une nouvelle option

dans la case de dialogue des hachures: "Create Separate Hatches".

qui donc genere des hachures separees pour chaque objet selectionne.

 

Question: Quelqu'un peut il me dire si cette option

existe dans AutoCAD LT 2006 ???

 

Le Decapode

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous

 

Voici un bout de code récupéré qui doit pouvoir faire l'affaire

 

;commande qui remplit plusieurs polylignes d'un coup

(defun c:mhatch (/ cmdecho ss i ss1)

(setq cmdecho (getvar "CMDECHO"))

(setvar "CMDECHO" 0)

(command "_UNDO" "_G")

(setq ss (ssget '((0 . "POLYLINE,LWPOLYLINE")))

i -1

ss1 (ssadd)

)

 

(repeat (sslength ss)

(command "_.hatch" "s" (ssname ss (setq i (1+ i))) "")

(ssadd (entlast) ss1)

)

(command "_.draworder" ss1 "" "_b")

(command "_UNDO" "_E")

(setvar "CMDECHO" cmdecho)

(princ)

)

 

 

C'est en partageant qu'on avance

 

Marc

Lien vers le commentaire
Partager sur d’autres sites

C'est possible avec Autodesk CIVIL 3D en utilisant les outils Parcelles.

 

L'avantage de CIVIL3D, c'est qu'il ajoute aussi (si tu le souhaites) la surface au centre du contour et la cotation automatiques des entités.

 

Et si tu changes le style de parcelle (par exemple le motif ou l'échelle des hachures) : toutes les hachures de ton dessin sont aussitôt mises à jour.

 

Tu peux mettre à jour ton AutoCAD vers CIVIL3D

 

Sus,

:)

Lien vers le commentaire
Partager sur d’autres sites

Marc,

 

Sympa ton code!

 

En le modifiant légérement; (ssget) avec des filtre approprié et en utilisant "-fhach" pour pouvoir avoir des hachures associatives aux contour (ca peut être utile), on obtient des hachures individuelles pour chaque contour.

 

La routine accepte toute les entités fermées pouvant être hachurées.

 

(defun c:mhatch (/ cmdecho ss i ss1)
(setq cmdecho (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(command "_.UNDO" "_Group")
(setq
	ss (ssget
		'((-4 . "< OR")
			(-4 . "< AND")
				(0 . "POLYLINE")
				(-4 . "< AND")
					(-4 . "&") (70 . 1)
					(-4 . "< ") (70 . 16)
				(-4 . "AND>")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "LWPOLYLINE")
				(-4 . "< AND")
					(-4 . "&") (70 . 1)
				(-4 . "AND>")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "MLINE")
				(-4 . "< AND")
					(-4 . "=") (71 . 3)
				(-4 . "AND>")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "CIRCLE")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "3DFACE")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "ELLIPSE")
				(-4 . "< AND")
					(-4 . "=") (41 . 0)
					(-4 . "=") (42 . 6.283185307179586)
				(-4 . "AND>")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "SPLINE")
				(-4 . "< AND")
					(-4 . "&") (70 . 1)
				(-4 . "AND>")
			(-4 . "AND>")
			(-4 . "< AND")
				(0 . "REGION")
			(-4 . "AND>")
		(-4 . "OR>"))
	)
	i -1
	ss1 (ssadd)
)
(repeat (sslength ss)
	(command "_.-bhatch" "_properties" "_solid" "_select" (ssname ss (setq i (1+ i))) "" "")
	(ssadd (entlast) ss1)
)
(command "_.draworder" ss1 "" "_back")
(command "_.UNDO" "_End")
(setvar "CMDECHO" cmdecho)
(princ)
)

 

Lors de la correction du code pour que tout apparaisse, j'ai placé un espace après le "<"

Si ça ne vas toujours pas, c'est de ce coté qu'il faut regarder.

 

[Edité le 25/5/2005 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bonjour,

 

Lorsque j'ai vu le sujet du message, je me suis dit "wow, super si ça marche !".

 

Mais voilà : sur mon PC, la version de Bonucad ne marche pas et j'ai besoin que les hachures soient associatives. J'ai bien essayé quelques modifs, mais je ne suis pas douée en LISP...

 

Alors j'ai vu là ma prmière occasion de poster un message sur ce Forum...

 

En fait quand je lance la verification du programme j'ai ce essage d'erreur : erreur: cdrs supplémentaire dans la paire pointée en entrée. Est ce dû à ma version d'Autocad (Autodesk Architectural Desktop 2005) ou y a-t-il effectivement une erreur dans le programme ?

 

Ce serait vraiment cool d'avoir un programme qui fonctionne, ça me ferait gagner un temps fou !

 

Merci d'avance pour votre réponse et continuez comme ça ;) !!!

 

kclement

Lien vers le commentaire
Partager sur d’autres sites

Je me fais toujours avoir avec le BBCode de CadXp qui "shunte" certains caractères spéciaux lors du copier coller.

 

Je vais essayer de modifier le post du code

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Je n'ai que 3 mots à dire :

 

Wow, youpiiiiii et merci !

 

C'est vrai au début je n'arrivais toujours pas à le faire fonctionner :casstet: et c'est en allant sur un autre post que j'ai vu qu'il fallait enlever les espaces après les "<".

Et là : le bonheur total !!!! :D

 

Encore merci !

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Sympa cette routine ; des multiples hachures séparées et associatives : Ca va servir

 

Mais uniquement avec la type de hachure "Solid".

 

Car en changeant le type de hachure dans le lisp, cà marche plus. :exclam:

 

Est-ce vrai ?

 

PS : Je connais rien au Lisp ;)

Lien vers le commentaire
Partager sur d’autres sites

En changeant que le nom, ça ne suffit pas.

Pour t'en rendre compte tu fait la même chose qu'en ligne de commande et tu fournis les options dans le même ordre. (comme un script)

ce qui pourrais donner suivant le motif choisi.

 

en SOLID:

(command "_.-bhatch" "_properties" "_solid" "_select" (ssname ss (setq i (1+ i))) "" "")

 

en MOTIF PREDEFINI:

(command "_.-bhatch" "_properties" "_ANSI31" "1" "0" "_select" (ssname ss (setq i (1+ i))) "" "")

 

en MOTIF UTILISATEUR:

(command "_.-bhatch" "_properties" "_U" "45" "1xp" "_no" "_select" (ssname ss (setq i (1+ i))) "" "")

 

Ce dernier peut être interessant au niveau de l'échelle. Le "XP" vas te calculer l'échelle par rapport à l'espace papier pour que tu ais 1 unité d'intervalle dans l'EP.

 

On pourrais sophistiquer le programme en regardant et en fixant les variables: HPANG , HPDOUBLE , HPNAME , HPSCALE , HPSPACE et peut être HPBOUND.

Dans ce cas l'option "Point interne" serait aussi sympa à mettre en place. (ça je l'ai déjà fait, je vous laisses trouver)

 

A vos claviers! ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

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é