nicolas2
Membres-
Compteur de contenus
238 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par nicolas2
-
Modifier ordre éléments dessin
nicolas2 a répondu à un(e) sujet de nicolas2 dans Pour aller plus loin en LISP
Bravo BONUSCAD, tout fonctionne et dans l'ordre :) !! (uste une modification sur la 1ière ligne de ta routine où tu as du fourcher : (defun c: ordre....) Gile m'avait fait cette routine : (defun c:test (/ e l i) (setvar 'errno 0) (setq i 0) (while (/= (getvar 'errno) 52) (while (and (setq e (car (entsel))) (setq l (entget e)) (= "CIRCLE" (cdr (assoc 0 l))) ) (entmake l) (entdel e) (setq h (/ (cdr (assoc 40 l)) 2.) i (1+ i) ) (entmake (list '(0 . "TEXT") '(10 0. 0. 0.) (cons 11 (cdr (assoc 10 l))) (cons 40 h) (cons 1 (itoa i)) '(72 . 1) '(73 . 2) ) ) ) ) ) Les Tubes sélectionnés était incrémentés (chiffre à l'intérieur du cercle 1-2-3.....) Si j'abuse un peu, je te demanderais si tu peu l'insérer dans ta routine. Merci à tous, bravo. C'est sympa de ne pas laisser tomber les grosses B..... dans mon genre. -
Modifier ordre éléments dessin
nicolas2 a répondu à un(e) sujet de nicolas2 dans Pour aller plus loin en LISP
Bon, Patrick 35 et toi Tramber, j'vous parle même plus :casstet: ! L'utilité de cette routine est que certaines fois j'ai + de 4000 tubes, donc à resélectionner 1 par 1... Merci Bonucad pour ton aide !! Je me suis fait avoir, je t'ai demandé si tu pouvais inverser ta routine parcequ'en fait j'utilisait ta première routine en ne sélectionnant que quelques tubes. Mon premier essai (ci-dessous) me le confirme. Mon ordre est respecté, mais si je ne sélectionne pas tous les tubes, il me les met à la fin. - Sur mon 1ier Essai j'ai sélectionné 1-2-3-4-5-6-7-8 et pas les autres - Sur mon 2ième Essai j'ai sélectionné 1-2-3-4-5-6-7-8 et puis les autres http://img518.imageshack.us/img518/432/explicationmachinetw8.jpg N'est-il pas possible de modifier la routine en lui imposant de mettre les tubes non sélectionnés à la suite et non devant...? Merci à tous quand même .............. -
Modifier ordre éléments dessin
nicolas2 a répondu à un(e) sujet de nicolas2 dans Pour aller plus loin en LISP
Merci Bonus pour ta réactivité ! Je vérifie cela demain matin au boulot -
Modifier ordre éléments dessin
nicolas2 a répondu à un(e) sujet de nicolas2 dans Pour aller plus loin en LISP
Merci Bonuscad ! Voila mon problème : Que je dessine directement dans l'ordre ou que je modifie mon dessin avec ta routine "ORDRE", le résultat dans "l'historique AUTOCAD" devrait être le même :casstet: ...Non...!!???? http://img264.imageshack.us/img264/8251/mauscam1pz4.jpg[/url]] Du coup si j'utilise mon premier dessin, ma machine s'y retrouve et dans le 2ième cas s'est le brin ! Si tu as une explication ? Merci -
Modifier ordre éléments dessin
nicolas2 a répondu à un(e) sujet de nicolas2 dans Pour aller plus loin en LISP
En clair : - Je dessine dans un ordre - Le "programme de convertion machine" garde le même ordre - Je veux pouvoir modifier cet ordre en cliquant sur les cercles du Dwg http://moe.mabul.org/up/moe/2009/01/23/img-093718xvtaq.jpg Les routines ci-dessus (après transcription machine) le font, mais à rebourd en commençant par 10-9-8....2-1 Après relecture de mon premier message, les images étaient illisible et mon explication pas clair. Milles excuses ! Merci pour votre aide -
Bonjour à tous . Voila mon problème : - Je dessine une multitude de cercles avec un pas défini sous Autocad (plaque tubulaire pour échangeur de chaleur, parfois + de 3000 cercles) - Je transfert mon dxf sur une machine de soudage. L'ordre de soudage (sur ma machine) est en relation direct avec l'ordre avec lequel j'ai tracé mes cercles. Ex: Si j'ai dessiné sous Autocad (dans l'ordre) OOOOOOOO 1 3 8 6 4 2 5 7 ma machine va souder le 1, puis va sauter 4 tubes pour souder le 2, revenir en arrière.... L'ordre de soudage ne peut se décider qu'une fois tous les cercles finis de tracer. L'idéal serait d'avoir un outil me permettant, en final, de dire en cliquant directement sur les cercles : - tube 1 - tube 2 - tubes 3 à 100 (en capturant un lot de cercles....) Posté sur le forum "AUTOCAD 2004", j'ai eu 5 Lisp proposés, s'est pourquoi je reposte mon souhait sur le forum approprié. Les 5 Lisp's retranscrit sur ma machine de soudage (en .mpf) prennent les tubes à rebourd. Malgrés mon choix 1-2-3.....3800. La Machine le fait 3800-3799-...1 Merci à tous ceux qui se sont déja penchés sur mon problème (les Routines suivantes sont les leurs) et à tous ceux qui pourront encore m'aider. Routine 1 : (defun c:bb(/) (setq jeu(ssget) compt 0) (repeat(sslength jeu) (entmake(entget(ssname jeu compt))) (entdel(ssname jeu compt)) (setq compt(1+ compt)) ) ) Routine 2 : (defun c:bb (/ s i) (setq s (ssget)) (repeat (setq i (sslength s)) (entmake (entget (entdel (ssname s (setq i (1- i)))))) (entdel (ssname s i)) ) ) Routine 3 : (defun c:bbi(/) (setq jeu(ssget)) (setq compt(1-(sslength jeu))) (repeat(sslength jeu) (entmake(entget(ssname jeu compt))) (entdel(ssname jeu compt)) (setq compt(1- compt)) ) ) Routine 4 : (defun c:ordre ( / nw_js js n) (setq nw_js (ssadd)) (while (setq js (ssget)) (setq n -1) (repeat (sslength js) (ssadd (ssname js (setq n (1+ n))) nw_js) ) ) (cond (nw_js (setq n -1) (repeat (sslength nw_js) (entmake (entget (ssname nw_js (setq n (1+ n))))) (entdel (ssname nw_js n)) ) ) ) (prin1) ) Routine 5 : (defun c:test (/ e l i) (setvar 'errno 0) (setq i 0) (while (/= (getvar 'errno) 52) (while (and (setq e (car (entsel))) (setq l (entget e)) (= "CIRCLE" (cdr (assoc 0 l))) ) (entmake l) (entdel e) (setq h (/ (cdr (assoc 40 l)) 2.) i (1+ i) ) (entmake (list '(0 . "TEXT") '(10 0. 0. 0.) (cons 11 (cdr (assoc 10 l))) (cons 40 h) (cons 1 (itoa i)) '(72 . 1) '(73 . 2) ) ) ) ) )
-
Salut Gile, je viens de faire un essai en cliquant tous les tubes 1 à 1 (avec ta dernière routine), en partant de 1 jusqu'à 408. http://img89.imageshack.us/my.php?image=essai3model1p01gq8.jpg Le résultat est que ma machine commence par le dernier tube (N°408) et remonte 407-406...-1. Le '"cliquage" est fastidieux (tube à tube) et "l'inversion" est nécessaire. En fait: - J'impose à ma machine mes 48 premiers tubes, puis ensuite je lui indique un chemin a suivre. http://img523.imageshack.us/my.php?image=optimisationmachineqy1.jpg - Le résultat serait celui-ci http://img209.imageshack.us/my.php?image=classeur4p015py3.jpg - puis http://img523.imageshack.us/my.php?image=cheminrk6.jpg Toujours ce problème d'ordre qui ne s'inverse pas... Merci pour votre aide
-
http://img398.imageshack.us/img398/926/essai3model1p01bb4.jpg http://img398.imageshack.us/my.php?image=essai3model1p01bb4.jpg
-
Essai http://img398.imageshack.us/my.php?image=essai3model1p01bb4.jpg
-
Salut Gile et merci pour ton aide ! Ta routine (réponse N°4) fonctionne bien en prenant plusieurs tubes à la fois, le seul soucis est cette inversions qui ne fonctionne pas.
-
Merci Lili, ch'uis pas au point. J'arrive pas à coller une image plutôt que de faire un lien !!?? "Quel truffe le Nicolas..." si si Lili, j'lai entendu d'ici ! Si quelqu'un m'entend,... mon problème résiste.
-
Bonjour à tous et merci pour votre aide ! Je n'ai pu vous demander de l'aide plus tôt, la machine de soudage était en attente de mes dxf .(2 Techniciens + 2 Formateurs), j'ai tout redessiné dans l'ordre... :casstet: Sur l'image jointe, je sélectionne les tubes de 1 à n dans l'ordre. Peu importe quel routine j'utilse (BB-BBI-ordre....) la machine commence par tous les tubes que je n'ai pas sélectionnés et fini par mes tubes sélectionnés, l'inversion ne se fait pas. Sur la derrnier routine de Gile, la numérotation des tubes est un +, mais la sélection doit s'effectuer tube par tube alors que sur les autres routines la sélection multiple est possible. Que faire :( ? http://img407.imageshack.us/img407/3406/explicatiffaisceauiw6.th.jpg
-
Rien n'y fait..... :( Re-help..... Merci pour votre aide et votre réactivité !!
-
Help, ça fonctionne toujours comme le premier, rien n'a changé..... Merci à vous pour une réponse !
-
Help, help.... J'ai un formateur Italien (qui parle avec les mains) jusqu'a ce soir, sur cette machine.... Si quelqu'un peu m'aider rapidement, j'lui frais une bise pour le nouvel an ;) Merci à tous
-
Merci Tramber, c'est exactement ça, a part que les cercles que j'ai selectionnés sont fait à la fin au lieu d'être fait au début. Peux-tu m'inverser ceci s'il te plait ? Merci
-
Un grand merci BonusCad. Quand j'srais grand, j'mfrais greffer un 2ième neurone, s'est promis...!
-
Bonjour à tous . Voila mon problème : - Je dessine une multitude de cercles avec un pas défini sous Autocad (plaque tubulaire pour échangeur de chaleur, parfois + de 3000 cercles) - Je transfert mon dxf sur une machine de soudage. L'ordre de soudage (sur ma machine) est en relation direct avec l'ordre avec lequel j'ai tracé mes cercles. Ex: Si j'ai dessiné sous Autocad (dans l'ordre) OOOOOOOO 1 3 8 6 4 2 5 7 ma machine va souder le 1, puis va sauter 4 tubes pour souder le 2, revenir en arrière.... L'ordre de soudage ne peut se décider qu'une fois tous les cercles finis de tracer. L'idéal serait d'avoir un outil me permettant, en final, de dire en cliquant directement sur les cercles : - tube 1 - tube 2 - tubes 3 à 100 (en capturant un lot de cercles....) Voila, voila, ....... je n'ai aucune idée de la façon de traiter ce problème . Merci à tous pour votre aide !
-
Bonjour à tous, je viens de trouver ce truc sur le net. Mais qu'est ce que c'est que ce machin :casstet: ? A quoi qu'ça sert ? http://www.beowolftech.com/lispgen/ Merci à vous pour m'éclairer sur ce point.
-
Bonjour thry0 (de la jungle tarzan...??? ) voila le même en bleu... (defun c:FE ( / DiamExt Ep HtBD PtIns) (initget 7) (setq DiamExt (getdist "\nDiamètre extérieur: ")) (initget 7) (setq Ep (getdist "\nEpaisseur: ")) (initget 7) (setq HtBD (getdist "\nHauteur du bord droit: ")) (initget 9) (setq PtIns (getpoint "\nPoint d'insertion: ")) (setvar "cmdecho" 0) (command "_.ellipse" "_arc" "_none" (list (+ (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) "_none" (list (- (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) (+ (/ (- DiamExt (* 2.0 Ep)) 3.8) Ep) "_none" (list (+ (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) "_none" (list (- (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) ) (command "_.pline" "_none" (list (- (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) "_width" 0.0 0.0 "_none" (list (- (car PtIns) (* DiamExt 0.5)) (cadr PtIns) (caddr PtIns)) "_none" (list (+ (car PtIns) (* DiamExt 0.5)) (cadr PtIns) (caddr PtIns)) "_none" (list (+ (car PtIns) (* DiamExt 0.5)) (+ (cadr PtIns) HtBD) (caddr PtIns)) "" ) (setvar "cmdecho" 1) (prin1) ) A+
-
Merci Bonuscad, c'est sympa d'aider ceux qui ont du mal ! Je m'étais renseigné pour des explications sur ton programme : (defun c:FE (/ DiamExt Ep HtBD PtIns) (initget 7) (setq DiamExt (getdist "\nDiamètre extérieur: ")) (initget 7) (setq Ep (getdist "\nEpaisseur: ")) (initget 7) (setq HtBD (getdist "\nHauteur du bord droit: ")) (initget 9) (setq PtIns (getpoint "\nPoint d'insertion: ")) [surligneur] ;; Ellipse[/surligneur] (entmake (list (cons 0 "ELLIPSE") (cons 100 "AcDbEntity") (cons 100 "AcDbEllipse") (cons 10 (list (car Ptins) (+ (cadr PtIns) HtBD) (caddr PtIns))) (cons 11 (list (* DiamExt 0.5) 0.0 0.0)) (cons 210 '(0.0 0.0 1.0)) (cons 40 (/ (+ (/ (- DiamExt (* 2.0 Ep)) 3.8) Ep) (* DiamExt 0.5))) [surligneur] ; Rapport du petit axe au grand axe[/surligneur] (cons 41 0.0) [surligneur] ; Angle de départ[/surligneur] (cons 42 pi) [surligneur] ; Angle final[/surligneur] ) ) [surligneur] ;; Bord à droite[/surligneur] (entmake (list (cons 0 "LINE") (cons 10 (list (/ DiamExt -2) 0.0 0.0)) [surligneur] ; Pt de départ[/surligneur] (cons 11 (list (/ DiamExt -2) HtBD 0.0)) [surligneur] ; Pt d'arrivée[/surligneur] ) ) [surligneur] ;; Bord à gauche[/surligneur] (entmake (list (cons 0 "LINE") (cons 10 (list (/ DiamExt 2) 0.0 0.0)) [surligneur] ; Pt de départ[/surligneur] (cons 11 (list (/ DiamExt 2) HtBD 0.0)) [surligneur] ; Pt d'arrivée[/surligneur] ) ) [surligneur] ;; Ligne du bas[/surligneur] (entmake (list (cons 0 "LINE") (cons 10 (list (/ DiamExt -2) 0.0 0.0)) [surligneur] ; Pt de départ[/surligneur] (cons 11 (list (/ DiamExt 2) 0.0 0.0)) [surligneur] ; Pt d'arrivée[/surligneur] ) ) (princ) ) Maintenant que j'ai 2 LISP qui tiennes la route, est il nécessaire de les regrouper ailleurs sur le site pour d'autres chaudronniers de base ? Merci encore pour ton aide
-
Bonjour et merci pour votre aide. Votre programme fonctionne, mais étant un débutant en LISP, la plupart des "codes" utilisés ne me disent rien. Pour l'instant, j'ai juste modifié la hauteur de l'ellipse (sur mon croquis la côte de 257mm et intérieur au fond). (cons 40 (/ (/ (- DiamExt (* 2.0 Ep)) 3.8) (* DiamExt 0.5))) devient (cons 40 (/ [surligneur] (+ [/surligneur](/ (- DiamExt (* 2.0 Ep)) 3.8) [surligneur] Ep)[/surligneur] (* DiamExt 0.5))) Dans cette ligne, par exemple, avec un Øext. de 1000, une épaisseur de 10 la fonction me donne ((257+10) / (1000*0.5)). Les 267 sont bien la ht. du petit axe de mon ellipse, ma question, pourquoi la diviser par 500 ? Ca fonctionne, mais pourquoi... :casstet: Du fait de mon ignorance, je ne sais pas à quel endroit insérer la suite du programme pour le finir en dessinant les bord droit et cloturer ma polyligne ?!! Merci pour votre aide. Si ton labeur est dur et tes résultats minces, rapelles-toi qu'un jour le grand chêne a été un gland comme moi.
-
Salut thry0, l'épaisseur se fait par un simple "décalé" directement sous Autocad (dans la plupart des cas je ne la dessine pas). J'ai une feuille de calcul EXCEL qui me donne la longueur d'une tubulure sur un fond GRC (tubulure axée ou désaxée) si tu mets ton adresse, je te la transmet. Si tu possèdes des "programmes" EXCEL ou AUTOCAD dans le domaine de la Chaudronnerie, je suis preneur ! pcvs.be.nicollet@pcvs.fr A+
-
Bonjour à tous, j'ai un petit lisp pour faire des fonds GRC (chaudronnerie) et je voudrais le modifier pour faire des fonds elliptiques. Après recherche sur plusieurs forum, il ne semble pas facile, voir impossible de gérer l'ellipse en tant qu'ellipse en lisp (ips ips ips.....). Voici le programme "Fond GRC" me servant de base : ;FondB.lsp ;Version 1.0 ;Programme AutoLISP écrit par Maxence Delannoy et modifié par Yann Nicollet avec l'aide de Bonuscad et Bred ;Dernière modification le 12.01.09 ;Objet: Tracé de fonds GRC suivant NF E 81-102. (defun c:FB ( / DiamExt RayInt RayCar Ep HtBD HtTot PtIns X0 X1 Y0 Y1 Ang1) (setvar "OSMODE" 0) (setq DiamExt (getreal "\nDiamètre extérieur: ") RayCar (/ DiamExt 10.0) Ep (getreal "\nEpaisseur: ") HtBD (getreal "\nHauteur du bord droit: ") HtTot (+ HtBD Ep (- DiamExt (sqrt (- (expt (- DiamExt RayCar) 2.0) (expt (- (* DiamExt 0.5) Ep RayCar) 2.0))))) PtIns (getpoint "\nPoint d'insertion: ") X0 (- (car PtIns) (* DiamExt 0.5)) X1 (+ (car PtIns) (* DiamExt 0.5)) Y0 (- (+ (cadr PtIns) HtTot) DiamExt Ep) Y1 (+ (cadr PtIns) HtBD) ) (command "_.PLINE" (list X1 (nth 1 PtIns)) (list X1 Y1) "_A" "_CE" ; Arc défini par son centre (list (- X1 RayCar Ep) Y1) "_A" ; Angle... (setq Ang1 (/ (* 180 (angle (list (nth 0 PtIns) Y0) (list (- X1 RayCar Ep) Y1))) pi)) "_CE" (list (nth 0 PtIns) Y0) "_A" ; Angle... (- 180 (* 2 Ang1)) "_CE" (list (+ X0 RayCar Ep) Y1) "_A" ; Angle... Ang1 "_L" ; Ligne... (list X0 (nth 1 PtIns)) "_C" ; Ferme la polyligne ) ) (prompt "M.D.D. - FondB.lsp chargé.") (prompt "\nTapez FB pour dessiner un fond GRC suivant NF E 81-102.") (princ) Voila le résultat recherché (une ellipse avec un rapport d'axe de 3.8 => (1000-(2 x ép.))/3.8=257.89) http://img150.imageshack.us/my.php?image=fondellptiquep01sn6.jpg Merci pour votre aide.
-
Voici mon fond elliptique: le petit axe de l'ellipse = (1000-(2x10))/3.8=257.89 mm http://img150.imageshack.us/my.php?image=fondellptiquep01sn6.jpg
