miamar Posté(e) le 20 septembre 2004 Posté(e) le 20 septembre 2004 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 xtlstuflag zflag ans) (setq na3 na2na (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@+
bonuscad Posté(e) le 20 septembre 2004 Posté(e) le 20 septembre 2004 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
bonuscad Posté(e) le 20 septembre 2004 Posté(e) le 20 septembre 2004 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
miamar Posté(e) le 22 septembre 2004 Auteur Posté(e) le 22 septembre 2004 Salut Merci beaucoup Bonuscad, maintenant ça marche impecablement. Une dernière chose ça concerne la tolérance d'erreur des courbes, comment peut-on à présent la controler. Merci beaucoupMerci à Patrick_35 aussi@+
bonuscad Posté(e) le 23 septembre 2004 Posté(e) le 23 septembre 2004 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
miamar Posté(e) le 23 septembre 2004 Auteur Posté(e) le 23 septembre 2004 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@+
miamar Posté(e) le 23 septembre 2004 Auteur Posté(e) le 23 septembre 2004 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.
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