Aller au contenu

Matt666

Membres
  • Compteur de contenus

    736
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par Matt666

  1. Merci Patrick_35 pour ta réponse.. Je pense que je ne suis pas clair du tout ni précis dans mes demandes... Faudra fignoler mes questions à l'avenir.. Procédure : 1- Commande déplacer "_MOVE" 2- Sélection d'entités avec la commande transparente "'IFE" 3- Les objets sélectionnés par la commande transparente se retrouvent intégrés dans la commande de déplacement 4- Entrée pour valider et finaliser la sélection 5- Point de base 6- Point de destination... En fait quand j'utilise une commande de déplacement, j'aimerais que la commande transparente IFE sélectionne les objets à déplacer (par deux entrées utilisateur) et les incorpore en tant que sélection dans la commande de déplacement ! C'est tout. Le princ n'est qu'une information. voilà.. J'espère que c'est plus clair !! Merci ! A bientot. Matt !
  2. Oui j'ai déjà essayé ça... Mais c'est ma routine qui n'est pas prévue... je pense. Par exemple si je tente une petite routine tout bête : ;;Sélectionner tous les objets à l'intérieur d'une fenêtre (defun c:ife () (sssetfirst nil (setq a (ssget "W" (setq pt1 (getpoint "\nPremier coin : "))(getcorner pt1 "Deuxième coin :")))) (if a (princ (strcat "\n" (itoa (sslength a)) " objets sélectionnés."))) (princ) ) t bien cette commande ne fonctionne pas au sein d'une autre. Voilà. Pourrais-tu m'aider ? (comme d'habitude, d'ailleurs :) ) Merci encore à toi pour la rapidité de ta réponse et pour ton savoir partagé ! A bientot. Matt.
  3. Bonjour à tous. Savez-vous comment créer une routine qui servira de commande transparente, c'est à dire qui peut être utilisée alors qu'une autre commande est en cours ? Par exemple geler un calque alors qu'on est dans la commande ligne... Ou alors appeler une routine de sélection spéciale lorsque on doit sélectionner des entités à déplacer ??? En fait j'aimerais que la routine créée fonctionne de la même manière que par exemple le "_all", qui sélectionne toutes les entités du plan lors de la sélection au sein même d'une commande... Voilà merci beaucoup ! A bientot. Matt.
  4. Matt666

    Ssget...

    Ok merci pour ta réponse. Petite suggestion : Ce serait pas mal (pour ceux qui le peuvent) de tenter de créer des tutoriaux sur ces fonctions essentielles du lisp... Je sais pas ce que vous en pensez, mais pour un forum tel que celui ci, ce serait la classe ! Fin voilà... Je vais peut-être commencer de mon coté, histoire de lancer le truc.... A+ ! Matt.
  5. Matt666

    Ssget...

    Bonjour ! J'aimerais avoir quelques explications sur la fonction SSGET, en particulier les conditions... J'ai vu dans ce forum un lisp de Bred ici, et j'avoue ne pas comprendre... Par exemple je veux sélectionner tous les cercles de moins de 15 unités de rayon.. Je bloque.. Merci d'avance pour vos réponses !! A bientôt. Matt.
  6. bonjour le souci est le suivant : un dessin enregistré sous Autocad 2004 ne veux pas s'ouvrir sous Autodesk Architectural Desktop 2005 et me donne le message d'erreur Unhandled c0000096h Exception at 7c20c15eh Merci de m'aider pour ceux qui aurait une idée sur le sujet ciao
  7. Eh ben... J'avais compris la première routine, assez simple, mais alors celle là j'avoue que je suis complètement largué !!! Vache... Impressionnant, (gile) !! Bah oui génial ça fonctionne parfaitement.. Maintenant si tu veux aller encore plus loin, il faudrait pouvoir utiliser cette fonction comme un accrochage, au sein même d'une commande... Par exemple on tape une commande ligne, on en créé trois ou quatre puis on arrive à vouloir utiliser cette commande.. Peut-on la faire fonctionner directement au sein de la commande ??? Mais j'en demande trop, c'est exactement ce que je voulais, même si "l'énoncé" de base n'était pas très clair (désolé patrick_35). Encore bravo et un jour peut être j'arriverais à la cheville de vos compétences !! Adtal as we say here..
  8. Parfait Bonuscad c'est exactement ce que je voulais merci ! Maintenant, il faut changer qqs petits trucs, mais c'est une excellente base !! Bred, en fin de compte le 4 est une entrée utilisateur, laisser libre ce dernier point. On peut saisir la Longueur ou donner un point graphiquement du moment que la ligne commence perpendiculairement à la ligne sélectionnée... Patrick_35 c'est presque ça aussi, sauf que la routine ne laisse pas le choix de la longueur. Il faut que j'étudie ton lisp, il y a l'air d'y avoir de bonnes choses aussi merci ! Merci à vous trois vous n'avez vraiment pas trainé, comme d'habitude ! Je vous laisserai le code si ça vous intéresse... A bientot ! Matt.
  9. Whouaaaa chu ceinture orange !!!! Tation...
  10. Bonjour à tous ! G une petite demande à vous faire. En fait c'est surtout pour voir comment les maîtres du lisp ici présents sur ce forum feraient pour créer une routine comme celle qui vient... Je ne sais pas si ça existe sur Autocad nouvelles versions... Sachez que j'utilise BricsCad, un clone d'Autocad (moteur Intellicad..) qui n'accepte pas les VL, VLA, VLAX... Et quelques trucs du genre "ok_button" et tous ceux qui lui ressemblent (cancel machin...) Voici donc : Une routine qui permettrait de tracer une ligne perpendiculaire à partir d'un objet précédemment sélectionné et à partir d'un point sélectionné... Procédure : 1- On choisit une entité 2- Le point de départ de la ligne 3- La ligne se créée avec une direction vérouillée à la perpendiculaire de l'entité sélectionnée... Voilà. Je n'ai pas la moindre idée de comment faire cette routine... Si ce n'est de basculer le SCU, mais ce n'est pas invisible pour l'utilisateur... En plus si on a coché l'option de basculement du dessin lors de la modification du SCU, ça fout un peu la zone... Voilà... Maîtres du lisp, à vos claviers, je vous donne deux jours :) Nan, mais si vous pouviez me donner quelques conseils de départ, ce serait assez.... Cool ? Merci les gens !!! A bientot. Matt.
  11. Matt666

    DCL_Logo

    Ok merci ! J'ai résolu mon PB... C'était un problème de couleur... La commande MCLICHE ne prend pas en compte les couleurs RGB, et le loo vectorisé en regorge ! Voilà, donc passage aux couleurs autocad (qui rend le logo un peu plus moche), et les couleurs apparaissent ! Merci pour vos conseils ! A bientot. Matt.
  12. Matt666

    DCL_Logo

    Bon bah voilà, c'est fait... Mais je suis pas satisfait du résultat ! (quel chiant suilà...) En fait j'ai vectorisé le logo parce que les clichés ne donnaient pas grand chose. Pour la vectorisation je suis passé par le logiciel de DAO, et pour remplir les contours, utilisation de hachures. Sauf que les hachures ne sortent pas du tout lors de la création du cliché ! Autocad ou BricsCad créent le cliché d'un logo non-rempli... Donc je suis perdu (une fois de plus...) J'ai beau chercher des infos sur Internet, je ne trouve rien. Donc je m'en remets à vous ultimes programmateurs lispiens. Peux-t-on insérer des images JPEG ou BMP dans une boîte de dialogue ? Sinon, comment peut-on faire en sorte qu'un slide ne doit pas filaire, mais qu'on voit les hachures de remplissage ? Créer des solides ?? Je vois pas... Merci beaucoup ! A bientot. Matt.
  13. Matt666

    DCL_Logo

    En plein dedans.... Merci Patrick_35, j'essaie ça au plus vite ! A bientot... Matt. Je sais pas qui a inventé ce forum, mais c'est une bonne idée...
  14. Matt666

    DCL_Logo

    Bonjour !! Eh oui, encore une question... Décidément, comment je faisais sans ce forum !! Je tiens d'ailleurs à tous vous remercier pour votre aide et vos conseils, c'est vraiment bonnard, comme on dit par chez nous. Ceci n'est pas du lèche-botte, c'est juste réaliste et objectif. Bref. Problème : J'aimerais insérer le logo de ma société dans une boîte de dialogue "a propos". Question : comment qu'on fait ?? Je vois bien qu'il faut utiliser un "image" ou "image_button" dans le dcl, et puis dans le lisp un truc du genre vector_image, voire slide_image (mais là faut vectoriser le logo.. Aille.) Bref le logo est une image avec de beaux pixels, et j'aimerais la voir dans cette boîte de dialogue "A propos"... Voilà voilà. Je compte sur vous (gile, patrick_35 et tous les autres), mais attention, PAS DE VLmachin, siouplé ! Merci d'avance pour cette future réponse allant de soi ! Désolé, mais on est vendredi ! A bientôt ! Matt.
  15. Aha !! Aaaaaaah !! Alors ça ce serait assez dément !! Surtout les réacteurs... Terrible ! J'attends ça avec impatience.... Merci Gile pour l'info ! A+. Matt.
  16. Ah oui ok... Effectivement !! Merci du conseil gile..
  17. La variable nomutt ??? Connais pas celle là !! Je vais tenter, merci !! Sinon la routine un peu améliorée... ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; Layiso Isole les calques sélectionnés (defun c:layiso () (setq temperror *error* *error* myerror) (setvar "cmdecho" 0) (setq clayer (getvar "clayer")) (if (eq (ssget "i") nil) (progn (princ "\nSélectionner des objets sur les calques à afficher: ") (setq P (ssget)) ) (setq p (ssget "i")) ) (setq cntr 0 lis '() isol "" freez "" la nil cla nil) (if P (progn (repeat (sslength p) (setq lis (cons (setq clay (cdr (assoc 8 (entget (ssname p cntr))))) lis)) (setq cntr (1+ cntr)) ) (setq lis (remove-doubles lis)) (foreach pt lis (setq isol (strcat pt "," isol))) (if (null (string-search clayer isol nil))(command "-layer" "d" clay "")) (setq isol (substr isol 1 (1- (strlen isol))) la (tblnext "layer" t)) (while la (if (/= (cdr (assoc 2 la)) (getvar "clayer"))(setq freez (strcat (cdr (assoc 2 la)) "," freez))) (setq la (tblnext "layer")) ) (setq freez (substr freez 1 (1- (strlen freez)))) (command "-layer" "g" freez "l" isol "") )) (princ) ) A bientot les gens !! Matt.
  18. J'ai trouvé un système qui permet de détourner le problème... Il vaut ce qu'il vaut, mais ça fonctionne... Bon c'est fait avec les moyens du bord, donc pas de rigolades quant au visuel du code !! Dites-moi ce que vous en pensez ! N'hésitez pas à me dire si on peut faire autrement ! (defun layiso () (setvar "cmdecho" 0) (setq clayer (getvar "clayer")) (if (eq (ssget "i") nil) (progn (princ "\nSélectionner des objets sur les calques à afficher: ") (setq P (ssget)) ) (setq p (ssget "i")) ) (setq cntr 0 lis '() isol "" freez "" la nil) (if P (progn (repeat (sslength p) (setq lis (cons (setq clay (cdr (assoc 8 (entget (ssname p cntr))))) lis)) (setq cntr (1+ cntr)) ) (if lis (setq lis (remove-doubles lis))) (foreach pt lis (setq isol (strcat pt "," isol))(if (eq clay pt)(setq cla T))) (if (null cla) (command "-layer" "d" clay "")) (setq isol (substr isol 1 (1- (strlen isol))) la (tblnext "layer" t)) (while la (if (and (/= (cdr (assoc 2 la)) clay)(/= (cdr (assoc 2 la)) clayer)) (progn (setq nonn nil) (foreach pt lis (if (eq pt (cdr (assoc 2 la))) (setq nonn T))) (if (null nonn)(setq freez (strcat (cdr (assoc 2 la)) "," freez))) )) (setq la (tblnext "layer")) ) (setq freez (substr freez 1 (1- (strlen freez)))) (command "-layer" "g" freez "l" isol "") )) (princ) ) Cette routine fait appel à deux routines de (gile) : "remove-doubles" et "remove". Un grand merci à (gile), d'ailleurs, d'avoir proposé des routines pour pallier les manques d'autolisp et pour faciliter le travail... A bientot ! Matt.
  19. Merci bonuscad pour ce conseil.. Cela ne fonctionne pas, la commande génère toujours le même message d'erreur. Mais bien tenté ! A bientot. Matt.
  20. Le problème c'est que je ne peux pas lire les fonctions de visual lisp.. J'aimerais bien moi, mais faut voir ça avec les développeurs de BricsCad... Non, il me faudrait (si possible, bien entendu) une méthode en autolisp pur permettant de cacher les messages commande... Et une méthode rapide, si possible voilà.... Je vais tenter de passer directement par la table LAYER mais j'ai peur de perdre en rapidité d'exécution... Merci Patrick_35 pour ta réponse rapide et intéressante, je la garde sous le coude... Y en a un peu marre de travailler sur des clones de logiciels valables !! A bientôt. Matt.
  21. Oui, effectivement c'est une solution !
  22. Bonjour ! J'ai une petite question toute bête... Ne riez pas quand vous aurez fini, parce que c'est tout simple... Voilà : J'ai créé une routine il y a longtemps permettant d'isoler un calque. Sur AutoCad elle existe dans le menu express, mais pas dans =certains autres logiciels !! La routine demande à l'utilisateur de choisir les objets sur le ou les calques à isoler (ssget) Ensuite un petit (repeat) du nombre d'entités sélectionnées pour rappatrier les noms des calques. Après ça, un petit traitement pour supprimer les doublons (à ce propos merci (gile) d'avoir trouvé une méthode 10 fois plus simple pour ça !!!) Et pour finir, une commande calque. Je lui demande de GELER (et pas éteindre) tous les calques puis de dégeler ceux de la sélection utilisateur. Le fait de geler tous les calques génère un message du genre : "Le calque "nomcalque" est le calque actif. Il ne peut être gelé." Et ça, j'aimerais bien le masquer !! Comment feriez-vous, professionnels du développement entre parenthèses ??? Merci d'avance ! A bientot. Matt.
  23. Matt666

    (routine

    Oui d'accord, en fin de compte on créé nos propres routines lisp, qu'on peut utiliser quand on veut, à la seule condition de l'avoir chargé (forcément). Ce qui m'intrigue, c'est comment la routine reconnait des variables qu'elle n' a jamais défini !!! A part après la définition du nom de la routine (defun c:name (arguments)), je sais pas comment la routine peut reconnaitre une variable.. Mais je crois que c'est ça... En fait on définit les arguments au début de la routine.... Cool, ok c'est bon ! Merci de ta réponse !! Bonne journée. A bientot ! Matt.
  24. Matt666

    (routine

    Bonjour ! voilà j'ai une question pour vous autres maîtres lispien.... Le problème c'est que je ne sais pas comment formuler ma question !! Deux points, ouvrez les parenthèses : J'ai vu lors de l'utilisation de plusieurs routines qu'on pouvait directement donner une variable, ou un texte, ou une liste après avoir écrit la routine... C pas très clair ! Exemples : ([Nom de la routine] "texte") (filename-base "c:\\acadwin") (y en a qui se reconnaitront, ou plutôt qui reconnaitront leurs routines) ([Nom de la routine] liste) (remove_doubles '(0 1 2 1 3 0)) Bon... C'est bien beau tout ça, mais ça me dépasse complètement ! Par exemple j'aimerais bien faire la même chose avec un pickset... genre (hachure (ssget)) Voilà voilà... J'entends des ricanements derrière.... Didon. Si vous pouviez m'éclairer un peu, ce serait pas mal sympa de votre part ! Merci d'avance, et adtal comme on dit par chez nous ! Matt.
  25. Rooh la classe chu passé ceinture jaune !! Tout ça en ne posant que des questions (débiles parfois... souvent !!)... Comme celle à laquelle tu viens de répondre, gile !!!! Merci, ça fonctionne bien maintenant. Ta routine "filename-mktemp" est très pratique merci !!! Maintenant, j'ai encore autre chose à te demander.... Décidément.. Le bougre.. Peut pas se débrouiller tout seuf sui là... Relou. Voilà : J'ai ouvert 5 ou 6 fois la routine, ce qui a généré 5 ou 6 fichiers DCL différents ! La ligne de code est celle-ci : (setq tmp-dcl (filename-mktemp "incmt" "c:\\program files\\Bricscad\\Bricscad" ".dcl") file (open tmp-dcl "w") ) Ce que j'aimerais bien (tu dois t'en douter, je pense) ce serait d'avoir une condition à cette routine ! Genre si un "incmtXXX.dcl" existe, réutiliser celui-ci ! Voilà... Ca doit pas être bien compliqué, mais bon j'ai un pb de compréhension dès que la routine n'est pas moi... D'ailleurs ta routine est assez ardue, la bougresse ! En fait je ne savais pas qu'on pouvait donner une variable à une fonction ! C'est assez génial comme truc.... Sinon g un peu étudié les réacteurs visual lisp, et j'avoue être très très malheureux de ne pas avoir la possibilité de les utiliser dans BricsCad... Sniff. Voilà. Merci pour tout, c'est vraiment cool d'aider comme ça ! bravo, bravo, et bravo ! Matt.
×
×
  • 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é