Aller au contenu

nicolas2

Membres
  • Compteur de contenus

    238
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

Tout ce qui a été posté par nicolas2

  1. Merci Gile. Cela fonctionne très bien. Mon problème vient que je survole le LISP et qu'à chaque routine je bloque et suis obligé de vous demander conseil. Que penses-tu de ceci pour "évoluer" http://img12.imageshack.us/img12/8020/programmerautocadov3.jpg Merci de votre aide et de vos conseils
  2. Bonjour, voila où j'en suis : (defun c:nettoyeur ( / ent dxf_ent js jsc n) (while (null (setq ent (entsel "\nDésigner un cercle type: ")))) (setq dxf_ent (entget (car ent))) (cond ((eq (cdr (assoc 0 dxf_ent)) "CIRCLE") (setq js (ssget "_x" (list (assoc 410 dxf_ent) (assoc 67 dxf_ent))) jsc (ssget "_x" (list (assoc 0 dxf_ent) (assoc 410 dxf_ent) (assoc 67 dxf_ent) (assoc 40 dxf_ent))) n -1 ) (repeat (sslength jsc) (ssdel (ssname jsc (setq n (1+ n))) js) ) (if (not (tblsearch "LAYER" "UT1")) (entmake '((0 . "LAYER") (100 . "AcDbSymbolTableRecord") (100 . "AcDbLayerTableRecord") (2 . "UT1") (70 . 0) (62 . 7) (6 . "Continuous") (290 . 1) (370 . -3) ) ) ) (if js (repeat (setq n (sslength js)) (entdel (ssname js (setq n (1- n)))) ) ) (if jsc (repeat (setq n (sslength jsc)) (entmod (subst '(8 . "UT1") (assoc 8 (setq dxf_ent (entget (ssname jsc (setq n (1- n)))))) dxf_ent)) ) ) ) ) ( / nw_js js n i l_dxf h) (setq nw_js (ssadd) i 0) (while (setq js (ssget"_:S")) (ssadd (ssname js 0) nw_js) (setq l_dxf (entget (ssname js 0))) (setq h (* (cdr (assoc 40 l_dxf)) 0.5) i (1+ i)) (entmake (list '(0 . "TEXT") '(10 0. 0. 0.) (cons 11 (cdr (assoc 10 l_dxf))) (cons 40 h) (cons 1 (itoa i)) '(72 . 1) '(73 . 2) ) ) ) (setq js (ssget "_X")) (cond (js (repeat (setq n (sslength js)) (ssadd (ssname js (setq n (1- n))) nw_js) ) ) ) (cond (nw_js (setq n -1) (repeat (sslength nw_js) (entmake (setq l_dxf (entget (ssname nw_js (setq n (1+ n)))))) (entdel (cdar l_dxf)) ) ) ) (prin1) ) avec maintenant comme message d'erreur : [surligneur] Désigner un cercle type: ; erreur : type d'argument incorrect : numberp : nil[/surligneur] Merci à vous
  3. Merci Bonucad pour ta réponse. Vu mes compétences en LISP et après de multiples essais, le lien entre les 2 lisps ne se fait pas. La 2ième question ne m'est jamais posé, la routine 1 s'arrrête comme si la suite de la routine était ignorée. Merci pour votre aide !
  4. nicolas2

    AUTOCAD 2010

    Bonjour concombre masqué. J'avais un cocker étant petit, rien que tes photos font remonter des souvenirs... :cool: Sur TOPSOLID quelques soucis qui me reviennent : 1 - Pas triangulaire pour faisceau d'échangeur 2 - Sur un piquage, ajuster automatiquement la Lg. d'un tube en changeant le type de bride (01-11-12...) 3 - Repères des piquages sur vue 3D (un vrai jeu de piste après quelques piquages) 4 - Les joints et boulonnerie sur piquages à livrer au client mais non dessinés, impossible à insérer dans la nomenclature. 5 - En chaudronnerie, sur la vue de face du plan, tous les piquages sont rabattus dans le plan [comme si tous les piquages étaient sur le plan 90°-270° (est-ouest) ].... 6 - Une mise en plan fastidieuse. Nous faisons des appareils unique, la 3D n'est peut-être pas faite pour nous, tout simplement. La Hot-line TOPSOLID était, par contre, très compétente. Nous étions 3 dessinateurs, nous avons continué à dessiner AUTOCAD sur 2 postes et 1 collègue à passé 1 an 1/2 dessus, je pense qu'au bout de ce temps là, la période d'acharnement est passée. La note était déja bien assez salée.... :( Par contre, si tu as un exemple de plan chaudronnerie sur AUTOCAD 3D, j'aimerais bien y jeter un coup d'oeil, si tu le veux bien (?) (pcvs.be.nicollet@pcvs.fr) Les chaudronniers existent encore :D
  5. Bonjour et Merci Gile. En fait je voudrais faire appraître dans la zone de dessin (en haut à gauche par exemple), ce qui se déroule (commentaires) dans la barre "commande".
  6. Bonsoir à tous. Je voudrais insérer une ligne dans une routine, me permettant de faire apparaitre (par exemple en haut à gauche du dessin) sur un click (me lançant déja autre chose) un message informatif sur la commande en cours ex: 1 - 1ier Clik sur un icone => apparition du message " Choisissez un cercle " 2 - 2ième Clik (choix d'1 cercle) => changement de message " Toto " Imaginons que le 1ier message dure uniquement ente les 2 premiers clicks et que le 2iéme message dure jusque à la fin du déroulement de la routine qui se termine, elle, par un Click droit. J'ai vu du coté des Msgbox, Inputbox mais mon message ne demande aucune action direct sur le message (OK - OUI - NON...). Est-il possible de le faire uniqement en LISP, sans passer par un DCL ? J'ai essayé suite à un message de Lili (je crois), mais ma routine ne trouvait pas le DCL. Merci pour votre aide .
  7. Bon, mon message est imbuvabe ! :mad: une seule question à la fois. La 1ière routine efface tout sauf les cercles de ØX. Peut-on (en même temps que tout est effacé sauf les cercles) les mettre dans le calque UT1 (du même type que le calque 0 (trait continu - blanc...)) et créer automatiquemlent (inséré dans la routine) ce calque s'il est inexistant ? Cela me paraît plus propre comme explication :P Merci à tous pour votre aide !
  8. Bonjour à tous, vivement la fin de l'hiver... :( , c'est long cette année ! J'ai 2 LISP's (récemment écrit par de grands bonhommes de chez CADxp que je remercie encore !) et je voudrais les compiler (en rajoutant une "bricole" au passage). 1 ière routine me permettant de tout nettoyer sur mon dessin, sauf des cercles d'un Ø donné. 2 ième routine me permettant de choisir un ordre sur ces cercles. Sur la 1ière routine je voudrais qu'au moment du "nettoyage", tous les cercles restant soit mis dans un calque UT1. Si le calque UT1 (Trait continu blanc, genre calque 0...) n'existe pas, il sera créé. Déroulement du programme : 1 - Je clique sur un icône (déja créé lien avec la routine) 2 - Je clique sur 1 cercle (nettoyage + mis sous UT1 (créé si non existant)) 3 - Les cliques suivant je choisi l'ordre Est-il possible de rajouter un message (après avoir cliquer sur l'icône) en haut à gauche de l'écran par exemple, pour suivre les étapes du déroulement. En fait, faire apparaitre ce qui se trouve sur la ligne commande. NETTOYAGE + UT1 (arrêt après le clique sur le cercle) puis ORDRE (pendant tout le déroulement de la 2ième routine). En relisant mon souhait, je me rend compte que j'en demande beaucoup, mais si quelqu'un peut s'y pencher dessus. 1 ière routine : (defun c:nettoyeur () ((lambda ( / ent dxf_ent js jsc n) (while (null (setq ent (entsel "\nDésigner un cercle type: ")))) (setq dxf_ent (entget (car ent))) (cond ((eq (cdr (assoc 0 dxf_ent)) "CIRCLE") (setq js (ssget "_x" (list (assoc 410 dxf_ent) (assoc 67 dxf_ent))) jsc (ssget "_x" (list (assoc 0 dxf_ent) (assoc 410 dxf_ent) (assoc 67 dxf_ent) (assoc 40 dxf_ent))) n -1 ) (repeat (sslength jsc) (ssdel (ssname jsc (setq n (1+ n))) js) ) (if js (command "_.erase" js "")) ) ) )) ) 2 ième routine : (defun c:ordre ( / nw_js js n i l_dxf h) (setq nw_js (ssadd) i 0) (while (setq js (ssget"_:S")) (ssadd (ssname js 0) nw_js) (setq l_dxf (entget (ssname js 0))) (setq h (* (cdr (assoc 40 l_dxf)) 0.5) i (1+ i)) (entmake (list '(0 . "TEXT") '(10 0. 0. 0.) (cons 11 (cdr (assoc 10 l_dxf))) (cons 40 h) (cons 1 (itoa i)) '(72 . 1) '(73 . 2) ) ) ) (setq js (ssget "_X")) (cond (js (repeat (setq n (sslength js)) (ssadd (ssname js (setq n (1- n))) nw_js) ) ) ) (cond (nw_js (setq n -1) (repeat (sslength nw_js) (entmake (setq l_dxf (entget (ssname nw_js (setq n (1+ n)))))) (entdel (cdar l_dxf)) ) ) ) (prin1) ) Mes remerciements sont sincères.
  9. et 1 de plus :casstet:
  10. nicolas2

    AUTOCAD 2010

    Bonjour à tous, bonjour Rebcao. J'ose même pas te renvoyer le formulaire (j'aurais coché 1 ou 2 cases). Je pense que j'utilise 5% de ce qu'Autocad est capable de faire. En fait je l'utilise à peu près comme une planche à dessin (espace objet uniquement) avec quelques lisp pour me simplifier la vie. Au fait, connais-tu s'il existe un applicatif Chaudronnerie, des routines métier ou autre. En électricité, en mécanique, en tuyauterie OK mais en chaudronnerie...... Y'a t'il encore un chaudronnier sur terre ... Heho..... :exclam: Merci à tous
  11. Bonjour à tous, j'utilise ces routines pour présenter des plans de maisons (en vue de déposer des permis de construire. Ces LISP ne sont pas de moi). [surligneur] Je fais une Spline en vue du détourage de mon image puis j'utilse cette routine.[/surligneur] ;; Conversion d'une SPLINE en une POLYLIGNE ;; Lancement de la fonction: S2P ;; ;; CADALYST 12/03 AutoLISP Solutions SPLINE-TO-PLINE.LSP ;; © 2003 Tony Hotchkiss (defun spline-to-pline (/ i) (vl-load-com) (setq *thisdrawing* (vla-get-activedocument (vlax-get-acad-object) ) ;_ end of vla-get-activedocument *modelspace* (vla-get-ModelSpace *thisdrawing*) ) ;_ end of setq (setq spline-list (get-spline)) (setq i (- 1)) (if spline-list (progn (setq msg "\nNumber of segments <100>: ") (initget 6) (setq num (getint msg)) (if (or (= num 100) (= num nil)) (setq num 100) ) ;_ end of if (repeat (length spline-list) (setq splobj (nth (setq i (1+ i)) spline-list)) (convert-spline splobj num) ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if ) ;_ end of spline-to-pline (defun get-spline (/ spl-list obj spline no-ent i) (setq spl-list nil obj nil spline "AcDbSpline" selsets (vla-get-selectionsets *thisdrawing*) ss1 (vlax-make-variant "ss1") ) ;_ end of setq (if (= (vla-get-count selsets) 0) (setq ssobj (vla-add selsets ss1)) ) ;_ end of if (vla-clear ssobj) (setq no-ent 1) (while no-ent (prompt "\nSelect splines: ") (vla-Selectonscreen ssobj) (if (> (vla-get-count ssobj) 0) (progn (setq no-ent nil) (setq i (- 1)) (repeat (vla-get-count ssobj) (setq obj (vla-item ssobj (vlax-make-variant (setq i (1+ i))) ) ;_ end of vla-item ) ;_ end of setq (cond ((= (vlax-get-property obj "ObjectName") spline) (setq spl-list (append spl-list (list obj)) ) ;_ end of setq ) ) ;_ end-of cond ) ;_ end of repeat ) ;_ end of progn (prompt "\nNo entities selected, try again.") ) ;_ end of if (if (and (= nil no-ent) (= nil spl-list)) (progn (setq no-ent 1) (prompt "\nNo splines selected.") (quit) ) ;_ end of progn ) ;_ end of if ) ;_ end of while (vla-delete (vla-item selsets 0)) spl-list ) ;_ end of get-spline (defun convert-spline (splobj n / i) (setq point-list nil 2Dpoint-list nil z-list nil spl-lyr (vlax-get-property splobj 'Layer) startSpline (vlax-curve-getStartParam splobj) endSpline (vlax-curve-getEndParam splobj) i (- 1) ) ;_ end of setq (repeat (+ n 1) (setq i (1+ i)) (setq p (vlax-curve-getPointAtParam splobj (* i (/ (- endspline startspline) n) ) ;_ end of * ) ;_ end of vlax-curve-getPointAtParam ) ;_ end of setq (setq 2Dp (list (car p) (cadr p)) 2Dpoint-list (append 2Dpoint-list 2Dp) point-list (append point-list p) z (caddr p) z-list (append z-list (list z)) ) ;_ end of setq ) ;_ end of repeat (setq summ (apply '+ z-list)) (setq arraySpace (vlax-make-safearray vlax-vbdouble ; element type (cons 0 (- (length point-list) 1) ) ; array dimension ) ;_ end of vlax-make-safearray ) ;_ end of setq (setq vert-array (vlax-safearray-fill arraySpace point-list)) (vlax-make-variant vert-array) (if (and (= :vlax-true (vlax-get-property splobj 'IsPLanar)) (= summ 0.0) ) ;_ end of and (setq plobj (add-polyline 2Dpoint-list vla-AddLightweightPolyline ) ;_ end of add-polyline ) ;_ end of setq (setq plobj (add-polyline point-list vla-Add3DPoly ) ;_ end of add-polyline ) ;_ end of setq ) ;_ end of if (vlax-put-property plobj 'Layer spl-lyr) (vla-delete splobj) (vlax-release-object splobj) ) ;_ end of convert-spline (defun add-polyline (pt-list poly-func) (setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length pt-list) 1) ) ; array dimension ) ;_ end of vlax-make-safearray ) ;_ end of setq (setq vertex-array (vlax-safearray-fill arraySpace pt-list) ) ;_ end of setq (vlax-make-variant vertex-array) (setq plobj (poly-func *modelspace* vertex-array ) ;_ end of poly-func ) ;_ end of setq ) ;_ end of add-polyline (defun c:s2p () (spline-to-pline) (princ) ) ;_ end of c:s2p (prompt "SPLINE-TO-PLINE by Tony Hotchkiss. Enter S2P to start" ) ;_ end of prompt [surligneur] Ensuite j'utilise le Délimimage de Gile[/surligneur] (defun c:delim (/ p i a s) (vl-load-com) (and (setq p (car (entsel "\nSélectionnez une polyligne: "))) (setq p (vlax-ename->vla-object p)) ; traduction en objet vla (= (vla-get-ObjectName p) "AcDbPolyline") (princ "\nSélectionnez une image: ") (setq i (ssget "_:S:E" '((0 . "IMAGE")))) (setq i (vlax-ename->vla-object (ssname i 0))) ; traduction en objet vla (setq s (vlax-get p 'coordinates)) ; liste des coordonnées des sommets de la polyligne (setq s (append s (list (car s) (cadr s)))) ; Ajout du premier sommet en fin de liste (progn (vlax-invoke i 'Clipboundary s) ; créer la délimitation (vla-put-ClippingEnabled i :vlax-true) ; afficher la délimitation ) ) (princ) ) Si ceci peut servir...?!
  12. nicolas2

    Nettoyeur

    Bravo et Merci encore Bonuscad :D
  13. nicolas2

    Nettoyeur

    Re-bonjour à vous. Ne serait-il pas judicieux (pour que la routine ne soit pas propre à mon soucis, mais ouverte à tous "nettoyage") de copier un objet en dehors du plan et que le nettoyage se fasse par rapport à cet objet :casstet: (mais qu'est-ce qu'il raconte....?) Un exemple : http://img84.imageshack.us/img84/4364/picassoyw7.jpg (Picasso à du soucis à se faire....il paraît que la place est vaquante..) Je copie un objet (un cercle avec tel Ø dans mon cas, mais éventuellement un trait en calque Y ou tout autre objet) je clique dessus et mon plan et "nettoyé" de tous les autres objets. C'est juste une idée pour que le LISP ne soit pas propre à mon cas (y s'répète le gars...! bientôt la maison de retraite.) Merci à tous
  14. nicolas2

    AUTOCAD 2010

    Bonjour Rebcao et bonjour à tous (ce matin s'est Ski à Saint Andéol en Vercors... :P , je vous envoi un brin de vacances sur le forum). Bon allez les gars au boulot :cool: En fait j'utilise quelques routines LISP. Nous avions essayé la 3D (TOPSOLID) et après 1 an 1/2 de galère [pas adapté à notre style de fabrication (chaudronnerie), des impasses à longueur de journée, malgrés une Hot-line compétente, tout ça s'est fini en cacahuète :casstet: avec près de 40 000 E dans le c..). Nous avons une machine de découpe (plasma) le but aurait été de développer nos cuves directement après la 3D (avec les ouvertures pour les tubes... et possibilité de marquarge par micro-abrasion pour l'emplacement de goussets et autre.[ Juste un truc sympa : la découpe des fonds bombés (GRC, Elliptique....) se fait sans problème directement sur la machine de découpe, un gain de temps appréciable]. Nous fonctionnons donc avec AUTOCAD complet (2D avec une paire de routines) - Logitrace (pour les développés). Bonne journée à tous ;)
  15. nicolas2

    Nettoyeur

    Bonjour et Merci à toi Capde06. Si j'utilise ta routine, je me retrouve encore avec une multitude de cercles de Ø différents et le tri n'est pas fini... L'idée est là mais si on peut éviter la création d'un nouveau calque.... Une routine avec uniquement : Cercle et Ø (entré par l'utilisateur) peu importe les calques. Merci à tous pour votre aide !
  16. Bonjour à tous. Je me suis créé un bouton lié à une routine LISP, mais en ce qui concerne l'image que j'insère sur ce bouton, je suis passé par un DWG transformé en BMP (16px - 16px) et c'est pas beau du tout, la résolution est minable :casstet: Comment faites vous :( ? (je suis en version 2004) Merci à vous.
  17. nicolas2

    Nettoyeur

    Bonjour à tous ! J'ai des plans faits avec des traits, des arcs, des cercles.... Je voudrais tout supprimer, sauf les cercles ØX (questionnement de l'utiisateur sur le Ø à garder) sans gérer cela par le style de calque ou autre mais seulement avec : Cercle et Ø. Merci pour votre aiguillage !
  18. Bonjour à tous! J'ai des plans faits avec un seul calque ("FORT") avec des traits, des arcs, des cercles.... Je voudrais savoir s'il existe une fonction, une routine ou autre, style "nettoyeur" (Jean-Reno non..??!! :cool: )pour tout supprimer, sauf les trous ØX ? Merci pour votre aiguillage !
  19. nicolas2

    AUTOCAD 2010

    Réponse à Rebcao Nous devons acheter 2 versions complètes et une LT. Nous faisons du plan de chaudronnerie traditionnel en 2D.
  20. Encore Merci et Bravo :o :) Je vais voir pour le déclencher à partir d'un bouton. C'est pas encore gagné :( Bonne continuation à tous PS : Moi je serais plutôt Calva que Brut de Pomme :cool:
  21. Est-ce que la numérotation aux seuls cercles cliqués est possible ? ;) Cela me permetrait de visualiser uniquement le trajet "imposé" (le reste du trajet étant un chemin soit horizontal, soit vertical donné au niveau du logiciel machine). Merci !
  22. Le sujet a été redirigé vers le Forum approprié "LISP"
  23. nicolas2

    AUTOCAD 2010

    Non non, il n'y a pas d'urgence, de contrats en vue ou autre. Passer maintenant en 2009 pour migrer en 2010 dans 3 mois me paraît juste absurde et inutile. Qu'en pensez-vous :casstet: ?
  24. Re-Bravo :) :) Merci encore :) :)
  25. nicolas2

    AUTOCAD 2010

    Bonjour à tous. Nous devons (2 postes AUTOCAD 2004 + 1poste AUTOCAD LT 2004) passer en AUTOCAD 2010 sous peu. Nous avons une proposition à 10 000 € pour les 3 postes (avec formation), mais ils nous proposent la version 2009 puis migration vers la 2010 (incluse dans le prix). Ma question : Est-il utile de passer par la 2009 ? Cela fait bientôt 6 ans que l'on attend cette évolution (évolution entreprise), nous ne sommes pas à 3 mois près pour évoluer. Sur d'autres postes, j'ai pu lire que l'on à pas vu une telle évolution depuis de nombreuses versions (de ce qui à pu filtrer...). Si s'est pour se former sur une version 2009 et passer le pas vers 2010 sans formation....! Merci pour vos conseils.
×
×
  • 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é