Aller au contenu

marionsname

Membres
  • Compteur de contenus

    112
  • Inscription

  • Dernière visite

Tout ce qui a été posté par marionsname

  1. marionsname

    Commande Extrim

    Bonjour à tous et merci par avance. Merci Bonuscad, Voilà un exemple (complexité moyenne) fichier exemple.dwg, j'y ai également joint les deux dessins qui sont servi comme hachurage pour d'eventuels essais. http://dl.free.fr/rlTc2acsH Merci infiniment gile, super :) . Il serait judicieux de le faire aussi pour inv_sel ssof sse ou de réflechir à inclure les différents modes de sélection dans une seule commande avec diverses combinaisons comme options de la ligne de commande. Et aussi de n'appliquer ceci eventuellement que pour un jeu de sélection. Pour plutard peut être ;) A bientot [Edité le 11/11/2008 par marionsname]
  2. marionsname

    Commande Extrim

    Merci Bonuscad, Effectivement Extrim fait pas mal de boulot, mais ça reste une galère, d'où le besoin d'automatiser. Car je suis le plus souvent obligé de fermer tous les calques qui contiennent des objets (autres que mes dessins de hachurage) qui coupent le contour... etc. Je comprends que c'est une demande particulière, mais je suis étonné que les gens qui utilisent les superhachures ne sont pas confrontés à ce problème. Je ne sais pas ce que tu appelles structuré, en tous cas tous mes dessins de hachurage se trouvent tjs dans le même calque. Bien dommage. Mois je travaille dans la menuiserie. Les routines de gile sont aussi très utiles, j'ai testé, mais pour automatiser! J'ai 2 questions : 1- quel est le moyen pour sélectionner la zone de hachurage juste après l'exécution de la commande superhachures? 2- Comment sauvegarder le contour juste après le messagé "Spécifiez une option [options Avancées] :"? une question pour gile : comment faire pour que ssoc ne s'applique qu'à une calque donné? Si vous voulez que je vous envoie un fichier exemple, si necessaire vous me le dites. Je continue de chercher. Merci beaucoup
  3. marionsname

    Commande Extrim

    Bonjour Bonuscad, Merci pour les indications précédentes. J'ai lu tous les msg, et je n'ai pas trouvé de solution, mais des idées oui. Miamar, si tu as résolu ton problème, je voudrais bien que tu m'aides. J'en ai vraiment besoin. Bonuscad, Mon niveau dans lisp est bien trop inférieur sinon basic, je suis incappable de faire ça tout seul, mais toi je pense que tu peux facilement le faire :) . L'idée serait de : - prendre le dernier objet crée (hachure de remplissage), de le décomposer et de supprimer tous les objets de cette sélection qui sont entièrement à l'extérieur du contour (polyligne) via ssoc et inv_sel de gile par exemple (je ne sais pas si ce lisp de gile peut agir sur un jeu de sélection seulement!) - d'appliquer la commande Extrim sur les objets qui restent (du jeu de sélection) en choisissant comme frontière le contour de sélection. Comment prendre ce contour? Aucune idée, peut être en agissant sur le lisp des superhachures, en rajoutant une commande contour qui permet de créer une polyligne en piquant un point. Bonuscad, si tu peux m'aider la dessus, ce serait inoubliable. Je continue de charcher ailleurs, si je trouve quelque chose, je vous ferais signe. Merci beaucoup :P [Edité le 9/11/2008 par marionsname]
  4. marionsname

    Commande Extrim

    Merci Bonuscad, Je vais rechercher sur ce forum pour voir ce qui en est. Pour QBrick, je crois pas besoin puisqu'il y a la commande Extrim qui ajuste les objets sur un contour, par contre, il fau un lisp de sélection un peu perfectionné. Je vais voir les lisp de gile. Merci
  5. Bonjour à tous, J'utilise la commande Superhachure (qui n'a pas évolué depuis la version 2000, j'ai verifié sur la 2009) et qui m'est très utile, mais comme j'exporte le plus souvent mes dessins vers des logiciels comme Corel Draw et Illustrator, je suis obligé de décomposer la zone de remplissage de superhachure et d'utiliser la commande Extrim pour ajuster les objets (le plus souvent des lignes) et de supprimer toutes les lignes à l'extérieur du contour de remplissage avant d'exporter vers Corel Draw ou illustrator, ce qui me triple le temps de travail. Dés fois meme ca devient une galère. Est-ce que quelqu'un a une solution à cette question, via une routine lisp ou une adaptation du lisp des superhachures. Merci beaucoup pour votre aide :)
  6. Merci merci merci Bonuscad, ça marche nickel :D .
  7. Oui tjs sur la 2000 :) plus rapide et me satisfait à 90% Sur la version 2000, PEDITACCEPT existe bel et bien ;) , mais par contre l'option Multiple Non. [Edité le 7/11/2008 par marionsname]
  8. Je viens de vérifier sur un autre poste où il y a AutoCAD 2009, ça marche impec cette option Multiple de PEDIT. Sur 2000 je ne sais pas comment faire, mais bon. Merci gile
  9. Merci gile, Je ne vois pas d'options multiple dans PEDIT, et le lisp fonctionne comment. Je tape mjoin, je choisis toutes les lignes et entrée, mais les ligne ne sont pas jointes. Je bosse sur AutoCAD 2000 [Edité le 7/11/2008 par marionsname]
  10. Bonjour à tous, Je cherche une routine qui permet de convertir un ensemble de ligne qui se joignent bout a bout en multiligne, ca dire sans passer par PEDIT, joindre ...etc. J'ai trouvé un lisp qui convertit les polyligne en multiligne qui marche impeccablement pas ne répond pas à mon besoin car je veux aussi traiter un ensemble de polyligne en meme temps. Je ne sais pas comment poster un fichier ici, sinon je vous aurais montrer un exmple. Merci pour votre aide
  11. oh la la une erreur de frappe. marche bien maintenant, merciiiiii
  12. effectivement, vous avez raison, j'ai rectifié et fait comme vous avez indiqué (defun c:zzz () (setq var1 "25659854752158" var2 (atoi (substr var1 1 3)) ) (setq var3 (dec2Hex var2)) ) (defun dec2Hex (INum / TmpNum TmpVal) (setq HexVal "" TmpNum Num ) (while (< 0 TmpNum) (setq TmpVal (rem TmpNum 16) HexVal (strcat (if (< TmpVal 10) (chr (+ 48 TmpVal)) (chr (+ 55 TmpVal)) ) HexVal ) TmpNum (/ TmpNum 16) ) ) HexVal ) est-ce le problème vient de l'entier car j'ai var3 "" (chaine vide)[Edité le 11/10/2008 par marionsname] [Edité le 11/10/2008 par marionsname]
  13. Bonjour à vous tous ici présents. une vielle routine qui convertit du decimal à l'hexa : (defun Dec2Hex (Num / HexVal TmpNum TmpVal) (setq HexVal "" TmpNum Num ) (while (< 0 TmpNum) (setq TmpVal (rem TmpNum 16) HexVal (strcat (if (< TmpVal 10) (chr (+ 48 TmpVal)) (chr (+ 55 TmpVal)) ) HexVal ) TmpNum (/ TmpNum 16) ) ) HexVal ) modifié legerement pour obtenir une autre variable var3 tout en gardant HexVal : (defun Dec2Hex (Num / HexVal TmpNum TmpVal) (setq HexVal "" TmpNum Num ) (while (< 0 TmpNum) (setq TmpVal (rem TmpNum 16) (progn HexVal (setq var3 HexVal)) (strcat (if (< TmpVal 10) (chr (+ 48 TmpVal)) (chr (+ 55 TmpVal)) ) HexVal ) TmpNum (/ TmpNum 16) ) ) (progn HexVal (setq var3 HexVal)) ) que j'utilise à l'interieur d'un code du genre : (dec2Hex var2) où "var2" est un entier recupéré par (setq var2 (atoi (substr var1 1 3))) var1 est une chaine. il me sort "erreur:type d'argument incorrect: stringp 0" Je pense que ça coince au niveau de cette fonction dec2Hex car quand je tape !var3 ca me donne nil et quand je retappe le même code càdire (dec2Hex var2) ca marche et var3 contient la valeur juste. je me demande ce problème est du à quoi? merci
  14. Salut :) est-ce que le cmdnames ne s'applique qu'aux commandes d'AutoCAD et pas au fonctions ? Merci
  15. ça à l'ai pas compliqué comme même, j'ai parcouru l'aide mais j'ai rien trouvé. dommage que cela ne soit pas possible en lisp. merci Patrick ;)
  16. désolé F1 au lieu de essai ça ne marche ni avec ça ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F1 () (command "_line") (F2) );defun F1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F2 () (command "_circle") );defun F2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:000 () (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'F1))) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction c:000 par ESC") (princ) );if ) );defun c:000 ni comme ça ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F1 () (vl-catch-all-apply 'vl-cmdf (list "_.line")) (F2) );defun F1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F2 () (vl-catch-all-apply 'vl-cmdf (list "_.circle")) );defun F2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:000 () (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'F1))) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction c:000 par ESC") (princ) );if ) );defun c:000 en fait (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'F1))) ça donne comme resultat T pour rep et je ne vois pas l'utilité du 'vl-cmdf car ce dernier n'a d'utilité que si la fonction en question contient des arguments qui peuvent générer des erreurs, ce n'est pas le cas d'ECHAP. Merci
  17. ça ne marche ni avec ça ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F1 () (command "_line") (F2) );defun F1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F2 () (command "_circle") );defun F2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:000 () (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'essai))) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction c:000 par ESC") (princ) );if ) );defun c:000 ni comme ça ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F1 () (vl-catch-all-apply 'vl-cmdf (list "_.line")) (F2) );defun F1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun F2 () (vl-catch-all-apply 'vl-cmdf (list "_.circle")) );defun F2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:000 () (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'essai))) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction c:000 par ESC") (princ) );if ) );defun c:000 en fait (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'essai))) ça donne comme resultat T pour rep et je ne vois pas l'utilité du 'vl-cmdf car ce dernier n'a d'utilité que si la fonction en question contient des arguments qui peuvent générer des erreurs, ce n'est pas le cas d'ECHAP. Merci
  18. dans le cas que j'ai donné, est-ce à l'interieur de la commande ligne ? si oui ça va être compliqué. sinon ne serait-il pas possible de gérer ça à l'intérieur de la commande c:essai? Merci Patrick
  19. salut Patrick, je l'ai fait comme ça mais ça ne marche pas (defun essai () (command "_line") (princ) );defun essai (defun c:000 () (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'essai))) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction c:000 par ESC") (princ) );if ) );defun c:000
  20. Merci beaucoup Patrick, dans le premier exemple cette routine ne s'applique qu'à cette simple fonction de saisie de texte. mes fonctions sont plus complexes. Est-il possible d'ecrire du code qui s'applique à 1 ou plusieurs fonctions c: au moment de l'interruption de son exécution par Echap. ce code peut-il etre valable (while (vl-catch-all-error-p (setq rep (vl-catch-all-apply 'fonction c:))) Merci encore une fois
  21. Salut Patrick, je suppose la fonction suivante : (defun c:essai () (setq n (getstring "Tapez votre nom : ")) (setq p (getstring "Tapez votre prénom : ")) (princ (strcat "Votre nom complet est : " n " " p)) (princ) );defun je voudrais que si j'appuie sur ECHAPP en cours d'exécution soit au premier getstring soit au deuxième que la fonction c:essai exécute une tache en l'occurence affiche un message. avec ce qui suit ça ne marche pas (setq rep (vl-catch-all-apply 'essai)) (if (member (vl-catch-all-error-message rep) (list "Fonction annulée" "Function cancelled")) (princ "\nVous sortez de la fonction par ESC") (princ) );if (defun c:essai () (setq n (getstring "Tapez votre nom : ")) (setq p (getstring "Tapez votre prénom : ")) (princ (strcat "Votre nom complet est : " n " " p)) (princ) );defun comment faire? Merci Patrick
  22. est-ce que ces fonctions s'appliquent aux évenements comme ECHAPP. Si j'ai bien compris ces fonctions s'appliquent à des fonctions dont le résultat peut être une erreur comme l'exemple dans l'aide de la division par zéro, et c'est surtout pour afficher des messages d'erreurs. ce que je veux quand la fonction est interrompue par un évenement quelconque comme ECHAPP qu'elle fasse la copie dont j'ai parlé. comment le faire avec ces deux fonctions. merci
  23. Bonjour à tous, j'ai une fonction qui appelle d'autres fonctions comme suit : (defun c:f1 () ... (f2) ... ) (defun f2 () ... (f3) ... ) (defun f3 () ... (f4) ... ) et ainsi de suite. la fonction *error* est redéfinie différemment dans certaines des fonction (f2) (f3) (f4).... lorsque j'appuie sur ECHAPP ou sur ANNULER en cours d'exécution de la fonction c:f1 je voudrais qu'un fichier soit copié dans un endroit spécifique, le chemin du fichier original étant stocké dans une variable. quand je définie une fonction *error* à l'intérieur de la fonction c:f1 et comme la fonction *error est redefinie dans une des fonctions appelée, elle ne marche pas. y-a-t il d'autre alternative à la fonction *error* ? Merci
  24. ça marche nickel merci gile :)
  25. merci gile, je vais tester tout ça. merci infiniment et bon courage
×
×
  • 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é