Aller au contenu

Superhachures


miamar

Messages recommandés

Bonjour tout le monde

 

Voilà j'ai déjà posé cette question dans le forum autoCAD 2005, j'ai eu une réponse qui n'est pas complète, ( je saluts Patrick à l'occasion pour sa première réponse ), je réitère la demande ici sachant que c'est ici qu'elle devrait être posée.

 

l s'agit d'une simplification de la commande Superhachures. Je n'ai besoin que du bloc fichier, ni d'image ni de xrefs... je veux que la commande Superhachures saute directement vers le bloc (et surtout le bloc fichier) de sorte à ce que la commande demande en ligne de commande et du premier coup le nom du fichier à utiliser comme motif de hachurage, le reste de la routine sera inchangée. Donc le travail sera de sauter les fonctions htype_info et dd_htype_info.

 

Patrick_35 avait répondu comme suit

 

Tu vas dans la partie htype_info

 

(defun htype_info ( / htype na flag flag2)

 

(while (not flag2)

;;(if (setq htype (dd_htype_info))

(if (setq htype '("Block" nil))

 

et ensuite dans la partie get_insert_info

 

(defun get_insert_info ( na2 htype / na na3 fna bna blk lst2 xtlst

uflag zflag ans

)

 

(setq na3 na2

na (entlast)

);setq

(setvar_rt)

(setq ans "No")

(while (equal ans "No")

(setq ans nil);setq

(if (equal htype "Block")

(progn

(if (not na2)

(progn

;; (ddins2)

(command "_.insert" (getstring "\nfichier : ") "0,0" "1" "1" "0")

 

fin de citation.

 

En fait la routine marche mais à la fin elle ne donne pas le même résultat. vous pouvez de toute façon la tester.

 

la commande remplit en fait tout le contour sauf les endroits ou le motif de base toucherait ou dépasserait le contour, là c'est laissé vide.

 

je crois que du code à été ignoré du côté de dd_htype_info.

 

Merci pour votre aide

@+

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Encore juste une petite modif et cela devrait aller! ;)

 

original:

(defun htype_info ( / htype na flag flag2)

(while (not flag2)
(if (setq htype (dd_htype_info))
   (progn
    (setq    na (cadr htype)
          htype (car htype)
    );setq

 

modifié:

(while (not flag2)
(if (setq htype '("Block" nil))
   (progn
(if (not #sprhatch_type) (setq #sprhatch_type "Block"));if
    (setq    na (cadr htype)
          htype (car htype)
    );setq

 

Ormis cela, les modifs précédentes de Patrick 35 devraient être bonne (pas testé)

 

En tout ca de rajouter (if (not #sprhatch_type) (setq #sprhatch_type "Block"));

permet de remplir avec les coupes de bloc.

 

Bonne chance

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

Salut,

 

Encore juste une petite modif et cela devrait aller! ;)

 

original:

(defun htype_info ( / htype na flag flag2)

(while (not flag2)
(if (setq htype (dd_htype_info))
   (progn
    (setq    na (cadr htype)
          htype (car htype)
    );setq

 

modifié:

(while (not flag2)
(if (setq htype '("Block" nil))
   (progn
(if (not #sprhatch_type) (setq #sprhatch_type "Block"));if
    (setq    na (cadr htype)
          htype (car htype)
    );setq

 

Ormis cela, les modifs précédentes de Patrick 35 devraient être bonne (pas testé)

 

En tout ca de rajouter (if (not #sprhatch_type) (setq #sprhatch_type "Block"));

permet de remplir avec les coupes de bloc.

 

Bonne chance

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

Intervenir au même endroit,

(defun htype_info ( / htype na flag flag2)
(while (not flag2)
(if (setq htype '("Block" nil))
	(progn
		(if (not #sprhatch_type) (setq #sprhatch_type "Block"));if
		(setq na (cadr htype)
			htype (car htype)
		);setq
           (if #clipitres
     	         (setq a #clipitres)
           	   (setq a (acet-geom-pixel-unit));setq
          		);if
		(setq #clipitres a)
		(initget 6)
		(setq a (getreal (strcat "Tolérance d'erreur des courbes <" (ai_rtos #clipitres) ">: ")))
		(if (not a) (setq a #clipitres))

 

Note: Je ne trouve pas très judicieux de modifier une fonction des express, car tes modifs auront peu de chance d'être portable sur une version ultérieure des express.

 

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

Salut

 

Merci beaucoup pour tout.

Au fait pour les versions ultérieures, dans quel sens les modifications ne seraient pas portables sur les versions ultérieures, y aurait-il du changement dans le code ou dans les commandes, je ne crois pas. Mais bon moi actuellement sur la version 2000, et ça mesuffit pour ce que je fais, d'ici là on verra.

 

Bonne continuation et merci beaucoup

@+

Lien vers le commentaire
Partager sur d’autres sites

Salut Bonuscad

 

J'ai testé la dernière modif elle tourne en rond comme s'il y a une boucle non fermée, elle demandetolérance d'erreur des courbes, puis point d'insertion, puis echelle x et y, et angle de rotation, et elle redemande Tolérance d'erreur des courbes à nouveau.

 

le code que j'ai rajouté c'est bien :

 

 

(if #clipitres

(setq a #clipitres)

(setq a (acet-geom-pixel-unit));setq

);if

(setq #clipitres a)

(initget 6)

(setq a (getreal (strcat "Tolérance d'erreur des courbes <" (ai_rtos #clipitres) ">: ")))

(if (not a) (setq a #clipitres))

 

 

j'ai rajouté après ::

 

(setq na (cadr htype)

htype (car htype)

);setq

 

Autre chose encore :

 

1- en modifiant le ddins2 par la commande _.insert, au moment de demander le point d'insertion, le motif n'apparait pas avec le curseur comme avec le ddins2, idem pour echelle X et echelle Y. Comment y remédier.

 

2- quand la commande demande echelle Y comment rajouter "l'astuce utilisez l'echelle en X" comme suit: Spécifiez l'echelle en Y, ou , histoire d'utliser l'echelle X comme valeur par défaut pour l'echelle en Y.

 

3- J'ai fait une autre astuce pour garder dans mon fichier sprhatch.lsp l'ancienne commande Superhatch inchangée, j'ai fait une copie de cette commande depuis le defun c:superhatch jusqu'à la fin du defun, que j'ai renommé monmotif ( c à dire defun c:monmotif...) puis j'ai fait la même chose pour htype_info que j'ai renommé la copie en htype_info2, et idem pour get_insert_info. J'ai modifié bien sur les appels de ces fonctions dans "monmotif" et dans "htype_info2". Mais quand je relance AutoCAD et je tape en ligne de commande Monmotif, j'ai le message : commande inconnue, alors que quandje tape Superhatch les outils express sont chargés et initialisés. Comment remédier à celà de sorte à ce que je ne sois pas obligé à chaque lancement d'AutoCAD de taper la commande Superhatch avant la commande Monmotif.

 

 

Merci beaucoup pour ton aide.

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é