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. Matt666

    unitée metre

    Salut. - Tu gardes le dossier des icones tel quel - Tu laisses le fichier rb en dehors. - Tu copies le tout directement dans C:\Program Files\Google\Google SketchUp 7\Plugins - Tu redémarres SketchUP - Tu vas dans Vue / Barre d'outils / Toggle units. ;) [Edité le 2/3/2009 par Matt666]
  2. Matt666

    unitée metre

    Salut ! Désolé pour la réponse tardive... Tu as ce petit plugin, créé avec mes petites mains, qui affiche une barre d'outil permettant de changer l'unité du dessin rapidement. Tout dézipper, et installer le tout dans le dossier plugins. Attention cela ne fonctionne pas (enocre) avec les mac... ;)
  3. Ça, ça va péter...
  4. Matt666

    Centre cercle

    Salut ! Merci d'avoir osé ! ;) Si tu regardes ici, tu verras que le code DXF correspondant au centre du cercle est le 10. Pour retrouver les codes dxf d'une entité, il faut passer par un entget. Un entget sur quoi ? Une entité. Pour sélectionner une entité, faut passer par un (car (entsel msg)). Ce qui donne un truc du style : (setq ent (car (entsel "\nSélectionner le cercle : "))) ensuite tu n'as plus qu'à retourner le code 10 de l'entité, soit : (setq p1 (cdr (assoc 10 (entget ent)))) Tout ça pour te dire comment retrouver le centre d'un cercle. Cependant tu n'as pas du tout besoin de ça pour zoomer sur le centre d'un cercle ! La commande zoom contient une option "objet". Tu n'as qu'à sélectionner l'entité sur laquelle zoomer, et tout se fait tout seul !! [Edité le 23/2/2009 par Matt666]
  5. Ah oui, pas bête ! Je n'y avais pas songé ! Merci, cela me parait beaucoup plus simple que les matrices !!! Merci à vous deux !
  6. ... Houlà... C'est quoi ce truc là encore....
  7. Ok. Merci Patrick. Par contre pour la rotation d'une sélection, c'est moins évident ! :) Merci encore !
  8. Salut vous ! Certains de mes petits lisps créent des entites au fur et à mesure d'un repeat, par exemple. Et on voit le cheminement à l'écran. C'est très rapide, mais j'aimerais que ça fasse la même chose que les commandes natives d'autocad (exemple le réseau). Petite question, toute bête si ça se trouve : Comment désactiver le regen natif d'autocad pour le remettre ensuite ? J'ai essayé regenmode à 0, mais ça ne fonctionne pas. Merci !
  9. +1.... :mad:
  10. Ok. Donc ça ne fonctionne pas avec la deuxième sur AutoCAD. Sur BricsCAD la deuxième semble bien fonctionner... Merci à toi !
  11. Attends quand même l'avis des "masters"... Ils sont très balaises pour faire des trucs aberrants !! :D
  12. Perso, je pense qu'on ne peut pas faire ça à partir de blocs. Ou alors j'en suis complètement incapable. Ou alors à chaque modification de bloc, un nouveau bloc est créé est cela perd l'utilité des blocs...
  13. Salut patrick_35 ! Merci pour ce petit topo sur ces élégantes petites manières de codage ! Sinon, pourrais tu montrer comment tu fais pour une sélection de type (entsel) ? Perso je faisais ça : (defun c:test (/ ent) (if (or (not (ssget "i")) (/= (sslength (ssget "i")) 1) ) (progn (while (not (setq ent (car (entsel "\nSélectionner un objet du calque à rendre courant: "))))) ent ) (ssname (ssget "i") 0) ) ) La routine retourne le nom de l'entité sélectionnée ou à sélectionner. Et depuis que j'ai lu ton topo, je me demande si on ne peut pas faire ça : (defun c:test (/ ent) (or (not (ssget "i")) (/= 1 (sslength (ssget "i"))) (car (entsel "\nSélectionner un objet du calque à rendre courant: ")) (ssname (ssget "i" 0)) ) ) Comment ferais-tu, toi ? Merci ! [Edité le 15/1/2009 par Matt666]
  14. Un petit schéma de principe, peut-être ? une explication visuelle ? Merci ! [Edité le 15/1/2009 par Matt666]
  15. Salut ! Un petit challenge pour t'aider ?
  16. Matt666

    Boites de dialogue Windows

    Salut Gile ! Cool je vais tâcher d'essayer tout ça sur BricsCAD ! Juste pour la curiosité : Tu utilises quoi comme programme pour voir/Editer un programme en DLL ? Merci ! Matt.
  17. Matt666

    Extmin-Extmax

    extmin et extmax retournent l'encombrement de tous les objets de ton dessin. Les limites sont définies par l'utilisateur. A mon avis ce sont deux choses différentes. [Edité le 27/12/2008 par Matt666]
  18. Matt666

    Messages non vus

    Et puis à partir du moment où on coche une fois "Recevoir un courriel lors d'un nouveau message sous ce Sujet?", il est coché pour toutes les réponses du post !!! Pour l'instant on peut recevoir autant de notification que de réponses cochées... Un peu con comme système !
  19. ATTSYNC... Non disponible sur BricsCAD V7.... Sniiff.
  20. Matt666

    Copie equidistante

    La routine a été mise à jour ! Merci à Patrick_35 et (gile) pour l'aide sur la fonction d'erreur ! Ca fonctionne parfaitement.
  21. Matt666

    Copie equidistante

    Salut usegomme ! Merci pour la précision, mais je connaissais déjà cela ;) ! Là je parlais des variables locales qui faisaient référence à la fonction d'erreur.. [Edité le 18/12/2008 par Matt666]
  22. Matt666

    Copie equidistante

    Salut Patrick_35 ! Ok pour la variable et les commande d'annulation, merci ! Je n'ai jamais trop rien compris à la gestion des erreurs via LISP... Peut être une occasion d'éclaircissement ? :cool: Ce que je ne comprends pas, c'est le jeu des variables en début et en fin de lisp... Bref. Salut Tramber ! Et c'est juste pour toi que je l'ai publiée, cette routine... :thumbup: Je me doutais bien que cela plairait aux SketchUsers... Je me sers tellement souvent de cet outil sur SU, fallait faire qqh pour AutoCAD :) Merci à vous !
  23. Matt666

    Copie equidistante

    En fait j'ai regardé l'outil sur SketchUp, et il fait comme tu l'as décrit. J'ai donc modifié le code. Bon courage pour ton tas de bretzels... C'est salé comme humour... Bref..
  24. Matt666

    Copie equidistante

    Salut bseb67 ! Merci pour les retours... Les points 2 et 3 sont corrigés. Par contre le point 1, sur BricsCAD cela fonctionne très bien. Je ne peux pas corriger ce problème, désolé... Encore merci ! :D
  25. Bonjour tout le monde ! Ca faisait longtemps... Bon voici une routine qui tourne très bien sur BricsCAD, et c'est en pur autolisp, donc ça devrait fonctionner sur AutoCAD. Je ne sais pas si elle a déjà été écrite ici. Ça ne m'étonnerait pas :) Cette routine est l'équivalent de la copie équidistante disponible dans SketchUP (et ArchiCAD je crois). Elle copie d'abord la sélection au point de destination définit par l'utilisateur, puis insère un nombre de copies voulues entre les deux, et ce avec le même écartement. Elle demande : 1- Une sélection si rien n'est sélectionné 2- Un point de base de copie de la sélection 3- Un point de destination de la première copie. 4- Le nombre de copies équidistantes Et voilà. A savoir que le point 4 est en boucle. C'est à dire que si on voit que le nombre de copies est inexact (ou insuffisant, ou y en a trop...) la routine remplace les entités créées entre l'original et la première copie par le nombre à copier. Comme sur SketchUP. ;;; Copier à équidistance (defun c:CPE (/ *error* m:err sel ptb ptd cmdecho div dst ang entl dst2 entl2) (defun CPE_Error (msg) (if (= msg "Fonction annulée") (princ "\nAnnuler") (princ (strcat "\nErreur -> " msg)) ) (command "_.undo" "_end") (setvar "CMDECHO" cmdecho) (setq *error* m:err m:err nil ) (princ) ) (setq m:err *error* *error* CPE_Error) (if (and (setq sel (ssget)) (setq ptb (getpoint "\nPoint de base : ")) ) (progn (setq cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (command "_undo" "D" "_copy" sel "" ptb) (setvar "cmdecho" 1) (while (not (zerop (getvar "cmdactive")))(command pause)) (setq ptd (getvar "lastpoint") dst (distance ptb ptd) ang (angle ptb ptd) entl (entlast) ) (setvar "cmdecho" 0) (if (> dst 0) (progn (while (setq div (getint "\nNombre de copies équidistantes : ")) (setq entl2 entl) (setq sel2 (ssadd)) (while (setq entl2 (entnext entl2)) (ssadd entl2 sel2)) (if sel2 (command "_erase" sel2 "")) (setq dst2 (/ dst div)) (repeat (1- div) (command "_copy" sel "" ptb (polar ptb ang dst2)) (setq dst2 (+ dst2 (/ dst div))) ) (princ (strcat "\n" (itoa div) " entités copiées avec entraxe de " (rtos (/ dst div)) " unités.")) ) (command "_undo" "F" "regen") ) (progn (princ "\nDistance entre l'original et le 1er objet copié nul. Fonction annulée.") (command "_undo" "F" "_undo" 1 "regen") ) ) (setvar "cmdecho" cmdecho) (setq *error* m:err m:err nil) ) ) (princ) ) Possibilités d'améliorations : - Donner une distance à la place du nombre de copies à créer. - Au niveau code, tout passer avec vl-cmdf (un truc comme ça), pour AutoCAD - Au niveau code, créer des marques d'annulation à chaque demande de nobmre de copies. Pour l'instant (et parce que c'est la seule méthode qui fonctionne bien sur BricsCAD) le code efface les entités puis les recrée. Les commentaires / remarques d'amélioration / Trouvailles de bugs sont les bienvenus ;) EDIT1 : Routine mise à jour suite aux commentaires de bseb67 EDIT2 :Ajout d'une fonction d'erreur suite au commentaire de Patrick_35. Merci à toi et (gile) pour le coup de main sur la fonction d'erreur ! [Edité le 19/12/2008 par Matt666]
×
×
  • 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é