ch.zara Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 bonjour,je cherche un programme lisp ou vba autocad qui permet de créer un fichier coordonnées xyz des sommets des polylignes 3d ,la commande liste de autocad semble trop fastidiieuse à l'utliser comme j'ai bcp bcp de polylignes(pour mon cas ,mes polylignes sont des courbes de niveau ) j'en serais tres reconnaisante si vous pourriez m'aider
(gile) Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 Salut, Un truc vite fait, comme je ne sais quel type de fichier tu veux, j'ai essayé quelque chose de polyvalent : tu peux l'enregistrer en txt et l'ouvrir avec excel (séparateur = virgule), en .csv si Windows est paramétré pour le séparateur de données = virgule et en .scr si tu veux l'utiliser comme script pour recopier les polylignes dans d'autres dessins.La précision des points dépend de la valeur de la variable LUPREC. (defun c:3dpoly2file (/ path ss file lst) (vl-load-com) (if (and (setq path (getfiled "Créer un fichier" (getvar "DWGPREFIX") "" 1)) (ssget '((0 . "POLYLINE") (-4 . "&") (70 . 8))) ) (progn (setq file (open path "w")) (vlax-for pl (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (write-line "_3dpoly" file) (setq lst (vlax-get pl 'Coordinates)) (while lst (write-line (strcat (rtos (car lst)) "," (rtos (cadr lst)) "," (rtos (caddr lst)) ) file ) (setq lst (cdddr lst)) ) (write-line "" file) ) (close file) ) ) (princ) ) PS : comme tu peux le voir, il n'était pas nécessaire de poster 3 fois le même message pour avoir une réponse.Aussi, pourrait-tu effacer tes messages dans les autres forums (Editer > ! Effacer ce message ! [Edité le 16/4/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ch.zara Posté(e) le 16 avril 2008 Auteur Posté(e) le 16 avril 2008 merci de m'avoir repondumais avant d'effacer ces messages ,il faut d'abord essayer ta solution :) et voir s'il ya autres réponses
(gile) Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 merci de m'avoir repondumais avant d'effacer ces messages ,il faut d'abord essayer ta solution :) et voir s'il ya autres réponses Si tu dois avoir d'autres réponses, tu les auras aussi bien dans ce fil, et si d'autres répondent sur les autres fils, il n'y aura plus moyen de les effacer.Au delà d'alourdir le site (qui n'en a pas besoin), multiplier des sujet similaires rend plus difficiles les recherches futures. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ch.zara Posté(e) le 16 avril 2008 Auteur Posté(e) le 16 avril 2008 dites moi svpcomme puis je lancer ce prgramme via autocad (je ne suis pas si top en matière de programmation)
(gile) Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 Tu peux voir ce sujet Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ch.zara Posté(e) le 16 avril 2008 Auteur Posté(e) le 16 avril 2008 bonsoir;merci ca a marché pour les polylignes en 3D :) cependant qd j'ai voullu tester le routine sur les courbes de niveau qui sont des polylignes en 2D dont les sommets sont définis en XY ET Z,ca n'a pas marché ,j'arrive pas à sélectionner les courbes de niveau , alors que je veux récuperer plutot les coordonnées de ces sommets sur un fichier txt,j'ai abusé un peu mais j'ai besoin de ton aide ,parceque vraiment je suis coincée. eh j'ai effacé les messages sur les autres forum comme tu as dit :)
(gile) Posté(e) le 16 avril 2008 Posté(e) le 16 avril 2008 Voilà une version qui devrait fonctionner avec les polylignes 3d, les polylignes 2d et les polylignes optimisées (mais il ne pourra être utilisé comme script qu'à condition de remplacer tous les types de polylignes par : _3dpoly) (defun c:poly2file (/ path ss file lst pt nor elv) (vl-load-com) (if (and (setq path (getfiled "Créer un fichier" (getvar "DWGPREFIX") "" 1)) (ssget '((-4 . "[b] (-4 . "[b] (0 . "POLYLINE") (-4 . "[b] (-4 . "&") (70 . 112) (-4 . "NOT>") (-4 . "AND>") (0 . "LWPOLYLINE") (-4 . "OR>") ) ) ) (progn (setq file (open path "w")) (vlax-for pl (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object) ) ) ) (setq lst (vlax-get pl 'Coordinates)) (cond ((= (vla-get-ObjectName pl) "AcDb3dPolyline") (write-line "Polyligne 3d" file) (while lst (write-line (strcat (rtos (car lst)) "," (rtos (cadr lst)) "," (rtos (caddr lst)) ) file ) (setq lst (cdddr lst)) ) (write-line "" file) ) ((= (vla-get-ObjectName pl) "AcDb2dPolyline") (write-line "Polyligne 3d" file) (setq nor (vlax-get pl 'Normal)) (while lst (setq pt (trans (list (car lst) (cadr lst) (caddr lst)) nor 0)) (write-line (strcat (rtos (car pt)) "," (rtos (cadr pt)) "," (rtos (caddr pt)) ) file ) (setq lst (cdddr lst)) ) (write-line "" file) ) ((= (vla-get-ObjectName pl) "AcDbPolyline") (write-line "Polyligne optimisée" file) (setq nor (vlax-get pl 'Normal) elv (vla-get-Elevation pl) ) (while lst (setq pt (trans (list (car lst) (cadr lst) elv) nor 0)) (write-line (strcat (rtos (car pt)) "," (rtos (cadr pt)) "," (rtos (caddr pt)) ) file ) (setq lst (cddr lst)) ) (write-line "" file) ) ) ) (close file) ) ) (princ) ) [Edité le 17/4/2008 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ch.zara Posté(e) le 17 avril 2008 Auteur Posté(e) le 17 avril 2008 voila,j'ai essayé de charger le programme mais il m'affiche l'erreur suivanteCommande: _appload 2DPoly.lsp correctement chargé(s)2DPoly.lsp a été ajouté à la liste des applications lancées au démarrage.Commande: ; erreur: cdrs supplémentaire dans la paire pointée en entrée
(gile) Posté(e) le 17 avril 2008 Posté(e) le 17 avril 2008 Un oubli de ma part, je n'avais pas bidouillé les "J'ai modifié le code, ça devrait fonctionner maintenant. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ch.zara Posté(e) le 17 avril 2008 Auteur Posté(e) le 17 avril 2008 ouf, je peux enfin modéliser mon terrain tranquillementmerci mille merci gile ,t'es génial j'ai essayé d'effacer les message mais je vois qui'ils sont encore la :)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant