Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous. J'ai un problème urgent à résoudre.aidez moi s'il vous plait. J'ai déjà exposé ce problème dans le forum d'AutoCAD 2004, c'est à dire que les hachures ont toutes le même point d'origine (c'est à dire qu'elle parte toute virtuellement du même endroit (par défaut le point 0,0. Je veux changer cette base, je sais qu'on sais le faire car je l'ai déjà utilisé dans autoCAD 2002 et 2004 seulement je me souvient pas de la commande. :mad:

 

PLEASE, HELP ME

MERCI

Je vois parfois dans le regard d'un cheval la beauté inhumaine d'un monde d'avant le passage des hommes.

Posté(e)

Définis la variable 'SNAPBASE avant de mettre en place tes hachures.

 

Un lisp trouvé sur le net pour changer après coup la base des hachures.

 

(defun C:HPSTART ( / ent pt1 pt2)
(setvar "CMDECHO" 0)
(while (not (setq ent (entsel " \nSélectionner le modèle de  Hachure à éditer: "))))
(cond
	((eq (cdr (assoc 0 (entget (car ent)))) "HATCH")
		(setq pt1 (getpoint "\nPoint d'origine à établir aux hachures: "))
		(setq pt2 (list (car PT1) (cadr PT1)))
		(setvar "SNAPBASE" pt2)
		(if (zerop (cdr (assoc 76 (entget (car ent)))))
			(command "_.-HATCHEDIT" ent "" "" "" "" "")
			(command "_.-HATCHEDIT" ent "" "" "" "")
		)
		(command "_.SNAPBASE" "0,0")
	)
	(T (princ "\nL'objet n'est pas une hachure."))
)
(setvar "CMDECHO" 1)
(princ)
)

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

Posté(e)

Salut,

 

Le même, mais avec la possibilité de lancer la commande après avoir sélectionné le motif de hachures:

 

(defun C:HPSTART (/ ent set1 base echo pt1 pt2)
 (if (and (= 1 (getvar "pickfirst"))
   (setq set1 (ssget "_i"))
   (= 1 (sslength set1))
     )
   (progn
     (setq ent (ssname set1 0))
     (sssetfirst nil nil)
   )
   (progn
     (sssetfirst nil nil)
     (while (not ent)
(setq ent
       (car
	 (entsel
	   "\nSélectionnez le motif de hachures à modifier. "
	 )
       )
)
     )
   )
 )
 (setq	base (getvar "snapbase")
echo (getvar "cmdecho")
 )
 (command "_undo" "_begin")
 (setvar "cmdecho" 0)
 (cond
   ((eq (cdr (assoc 0 (entget ent))) "HATCH")
    (setq pt1 (getpoint "\nPoint d'origine à établir aux hachures: "))
    (setq pt2 (list (car pt1) (cadr pt1)))
    (setvar "SNAPBASE" pt2)
    (if (zerop (cdr (assoc 76 (entget ent))))
      (command "_.-HATCHEDIT" ent "" "" "" "" "")
      (command "_.-HATCHEDIT" ent "" "" "" "")
    )
    (setvar "snapbase" base)
   )
   (T (princ "\nL'objet n'est pas une hachure."))
 )
 (command "_undo" "_end")
 (setvar "cmdecho" echo)
 (princ)
) 

Il est donc possible de mettre cette commande dans le menu contextuel des hachures (sélection +clic droit) en modifiant le fichier *.mns courant :

 

***POP509
**OBJECT_HATCH
              [Menu contextuel de l'objet HACHURES]
ID_Hatchedit   [Edition des h&achures...]^C^C_hatchedit 
ID_Hpstart   [&Modifier l'origine]^C^Chpstart 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

merci beaucoup, ça marche :) :)

Je vois parfois dans le regard d'un cheval la beauté inhumaine d'un monde d'avant le passage des hommes.

Posté(e)

 

Bonjour

 

Si vous avez un simple AutoCAD LT vous pouvez aussi venir "placer" l'origine de votre SCU

au coin de l'objet (et avec la rotation voulue) que vous voulez hachurer ...

 

Mais c'est sur, un Programme AutoLisp qui fait le boulot "tout seul", c'est le pied !!! :)

 

Le Decapode

 

Autodesk Expert Elite Team

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é