Aller au contenu

Ellionel

Membres
  • Compteur de contenus

    46
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Ellionel

  1. Ellionel

    Prob sur mon lisp

    Je travaille sur Autocad 2007 . Mon but est qu'a partir d'une région , je fasse apparaitre une boite de message aves les infos suivantes concernat le région soit : Périmetre Poids calculé : Aire*2.7 Moment d'inertie Rayon de giration , Le centre de gravité . Pour calculé , il faut que le centre de gravité au point 0,0 . Voilou , cela est pour de la 2 d .
  2. Ellionel

    Prob sur mon lisp

    Merci pour le conseil , J'ai supprimé la partie de qui pose probleme , la partie de l'Aire .. Mais le probleme subsiste .. Merci
  3. Ellionel

    Prob sur mon lisp

    Merci , Mais comment resoudre ce probleme ???
  4. Bonjour , Je viens de faire de lisp : --------------------------- (defun G_strtrim (s) (cond ((/= (type s) 'str) nil) (t (G_strltrim (G_strrtrim s))) ) ) (defun G_strltrim (s) (cond ((eq s "") s) ((/= " " (substr s 1 1)) s) (t (G_strltrim (substr s 2))) ) ) (defun G_strrtrim (s) (cond ((eq s "") s) ((/= " " (substr s (strlen s) 1)) s) (t (G_strrtrim (substr s 1 (1- (strlen s))))) ) ) (defun G_strpos (c1 c2 / trouve i j l1 l2) (setq trouve nil i 1 l1 (strlen c1) l2 (strlen c2)) (while (and (not trouve) (<= i l2) (<= l1 l2)) (if (eq (substr c1 1 1) (substr c2 i 1)) (progn (setq trouve T j 2) (while (<= j l1) (if (> (- (+ i j) 1) l2) (setq trouve nil) (if (/= (substr c1 j 1) (substr c2 (- (+ i j) 1) 1)) (setq trouve nil) ) ) (setq j (1+ j)) ) ) ) (setq i (1+ i)) ) (if trouve (eval (1- i)) (eval nil) ) ) (defun c:cengra ( / fic ens ) (defun F_AffCenGra ( fichier / fic_inf chaine chaine2 pos_x val_x pos_y val_y) (setq fic_inf (open fichier "r")) (if fic_inf (progn (setq chaine (read-line fic_inf)) (while (and chaine (null (wcmatch chaine "Centre*"))) (setq chaine (read-line fic_inf)) ) (if chaine (setq chaine2 (read-line fic_inf)) ) (close fic_inf) (if (and (wcmatch chaine "*X:*") (wcmatch chaine2 "*Y:*")) (progn (setq pos_x (g_strpos "X:" chaine)) (setq pos_y (g_strpos "Y:" chaine2)) (setq val_x (substr chaine (+ pos_x 2))) (setq val_y (substr chaine2 (+ pos_y 2))) (setq val_x (atof (G_strtrim val_x))) (setq val_y (atof (G_strtrim val_y))) (command "point" (list val_x val_y)) (setq gpt (list val_x val_y)) ) ) ) ) ) (defun F_RecupMom ( fichier / fic_inf chaine chaine2 pos_x val_x pos_y val_y) (setq fic_inf (open fichier "r")) (if fic_inf (progn (setq chaine (read-line fic_inf)) (while (and chaine (null (wcmatch chaine "Moments d'inertie*"))) (setq chaine (read-line fic_inf)) ) (if chaine (setq chaine2 (read-line fic_inf)) ) (close fic_inf) (if (and (wcmatch chaine "*X:*") (wcmatch chaine2 "*Y:*")) (progn (setq pos_x (g_strpos "X:" chaine)) (setq pos_y (g_strpos "Y:" chaine2)) (setq val_x (substr chaine (+ pos_x 2))) (setq val_y (substr chaine2 (+ pos_y 2))) (setq val_x (atof (G_strtrim val_x))) (setq val_y (atof (G_strtrim val_y))) (list val_x val_y) ) ) ) ) ) (defun F_RecupRay ( fichier / fic_inf chaine chaine2 pos_x val_x pos_y val_y) (setq fic_inf (open fichier "r")) (if fic_inf (progn (setq chaine (read-line fic_inf)) (while (and chaine (null (wcmatch chaine "Rayon de giration*"))) (setq chaine (read-line fic_inf)) ) (if chaine (setq chaine2 (read-line fic_inf)) ) (close fic_inf) (if (and (wcmatch chaine "*X:*") (wcmatch chaine2 "*Y:*")) (progn (setq pos_x (g_strpos "X:" chaine)) (setq pos_y (g_strpos "Y:" chaine2)) (setq val_x (substr chaine (+ pos_x 2))) (setq val_y (substr chaine2 (+ pos_y 2))) (setq val_x (atof (G_strtrim val_x))) (setq val_y (atof (G_strtrim val_y))) (list val_x val_y) ) ) ) ) ) (defun F_RecupAire( fichier / fic_inf chaine chaine2 pos_x val_x pos_y val_y) (setq fic_inf (open fichier "r")) (if fic_inf (progn (setq chaine (read-line fic_inf)) (while (and chaine (null (wcmatch chaine "Aire:*"))) (setq chaine (read-line fic_inf)) ) (close fic_inf) (setq val_x (substr chaine 6)) (setq val_x (atof (G_strtrim val_x))) ) ) ) (defun F_RecupBoite ( fichier / fic_inf chaine chaine2 pos_x val_x pos_y val_y val_x1 val_x2 val_y1 val_y2 ) (setq fic_inf (open fichier "r")) (if fic_inf (progn (setq chaine (read-line fic_inf)) (while (and chaine (null (wcmatch chaine "Boîte*"))) (setq chaine (read-line fic_inf)) ) (if chaine (setq chaine2 (read-line fic_inf)) ) (close fic_inf) (if (and (wcmatch chaine "*X:*") (wcmatch chaine2 "*Y:*")) (progn (setq pos_x1 (g_strpos "X:" chaine)) (setq pos_x2 (g_strpos "--" chaine)) (setq pos_y1 (g_strpos "Y:" chaine2)) (setq pos_y2 (g_strpos "--" chaine2)) (setq val_x1 (substr chaine (+ pos_x1 2) (- pos_x2 1))) (setq val_x2 (substr chaine (+ pos_x2 2))) (setq val_y1 (substr chaine2 (+ pos_y1 2) (- pos_y2 1))) (setq val_y2 (substr chaine2 (+ pos_y2 2))) (setq val_x1 (atof (G_strtrim val_x1))) (setq val_x2 (atof (G_strtrim val_x2))) (setq val_y1 (atof (G_strtrim val_y1))) (setq val_y2 (atof (G_strtrim val_y2))) (if (> (abs val_x1) (abs val_x2)) (setq val_x (abs val_x1)) (setq val_x (abs val_x2)) ) (if (> (abs val_y1) (abs val_y2)) (setq val_y (abs val_y1)) (setq val_y (abs val_y2)) ) (list val_x val_y) ) ) ) ) ) (setvar "cmdecho" 0) (command "pdmode" 34) (command "pdsize" 0.0) (setq fic "c:/toto.mpr") (setq ens (ssget)) (if (and ens (> (sslength ens) 0)) (progn (command "_massprop" ens "" "o" fic) (F_AffCenGra fic) (command "scu" "o" gpt ) (command "_massprop" ens "" "o" fic) (command "scu" "" ) (setq val_sf (F_RecupAire fic)) (setq l_val (F_RecupBoite fic)) (setq l_val_ray (F_RecupRay fic)) (setq ray_x (car l_val_ray)) (setq ray_y (cadr l_val_ray)) (setq l_val_i (F_RecupMom fic)) (setq Ix_v (/ (car l_val_i) (cadr l_val))) (setq Iy_v (/ (cadr l_val_i) (car l_val))) (print Ix_v) (print Iy_v) (princ "\nPosition du texte...") (command "texte" pause 3.0 0 (strcat "Ix = " (rtos (car l_val_i) 2 0) " mm4")) (command "texte" "@0,-5" 3.0 0 (strcat "Iy = " (rtos (cadr l_val_i) 2 0) " mm4")) (command "texte" "@0,-5" 3.0 0 (strcat "Ix/v = " (rtos Ix_v 2 0) " mm3")) (command "texte" "@0,-5" 3.0 0 (strcat "Iy/v = " (rtos Iy_v 2 0) " mm3")) (command "texte" "@0,-5" 3.0 0 (strcat "Aire = " (rtos val_sf 2 0) " mm2")) (command "texte" "@0,-5" 3.0 0 (strcat "Rx = " (rtos ray_x 2 1) " mm")) (command "texte" "@0,-5" 3.0 0 (strcat "Ry = " (rtos ray_y 2 1) " mm")) ) (princ "\n\tAucun objet selectionne !") ) (setvar "cmdecho" 1) ) (princ) --------------------- Mais il me plante avec le message " erreur: type d'argument incorrect: stringp nil " Pouvez m'aider , svp ??? Merci
  5. re bonjour je souhaiteria faire execter ces 2 lispt l'une dans l'autre donc ds un premier temps la list poly , puis gerer l'enregistrement des fichiers en 2000 ( objet ) en choissisant le repertoire comme indiqué par patrick !!! Merci
  6. Ellionel

    Presentation et objet

    Merci ,pour vos reponses !! Mais le probleme de ces solutions , est que les plans seraient en doublons (dxf et pdf ou dwf ) . Cela pose des problemes de stockages et surtout de mise à jour . A+
  7. Bonjour , Je diffuse mes plans autocad au pres d'utilisateurs , qui n'ont comme besoin seulement la visualisation et l'impression . J'ai trouvé comme visionneuse ( edrawings ,dwg true wiew , ..) mais lerus problemes est qu'il m'affiche longlet objet par defaut à l'ouverture . Je souhaiterai savoir si il y une solution à ce probleme ??? Merci
  8. Ellionel

    Gestion fichier en vba

    Re bonjour , Je suis venu à bout de mon probleme , a savoir enregister en vba un dessin deja ouvert . par ex; Voux ouvrez un plan , le modifer puis le reenregistrer . La commande 'thisdrawing.save" ne marche pas car le fichier est vérouille par autocad . Donc voici ma solution : 'Tester l'existance de ce fichier If Dir("non du fichieré, vbNormal Or vbReadOnly Or vbHidden Or vbSystem Or vbArchive) <> "" Then 'J'affiche un message si le fichier existe If MsgBox("Voulez vous Enregistrer sur le meme N° de plan ?", _ vbYesNo) = vbYes Then ' Si oui Enregistre le dessin, puis zoom SendKeys "_qsave{ENTER}" ThisDrawing.Application.ZoomAll Voila , sinon je fais thisdrawing.saveas ("nouveaux non ") .. @+
  9. Ellionel

    Gestion fichier en vba

    Merci pour cette réponse , le probleme vient que les dessins sont ne reseau et si le dessin est vérrouillé au moment de l'enregistrment , il ne veux pas 'enregistrer . Si vous avez une idée , je ne dis pas nom . Pour creer un repertoire , je passe par une commande fso soit : Dim fso Set fso = CreateObject("scripting.filesystemObject") fso.createfolder ("c:\Nouveaux repertoire\) A+
  10. Bonjour , je suis en train de rediger une macro en vba , et je bute sur le fair de sauvegarder le dessin en cours , si je fais "ThisDrawing.Save " il plante , car je pense que le fichier est encours d'utilisation . Je veux l'enregister dans un dessin temporaire puis fermer mon premier fichier et ensuite le reenregistrer ..Voici le début : " If MsgBox("Voulez éffacer le dessin existant ?", _ vbYesNo) = vbYes Then ThisDrawing.SaveAs ("c:\dessinencours_old.dxf") ' de plus la fonction pour créer un repertoire , svp Merci
  11. J'aimerais le coller à la siute de la routine " joinpoly" . Ou pourrias je trouver une doc intérressante sur les autolisp , stp ,? J'aimerais m'y intérrésser vraiment ... @+
  12. Bonjour , Merci pour ces reponses . Patrick 35 ta proposition m'interresse beaucoup , je ne suis pas doué pour le frape , mais je ne vois comment comment l'intégrer au code de (gile) . Merci encore .
  13. Merci pour cette reponse , Je crois que à la place du "16" , il faut que mettre "0" , je l'ai fait ms la routine ne s'arrete pas , et du coup cela ne marche pas bien . Merci
  14. Re bonjour , Je viens de decouvrir grace à vous les lisp , et cela est bien pratique . Je souhaiterais savoir comment "automatiser le enregistrer sous" en choisisant la version ( 2000 pour ma part ) avec dans l'option dxf le select object activé . Car j'ai des probleme de compatibiliter avec d'autre logiciel ( Romidot) . je souhaiterai placer cela a la suite de cette lisp ( les droits d'auteur reviennent à (gile) ) : -------------------------- (defun c:JoinPoly (/ ss) (if (setq ss (ssget '((0 . "ARC,LINE,LWPOLYLINE")))) (if (or (= 1 (getvar "PEDITACCEPT")) (vl-every '(lambda (x) (= "LWPOLYLINE" (cdr (assoc 0 (entget x))))) (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) ) ) (command "_.pedit" "_m" ss "" "_j" "_j" "_b" pause "_c" "") (command "_.pedit" "_m" ss "" "_y" "_j" "_j" "_b" pause "_c" "") ) ) (princ) ) ----------------------- Merci
  15. Ellionel

    Fermer Polylignes !!

    Je viens de tester l'enchainement des deux lisp . :D Ils marchent tres bien je dois juste faire clore apres le remier lisp , car sans cela , il ne me créer pas de région dans le second lisp . Je peux donc ainsi transformer un profil aml déssiné en une region fermée avec les caractéristiques méca . Je vais essayer de comprendre comment fonctione les lisp pour pouvoir essayer de me dépatouiller . Merci Encore
  16. Ellionel

    Fermer Polylignes !!

    Merci pour ce lisp . Il marche tres bien , serais til possible de deplacer la region au point 0,0, et ensuite afficher les données : Moments d'inerties ,l'aire et le périmetre . :) Pour le probleme des polylignes non fermées , je crois que la solution serait d'automatiser "Modification-objet-polyligne-multiple- Oui-Joindre-type de jointure-les deux- ) Puis recommencer mais cette fois ci finir par clore , et ensuite lancer ton lisp . Et peut etre commencer par "overkill" Existe til une façon "simple " de faire cela , svp ??? Merci pour vos réponses ,
  17. Ellionel

    Fermer Polylignes !!

    Voilou , 1- Je viens de tester le lisp . Cela me retourne comme message :""""; erreur: type d'argument incorrect: numberp: nil" "" Je travaille avec autocad 2007 , Il me retourne ce message , juste apres avoir charger la lisp . 2- La methode à zébulon 'qselect ' ne marche pas tres bien , car quand il ferme les polylignes , il l'utilise la fonction clore et du coup c'est pas top . Merci encore !!!
  18. Ellionel

    Fermer Polylignes !!

    Merci encore pour vos reponses . Je vous soupsonne de ne pas manger pour etre aussi prompt pour les reponse . :D Je vais tester tout cela et je vous tiens au courant ...
  19. Ellionel

    Fermer Polylignes !!

    Merci pour vos réponses , je vais essayer cela des cet a Midi . Je souhaite dépalcer le profil (déssiné avec des lignes , des arc , des slines , des ellipses ,...,) au point 0,0. je m'explique , je souhaite que le centre de garvité du profil ( 1 ou plusieurs région) soit au pint 0,0 , car ainsi j'aia les moments d'inertie correct . Merci encore et à bientot .
  20. Bonjour , J'ai un gros problemes , j'ai recupérer des plans , et je dois en autre calculer les carac méca ( poids périm , inertes ,..) de ces profils . Ils ont été mal dessinés , il y a aucune polyligne de fermée , j'utiliserai bien la fonction , "objet,polyligne , joindre ou clore , mais cela ne me donne pas les résultats espéraient . Si vous pouviez m'aiguiller sur une routine , en lisp ou vba , pour automatiser cela ,soit ( fermer polyligne , créer region , calcul inertie , deplacer la profil au point 0,0 ) . A bientot .
  21. Ellionel

    Format TIF

    Bonjour , Tu dois vectoriser ton dessin . Sur le forum , tu trouveras plein de liens ver divers logiciles de vectorisation ( adobe illustrataor , ...) . Ensuite tu pourras le travailler avec autocad . En espérant t'avoir aidé .
×
×
  • 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é