Aller au contenu

sosun38

Membres
  • Compteur de contenus

    26
  • Inscription

  • Dernière visite

Tout ce qui a été posté par sosun38

  1. sosun38

    polyligne

    MERCI BEAUCOUP...gile !!!!!!! c'est d'enfer !!!!!!!!!!!!!!!! sosun38.
  2. sosun38

    polyligne

    Bonjour, Volià, est-il possible de faire par un programme lisp la procédure suivante? Ce qu'on a: _deux polylignes P et Q qui peuvent-être des 2D, 3D. _la polyligne P a pour sommets P1,P2,P3.....P(n-1),Pn. _la polyligne Q a pour sommets Q1,Q2,Q3.....Qn-1),Qn. _avec P1(Xp1,Yp1,Zp1) et Q1(xq1,Yq1,Zq1)......Pn(Xpn,Ypn,Zpn) et Qn(Xqn,Yqn,Zqn). Ce qu"on doit obtenir: _une polyligne M de sommets M1,M2,M3.......Mn. _avec le sommet M1 comme milieu du segment [P1Q1]. _et si les polylignes P et Q sont des 2D alors la polyligne M serra une poly2D. _et si les polylignes P et Q sont des 3D alors la polyligne M serra une poly3D. Le programme commence par la selection des deux polylignes et fini par le tracé de la 3°polyligne tout en conservant les deux polylignes et en ayant le même sens que les deux. Merci bien d'avance. [Edité le 4/6/2008 par sosun38]
  3. Merci à tous les deux. La réponse de gile vas très bien. à+ sosun38
  4. merci Gile. je test ceci des Lundi. Sosun38.
  5. Bonjour, j'aurrais voulu savoir si l'on peut utiliser le nom du calque dans lequel se trouve des polylignes sectionnés pour nomer automatiquement le fichier (.txt) d'exportation des sommets d'une polyligne (avec la routine: SOMPOLY.LSP) par le nom de ce calque même. Exemple: la polyligne selectionnée se trouve dans le calque " poly-01", le fichier txt des sommets de la polyligne doit etre automatiquement nommé " poly-01.txt". Actuellement avec sompoly il faut rentrer le nom du fichier au clavier. Sachant que si j'ai p de polylignes selectionnées dans n calques; il faudrait que l'exportation se fasse automatiquement dans n fichiers .txt ( un fichier par calque). Chaque fichier prennant le nom du calque dont les polylignes sont issues. Merci d'avance. sosun38. Ps: le lisp sompoly. ******************************************************************************** ; SOMPOLY.LSP ; ------------------------------------------------------ ; determination des points des sommets ; d'une polyligne ; ---------------------------------------------------- (defun c:sompoly () (setq poly (entsel "\nSelectionnez la polyligne: ")) (setq poly (car poly)) (setq cl 1) (setq fic (getstring "\nNom du fichier (l'extention TXT sera ajoutee automatiquement): ")) (setq f (open (strcat fic ".txt") "w")) (setq ent (entnext poly)) (while (/= "SEQEND" (cdr (assoc 0 (entget ent)))) (setq som (cdr (assoc 10 (entget ent)))) (setq som_x (rtos (car som) 2 (getvar "luprec"))) (setq som_y (rtos (cadr som) 2 (getvar "luprec"))) (setq som_z (rtos (caddr som) 2 (getvar "luprec"))) (princ (list som_x som_y som_z ) f) (princ "\n" f) (terpri) (princ "SOMMET" ) (princ CL ) (princ " " ) (princ som ) (princ "\n") (setq ent (entnext ent)) (setq cl (+ cl 1)) ) (close f) (princ) ) (princ "\n==> SOMPOLY") (princ) ********************************************************************************
  6. sosun38

    Interpolation.....

    :( :( Salut, merci pour ta réponse...mais pour moi c'est pour une utilistion très occasionnelle et pour le challenge aussi. Mais c'est pas grave je le met de côté pour moi quand je serrais programmer en lisp. Sosun38.... :yltype: :) :) :)
  7. Bonjour, L'objectif est de créer une routine lisp capable en partant d'un dessin contenant des polylignes (2D et/ou 3D) d'implanter des points en 3D (X,Y,Z) selon une grille choisie par l'utilisateur. Etapes à respecter si possible: *1: Renseignement. le lisp doit renseigner du Zmin et du Zmax du dessin. *2: Création de la grille. le lisp doit demander à l'utilisateur: -"choisir la résolution de la grille en unité de dessin ( X unité x Y unité)". -"choisir le centre de la grille" (avec la possibilité par clavier ou par la souris). -"choisir l'altitude Z de la grille". *3: Choix des polylignes à traiter. le lisp doit demander à l'utilisateur: -"sélectionner les polylignes". *4: Projection des sommets des polylignes choisies. le lisp doit ramener tous ces sommets en un même Z=Z de la grille. *5: Construction d'un point par interpolation. Le lisp doit créer un maillage avec les sommets projetés sur la grille; obtenant ainsi des triangles. Chaque point (intersection des lignes de la grille) de la grille construite en (2) est ainsi compris dans un de ces triangles. Prenons comme point de construction de la grille: G(Xg,Yg,Zg =Zgrille). Soit le triangle construit par les points: Ap(Xa,Ya,Za=Zgrille) projeté du sommet A(Xa,Ya,Za) sur la grille. Bp(Xb,Yb,Zb=Zgrille) projeté du sommet B(Xb,Yb,Zb) sur la grille. Cp(Xc,Yc,Zc=Zgrille) projeté du sommet C(Xc,Yc,Zc) sur la grille. G est à l'intérieur de ce triangle. Le lisp doit à partir d'ici reconstruire le triangle ApBpCp en un triangle ABC avec les Z correspondants. Enfin il doit implanter le point Gi(Xg,Yg,Zg interpolée) qui devrait être à l'intérieur du triangle ABC avec une altitude Z calculée par interpolation. Ainsi le point Gi (Xg,Yg,Zg interpolée) construit a pour projection sur la grille le point G(Xg,Yg,Zg grille). Le lisp doit faire ceci pour tous les sommets des polylignes sélectionnées. *6: finalisation du dessin. le lisp doit demander à l'utilisateur: -"voulez-vous conserver les polylignes sélectionnées". si "oui" : garder les polylignes sélectionnées et implanter tous les points Gi. si "non" : supprimer les polylignes sélectionnées et implanter tous les points Gi. Si possibles au lancement du lisp avoir ceci: "choisir une action: Renseignement ou Grille." Au final la grille initiale est redessinée avec un Z interpolé pour chacun de ses points de construction. Bon courage les as.... ....Merci. sosun38. :) :D :D :P :P :) :) [Edité le 19/2/2008 par sosun38] [Edité le 19/2/2008 par sosun38]
  8. sosun38

    polylignes et routine

    Merci... ça fonctionne correctement. sosun38
  9. sosun38

    polylignes et routine

  10. sosun38

    polyligne et elevation

    PARFAIT...... Merci mille fois. sosun38
  11. sosun38

    polylignes et routine

    PARFAIT.... la solution 1: marche tres bien. la solution 2: j'utilise déjà R_pline qui fonctionne tres bien , mais j'aurais voulu pouvoir selectionner toutes les polylignes en même temps... Merci encore..... sosun38
  12. sosun38

    polylignes et routine

    Je ne suis toujours pas très sur de comprendre, mais s'il s'agit de redessiner les polylignes sélectionnées avec des sommets equidistants, tu peux esayer ça : EDIT : code corrigé (vl-load-com) (defun c:test (/ di len nb plst)[Edité le 18/12/2007 par (gile)] Salut Gile, [u]PROBLEME 1:[/u] je te sollicite pour ton lisp "test". Est-ce que tu peux le perfectionner: c'est-à-dire que si dans la sélection des polylignes il y en a pour lesquelles le dernier segment (distance entre le dernier et avant dernier sommet) est inférieure à la longueur du segment choisi (sommets equidistants), alors le dernier sommet est supprimé lors du redessinage des polylignes. [u]PROBLEME 2:[/u] Est-ce que par une lisp on peut mettre toutes les lignes, polylignes, polylignes 3d d'un dessin dans le même sens de parcours ? Merci. sosun38 [Edité le 7/2/2008 par sosun38]
  13. sosun38

    polyligne et elevation

    Salut Giles.. Oui il faut qu'au final j'obtienne des polylignes 3D. Chaque sommets d'une polyligne d'élévation "e" prenne comme altitude Z=e. Et j'ai souvent près de 400 polylignes. En fait j'ai des courbes de niveaux avec pour altitudes des élévations. Moi je voudrais via ce lisp les passer en courbes de niveaux 3D. En faisant une selection de toutes les polylignes (courbes de niveaux) à la fois. Merci. sosun38
  14. Bonjour, Est-il possible par une routine lisp de selectionner toute les polylignes d'un dessin autocad et de transformer l'élévation de chaque polyligne en une altitude Z qui serrait appliquée à tous les sommets de la polyligne. C'est à dire si je prend par exemples 4 polylignes: P1 avec comme élévation 250 et comme sommets a1(X1,Y1); a2(X2,Y2); a3(X3,Y3) P2 avec comme élévation 450 et comme sommets b1(X1,Y1); b2(X2,Y2); b3(X3,Y3) P3 avec comme élévation 300 et comme sommets c1(X1,Y1); c2(X2,Y2); c3(X3,Y3) P4 avec comme élévation 250 et comme sommets d1(X1,Y1); d2(X2,Y2); d3(X3,Y3) On aurrait via le lisp 4 polylignes 3D: P1 avec comme sommets a1(X1,Y1, Z=250); a2(X2,Y2, Z=250); a3(X3,Y3, Z=250) P2 avec comme sommets b1(X1,Y1, Z=450); b2(X2,Y2, Z=450); b3(X3,Y3, Z=450) P3 avec comme sommets c1(X1,Y1, Z=300); c2(X2,Y2, Z=300); c3(X3,Y3, Z=300) P4 avec comme sommets d1(X1,Y1, Z=250); d2(X2,Y2, Z=250); d3(X3,Y3, Z=250) Attention toutes les polylignes doivent rester indépendantes. Merci d'avance pour le lisp. sosun38.
  15. sosun38

    polylignes et routine

    salut, merci Arcasdk. merci Gile, mais ton lien ne fonctionne pas: "page non trouvée, retour à l'accueil". Bonne soirée. Sosun38.
  16. sosun38

    polylignes et routine

    Merci gile. ça marche très bien.... Merci encore. sosun38. PS: Ou peut-on trouver un lexique du vocabulaire utilisé dans la programation lisp.
  17. sosun38

    polylignes et routine

    merci beaucoup. je test tout ça demain et je te tiens au news. sosun38
  18. sosun38

    polylignes et routine

    Salut Gile, Est-il possible de faire deux lisp dans le même principe de celui que tu m'avaits fait "file2poly" mais à la différnce que pour ces 2 lisp : _ l'un pour faire des poly3d (de même abscisse (X)) à partir d'un fichier de points. _ l'autre pour faire des poly3d (de même ordonnée (Y)) à partir d'un fichier de points. Merci bien d'avance. J'utilise beaucoup "file2poly" qui me simplifie beaucoup la vie.
  19. sosun38

    polylignes et routine

    Salut gile! C'est génial exactement ce que je voulais... IL me reste juste a me mettre a la programation. A ce sujet tu n'aurais pas un livre ou un tutorial à me conseiller? MERCI ENCORE C'EST SUPER........ sosun38
  20. sosun38

    polylignes et routine

    Salut gile, je viens de tester "file2poly". Une fois que je selectionne mon fichier .txt j'ai le message suivant: erreur: no function definition: STR2LST Merci encore. sosun38
  21. sosun38

    polylignes et routine

    merci ça marche. Génial. en plus on peut selectionner plusieurs polylignes. Merci encore gile.
  22. sosun38

    polylignes et routine

    Salut gile... Merci avant tout pour le lisp mesure qui fonctionne très bien c'est exactement ce que je voulais. Merci à toi aussi pascal19, le tiens aussi fonctionne. Sinon gile pour redessiner les polylignes sélectionnées avec des sommets equidistants quand je lance ton lisp test j'ai le message svt: erreur: no function definition: VLAX-GET-ACAD-OBJECT Sinon ne serait-il pas possible de faire une routine qui va chercher les coordonées dans un fichier txt du genre: X,Y,Z 1018416.87223455,217661.86784110,1294.00000000 1018416.90029552,217661.85734674,1294.00000000 1018419.83798282,217660.88245208,1294.00000000 1018419.89921682,217660.86736907,1294.00000000 1018422.67777894,217660.41155730,1294.00000000 1018422.73697292,217660.40631996,1294.00000000 1018427.22924676,217660.34388384,1294.00000000 1018427.24245587,217660.34348193,1294.00000000 1018430.20133243,217660.20449843,1294.00000000 1018430.22999129,217660.20418020,1294.00000000 1018434.44781797,217660.30850700,1294.00000000 1018434.48883074,217660.30741675,1294.00000000 1018438.95369564,217659.95897272,1294.00000000 1018438.99133628,217659.95781329,1294.00000000 1018442.54007705,217660.01565426,1294.00000000 1018442.97293809,217658.99325853,1293.00000000 1018438.72191615,217658.92397108,1293.00000000 1018438.68427550,217658.92513051,1293.00000000 1018435.06288183,217659.20774892,1293.00000000 1018435.02186905,217659.20883917,1293.00000000 1018430.18591792,217659.08922322,1293.00000000 1018430.15725906,217659.08954145,1293.00000000 1018426.76527181,217659.24886891,1293.00000000 1018426.75206271,217659.24927082,1293.00000000 1018422.88529629,217659.30301329,1293.00000000 1018422.82610231,217659.30825062,1293.00000000 1018419.70547063,217659.82017752,1293.00000000 1018419.64423663,217659.83526053,1293.00000000 1018416.34728004,217660.92938152,1293.00000000 1018416.31921907,217660.93987588,1293.00000000 1018406.86137565,217664.88670894,1293.00000000 1018406.78606921,217664.90973543,1293.00000000 1018406.77790490,217664.91137468,1293.00000000 1018443.40579914,217657.97086281,1292.00000000 1018438.45249601,217657.89012886,1292.00000000 1018438.41485537,217657.89128830,1292.00000000 1018435.63693290,217658.10808108,1292.00000000 1018435.59592013,217658.10917133,1292.00000000 1018430.14184455,217657.97426624,1292.00000000 1018430.11318569,217657.97458448,1292.00000000 1018426.28808776,217658.15425588,1292.00000000 1018426.27487865,217658.15465779,1292.00000000 1018423.03361966,217658.19970661,1292.00000000 1018422.97442568,217658.20494395,1292.00000000 1018419.51172443,217658.77298596,1292.00000000 1018419.45049044,217658.78806897,1292.00000000 1018415.79426456,217660.00141630,1292.00000000 1018443.83866019,217656.94846708,1291.00000000 1018438.18307588,217656.85628665,1291.00000000 1018438.14543523,217656.85744608,1291.00000000 1018436.21098398,217657.00841325,1291.00000000 1018436.16997121,217657.00950350,1291.00000000 1018430.09777118,217656.85930927,1291.00000000 1018430.06911232,217656.85962750,1291.00000000 1018425.81090370,217657.05964286,1291.00000000 1018425.79769460,217657.06004477,1291.00000000 1018423.18194303,217657.09639994,1291.00000000 1018423.12274905,217657.10163727,1291.00000000 1018419.31797824,217657.72579440,1291.00000000 1018419.25674424,217657.74087741,1291.00000000 1018415.24124908,217659.07345108,1291.00000000 1018415.21318811,217659.08394544,1291.00000000 1018374.41679091,217706.91515332,1295.00000000 1018377.77328399,217701.05640481,1295.00000000 1018377.81688273,217700.99466744,1295.00000000 1018378.79735964,217699.85277337,1295.00000000 1018378.80035120,217699.84932924,1295.00000000 1018379.61771811,217698.91907727,1295.00000000 1018379.65703276,217698.86608846,1295.00000000 1018383.14973379,217693.24223545,1295.00000000 1018383.15160253,217693.23925576,1295.00000000 1018385.75493322,217689.12853705,1295.00000000 Cette routine lirait ce fichier de la sorte: il trace une polyligne P1 en commançant par la ligne 1 en (X1,Y2,Za) comme sommet 1 puis il continu la polyligne P1 en prenant la ligne 2 en (X2,Y2,Za) pour le sommet 2 ainsi de suite pour chaque sommet et quand il arrive a une ligne n en (Xn,Yn,Zb) ou le Zb est different du Za alors il se dit que le dernier sommet de ma polyligne P1 est le point (Xn-1,Yn-1,Za) de la ligne n-1. Et alors il commence la polyligne P2 en prenant comme sommet 1 le point (Xn,Yn,Zb) de la ligne n.........jusqu'à ce qu'il rencontre un nouveau point avec un Zc different....et là il attaque la polyligne P3....ainsi de suite jusqu'à ce qu'il arrive a une ligne vide. Voilà...mon idée. Merci. sosun38 PS: je cherche de la doc pour me former au lips.
  23. sosun38

    polylignes et routine

    Salut gile.. voilà jusqu'a présent je faisait un mesurer sur une polyligne, ainsi j'obtenais un nombre de points à distance égale sur ma polyligne. Puis je rajoutais le premier sommet et le dernier sommet de ma polyligne. Enfin je fesais une fenetre de selection de tous ces points via le lisp "ptexport" ainsi j'obtenait les coordonnées en XYZ de tous mes points dans un fichier txt. Puis via le script suivant: _3dpoly X,Y,Z . .une ligne par point . . X,Y,Z Ainsi je retraçais ma polyligne à quelques point près identique à l'initial: tous mes sommet sont a distances egales, sauf le dernier sommet. En conclusion mon but étant de redessiner des polylignes existantes ( à sommets quelconques) en polylignes avec des sommets à interdistances égales et choisi par moi. Mais déjà avec vos réponse je pense bien avancer...je vous tiens au news des demain. Sur ce bonne soirée. Sosun38.
  24. sosun38

    polylignes et routine

    Merci à pascal19 et à gile pour vos réponse.. J'essaye tout ça demain au taff et je vous tiens au courant. Merci encore... Sinon pour ma deuxieme requete c'est faisable ou pas? " ....... savoir si par une routine on peut tracer des polyligne 3D avec une multidudes de points avec plusieurs altitudes dans un même dessin? C'est à dire que tous les points ayant la même altitudes seront au final sur la même polyligne (une polyligne par altitude) et tout ceci en une seule opération...." J'en demande bcp peut-être? Merci. Sosun38...
  25. sosun38

    polylignes et routine

    Merci pour ta réponse pascal19.... Ta routine fonctionne très bien...mais me donne la longueur totale des polylignes. mon soucis c'est quand on fait un mesurer on a: """" Commande: _measure Choix de l'objet à mesurer: Spécifiez la longueur du segment ou [bloc]: """"" ben moi je voudrais par exemple choisir X polylignes et spécifier une longueur de 5, c'est à dire qu'autocad m'insère des points tous les 5 m sur les X polylignes. Le but étant de faire cette opération sur toutes mes polylignes en même temps...si possible. J'espère être plus clair cette fois-ci.....désolé et merci encore pour ta réponse. Sosun38.
×
×
  • 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é