(gile) Posté(e) le 28 janvier 2009 Posté(e) le 28 janvier 2009 Salut, Comme la demande est récurrente et que les fichiers points peuvent être différemment formatés, j'ai essayé de faire quelque chose de polyvalent. L'utilisateur choisis un fichier ascii (.txt .csv ou autre) puis spécifie le format du fichier et les paramètre d'insertion dans une boite de dialogue. http://img109.imageshack.us/img109/8215/instopo.png Si le bloc "TCPOINT" n'est pas présent dans le dessin, il est automatiquement créé.Chacun peut soit modifier ce bloc par la suite, soit en créer un à sa guise. Le bloc doit être nommé "TCPOINT" et contenir au moins deux attributs "MAT" pour le matricule du point et ALT pour l'altitude.Si le matricule et la coordonnée Z du bloc sont présents dans le fichier et si les case à cocher "Matricule" et "Altitude" sont cochées, ces attributs sont automatiquement renseignés. ;;; INSTOPO (gile) ;;; Insère le bloc "PointBloc" sur les points décrit dans un fichier ascii (.txt .csv ou autre) ;;; ;;; Modification : possibilité d'insérer un point 02/12/2009 (defun c:instopo (/ *error* makeblock filename tmp file layers clay ptlay blklay data-sep dec-sep mat-p mat alt scl point bloc dcl_id space line coords matric insert ) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) ;;---------------------------------------------------;; (defun *error* (msg) (or (= msg "Fonction annulée") (princ (strcat "Erreur: " msg)) ) (and file (close file)) (vla-EndUndoMark *acdoc*) (princ) ) ;;---------------------------------------------------;; ;; MakeBlock ;; Crée le bloc PointBloc (defun makeblock (/ block) (vl-load-com) (setq block (vla-add *blocks* (vlax-3d-point '(0. 0. 0.)) "TCPOINT" ) ) (vla-put-Layer (vla-addPoint block (vlax-3d-point '(0. 0. 0.))) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. 0.5 0.)) "MAT" "" ) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. -3. 0.)) "ALT" "" ) "0" ) ) ;;---------------------------------------------------;; (if (setq filename (getfiled "Sélectionner un fichier point" "" "txt;csv;*" 0 ) ) (progn ;; Création du fichier DCL temporaire (setq tmp (vl-filename-mktemp "Tmp.dcl") file (open tmp "w") ) (write-line "InsTopo :dialog{label=\"InsTopo\"; :boxed_row{label=\"Format du fichier\"; :boxed_radio_column{label=\"Séparateur de données\";key=\"data-sep\"; :radio_button{label=\"Virgule\";key=\"44\";value =\"1\";} :radio_button{label=\"Point-virgule\";key =\"59\";} :radio_button{label=\"Espace\";key=\"32\";} :radio_button{label=\"Tabulation\";key =\"9\";}} :column{ :boxed_radio_column{label=\"Séparateur décimal\";key=\"dec-sep\"; :radio_button{label=\"Virgule\";key =\"com\";} :radio_button{label=\"Point\";key=\"dot\";value=\"1\";}} :boxed_radio_column{label=\"Matricule\";key=\"mat-p\"; :radio_button{label=\"Présent\";key=\"present\";value=\"1\";} :radio_button{label=\"Absent\";key=\"absent\";}}}} :boxed_row{label=\"Point\"; :toggle{label=\"Insérer des points\";key=\"point\";value=\"1\";} :popup_list{label=\"Calque\";key =\"ptlay\";edit_width = 24;}} spacer; :boxed_column{label=\"Bloc\"; :toggle{label=\"Insérer de blocs\";key=\"bloc\";value=\"1\";} :row{ :boxed_column{label=\"Attributs\"; :toggle{label=\"Matricule\";key=\"mat\";value=\"1\";} :toggle{label=\"Altitude\";key=\"alt\";value=\"1\";}} spacer; :column{spacer; :popup_list{label=\"Calque\";key =\"blklay\";edit_width = 24;} :edit_box{label=\"Echelle \";key=\"scl\";value=\"1.0\";fixed_width=true;} spacer;}}} ok_cancel;}" file ) (close file) (vlax-for l (vla-get-Layers *acdoc*) (setq layers (cons (vla-get-Name l) layers)) ) (setq layers (vl-sort layers ' clay (getvar "CLAYER") ptlay clay blklay clay data-sep "44" dec-sep "dot" mat-p "present" mat "1" alt "1" scl 1.0 point T bloc T ) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "InsTopo" dcl_id)) (exit) ) (start_list "ptlay") (mapcar 'add_list layers) (end_list) (start_list "blklay") (mapcar 'add_list layers) (end_list) (set_tile "ptlay" (itoa (vl-position clay layers))) (set_tile "blklay" (itoa (vl-position clay layers))) (foreach k (list "data-sep" "dec-sep" "mat-p" "mat" "alt") (action_tile k "(set (read $key) $value)") ) (action_tile "point" "(if (= \"1\" $value) (progn (setq point T) (mode_tile \"ptlay\" 0) ) (progn (setq point nil) (mode_tile \"ptlay\" 1) ) )" ) (action_tile "bloc" "(if (= \"1\" $value) (progn (setq bloc T) (mode_tile \"blklay\" 0) (mode_tile \"mat\" 0) (mode_tile \"alt\" 0) (mode_tile \"scl\" 0) ) (progn (setq bloc nil) (mode_tile \"blklay\" 1) (mode_tile \"mat\" 1) (mode_tile \"alt\" 1) (mode_tile \"scl\" 1) ) )" ) (action_tile "ptlay" "(setq ptlay (nth (atoi $value) layers))") (action_tile "blklay" "(setq blklay (nth (atoi $value) layers))") (action_tile "scl" "(setq scl (distof $value)) (while (or (not scl) ( (alert \"Nécessite un nombre réel strictement positif\") (setq scl 1.0) (set_tile \"scl\" \"1.0\") (mode_tile \"scl\" 2))" ) (action_tile "cancel" "(setq data-sep nil) (done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) (if data-sep (progn (vla-StartUndoMark *acdoc*) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list *blocks* "TCPOINT") ) ) (makeblock) ) (setq space (vla-get-ModelSpace *acdoc*) file (open filename "r") ) (while (setq line (read-line file)) (setq coords (str2lst line (chr (atoi data-sep)))) (if (= mat-p "present") (setq matric (car coords) coords (cdr coords) ) (setq matric nil) ) (if (= dec-sep "com") (setq coords (mapcar '(lambda (x) (read (vl-string-translate "," "." x)) ) coords ) ) (setq coords (mapcar 'read coords)) ) (setq coords (list (car coords) (cadr coords) (cond ((caddr coords)) (T 0.0) ) ) ) (if (vl-every 'numberp coords) (progn (if point (vla-put-Layer (vla-AddPoint space (vlax-3d-point coords)) ptlay ) ) (if bloc (progn (setq insert (vla-InsertBlock space (vlax-3d-point coords) "TCPOINT" scl scl scl 0.0 ) ) (vla-put-Layer insert blklay) (foreach att (vlax-invoke insert 'getAttributes) (if (and (= (vla-get-TagString att) "MAT") matric (= mat "1") ) (vla-put-TextString att matric) ) (if (and (= (vla-get-TagString att) "ALT") (= alt "1") ) (vla-put-TextString att (rtos (caddr coords))) ) ) ) ) ) ) ) (close file) (vla-EndUndoMark *acdoc*) ) ) ) ) (princ) ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
x_all Posté(e) le 29 janvier 2009 Posté(e) le 29 janvier 2009 encore un super lisp de notre super gille en ce jour de grève générale, je voie qu'il y en a encore qui bosse... en tout cas merci tout plein... :) quelques trucs sur autocad
Chanoine Posté(e) le 29 janvier 2009 Posté(e) le 29 janvier 2009 Je suis toujours aussi impressionné!!! Il est vraiment temps que je m'attarde sur le langage autolisp... Chapeau à (gile), qui m'a permis de gagner beaucoup de temps dans mon boulot et s'avère très disponible quand il s'agit d'aider un autre dessinateur, ( :) preuve de le sympathie du personnage) , et qui s'avère un redoutable lispien... Pour x_all : et si, on peut être en grève :) et aller quand même sur le site de cad'xp en attendant le départ de la manif... :cool:
jalna Posté(e) le 29 janvier 2009 Posté(e) le 29 janvier 2009 Bonjour, Merci Gile pour ce lisp qui à l'air très utile!!J'ai quelques soucis avec.... Fichier texte : 0,0,0 10,20,0 30,30,0 Il me l'implante sur AutoCAD, mais si je localise le 1er point, il me renseigneX = 0.00 Y = 0.00 Z = 0.00 (normal)2ème pointX = 20.00 Y = 0.00 Z = 0.00 (y??)3ème pointX = 30.00 Y = 0.00 Z = 0.00(y??) Il semble avoir un problème avec les "Y" Comment doit être formaté le fichier texte?? (x,y,z) Merci "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
(gile) Posté(e) le 29 janvier 2009 Auteur Posté(e) le 29 janvier 2009 Salut, en ce jour de grève générale J'ai posté hier soir... Jalna, Le fichier peut être formaté de différentes façons. D'après ce que j'ai pu voir (je ne suis pas vraiment dans cette partie), les coordonnées sont souvent précédées d'un numéro (matricule) ce qui n'est pas le cas dans l'exemple que tu donnes.La partie "Format du fichier" de la boite de dialogue permet à l'utilisateur de renseigner le LISP sur ce format justement pour en permettre la lecture :"Séparateur de données" dans ton cas la virgule mais on peut aussi spécifier point-virgule, espace ou tabulation."Séparateur décimal" généralement le point (défaut) mais dans certains fichiers ça peut être la virgule"Matricule" présent (défaut) ou absent comme dans ton exemple (ce qui expliquerait que la coordonnée X est lue comme matricule, la coordonnée Y est lue comme coordonnée X etc...) Exemples : 10,20,0 => séparateur données = virgule, séparateur décimal = point, matricule = absent001;10,0;20,0;0,0 => séparateur données = point-virgule, séparateur décimal = virgule, matricule = présent Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
jalna Posté(e) le 29 janvier 2009 Posté(e) le 29 janvier 2009 Ok gileToujours au top au niveau précision!! :) Je regarde demain et je te donne le résultat, tout en sa :) chant que cela va fonctionner!!Merci de prendre du temps..............Bonne soirée ;) "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
lecrabe Posté(e) le 30 janvier 2009 Posté(e) le 30 janvier 2009 Hello Gilles Comme d'hab., ta routine est nickel-chrome ! :) :D ( Test realise avec un bon vieux MAP 2004 ) A propos, je pense à toi mais je suis en deplacement depuis 4 semaines Le Decapode Autodesk Expert Elite Team
jalna Posté(e) le 30 janvier 2009 Posté(e) le 30 janvier 2009 Salut!Ok ça fonctionne!!! :D "Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."J-C Van DammeMon forum : http://plexus.forumactif.org/
Chanoine Posté(e) le 17 février 2009 Posté(e) le 17 février 2009 Je viens d'essayer sur la 2002, et il ne le prends pas... Y'a t'il une variable inconnue pour cette version?
Chanoine Posté(e) le 17 février 2009 Posté(e) le 17 février 2009 J'ai trouvé où le bas blesse: ; erreur: nom de la variable incorrect dans SETQ: (SETQ DCL_ID (LOAD_DIALOG TMP)) Cette variable n'existe pas sous la version 2002? C'est misérable comme j'y connais rien dans le lisp... :casstet:
Patrick_35 Posté(e) le 17 février 2009 Posté(e) le 17 février 2009 Salut La variable tmp est définit ici dans le lisp(setq tmp (vl-filename-mktemp "Tmp.dcl") Tu as bien un fichier écrit dans ton répertoire temporaire nommé Tmp001.dcl (ou Tmp002.dcl, Tmp003.dcl, etc..) ?Non ?Ton disque est plein ou on peut y écrire ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Chanoine Posté(e) le 17 février 2009 Posté(e) le 17 février 2009 Je vais voir ça, mais on peut écrire sur mon disque... Il est fort heureusement loin d'être plein...Où se trouve le répertoire temporaire? J'avoue ne jamais m'y rendre...
(gile) Posté(e) le 17 février 2009 Auteur Posté(e) le 17 février 2009 Salut, L'erreur était probablement due à un smiley qui s'était glissé à la place d'une parenthèse. Parenthèse qui disparaissait alors dans le copier/coller.C'est réparé. Si toutefois c'était du à un problème avec la fonction vl-filename-mktemp et la version 2002, je met ici une version qui utilise un fichier DCL séparé (à enregistrer dans un répertoire du chemin de recherche sous "InsTopo.dcl" Le LISP ;;; INSTOPO (gile) ;;; Insère le bloc "PointBloc" sur les points décrit dans un fichier ascii (.txt .csv ou autre) (defun c:instopo (/ *error* makeblock filename tmp file layers lay data-sep dec-sep mat-p mat alt scl dcl_id space line coords matric insert ) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*))) ;;---------------------------------------------------;; (defun *error* (msg) (or (= msg "Fonction annulée") (princ (strcat "Erreur: " msg)) ) (and file (close file)) (vla-EndUndoMark *acdoc*) (princ) ) ;;---------------------------------------------------;; ;; MakeBlock ;; Crée le bloc PointBloc (defun makeblock (/ block) (vl-load-com) (setq block (vla-add *blocks* (vlax-3d-point '(0. 0. 0.)) "PointBloc" ) ) (vla-put-Layer (vla-addPoint block (vlax-3d-point '(0. 0. 0.))) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. 0.5 0.)) "MAT" "" ) "0" ) (vla-put-Layer (vla-addAttribute block 2.5 acAttributeModePreset "" (vlax-3d-point '(1. -3. 0.)) "ALT" "" ) "0" ) ) ;;---------------------------------------------------;; (if (setq filename (getfiled "Sélectionner un fichier point" "" "txt;csv;*" 0)) (progn (vlax-for l (vla-get-Layers *acdoc*) (setq layers (cons (vla-get-Name l) layers)) ) (setq layers (vl-sort layers ' lay (getvar "CLAYER") data-sep "44" dec-sep "dot" mat-p "present" mat "1" alt "1" scl 1.0 ) (setq dcl_id (load_dialog "InsTopo.dcl")) (if (not (new_dialog "InsTopo" dcl_id)) (exit) ) (start_list "lay") (mapcar 'add_list layers) (end_list) (set_tile "lay" (itoa (vl-position lay layers))) (foreach k (list "data-sep" "dec-sep" "mat-p" "mat" "alt") (action_tile k "(set (read $key) $value)") ) (action_tile "lay" "(setq lay (nth (atoi $value) layers))") (action_tile "scl" "(setq scl (distof $value)) (while (or (not scl) ( (alert \"Nécessite un nombre réel strictement positif\") (setq scl 1.0) (set_tile \"scl\" \"1.0\") (mode_tile \"scl\" 2))" ) (action_tile "cancel" "(setq data-sep nil) (done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (start_dialog) (unload_dialog dcl_id) (if data-sep (progn (vla-StartUndoMark *acdoc*) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list *blocks* "PointBloc") ) ) (makeblock) ) (setq space (vla-get-ModelSpace *acdoc*) file (open filename "r") ) (while (setq line (read-line file)) (setq coords (str2lst line (chr (atoi data-sep)))) (if (= mat-p "present") (setq matric (car coords) coords (cdr coords) ) (setq matric nil) ) (if (= dec-sep "com") (setq coords (mapcar '(lambda (x) (read (vl-string-translate "," "." x)) ) coords ) ) (setq coords (mapcar 'read coords)) ) (setq coords (list (car coords) (cadr coords) (cond ((caddr coords)) (T 0.0) ) ) ) (if (vl-every 'numberp coords) (progn (setq insert (vla-InsertBlock space (vlax-3d-point coords ) "PointBloc" scl scl scl 0.0 ) ) (vla-put-Layer insert lay) (foreach att (vlax-invoke insert 'getAttributes) (if (and (= (vla-get-TagString att) "MAT") matric (= mat "1") ) (vla-put-TextString att matric) ) (if (and (= (vla-get-TagString att) "ALT") (= alt "1") ) (vla-put-TextString att (rtos (caddr coords))) ) ) ) ) ) (close file) (vla-EndUndoMark *acdoc*) ) ) ) ) (princ) ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) Le DCL InsTopo :dialog { label = "InsTopo"; :boxed_row { label = "Format du fichier"; :boxed_radio_column { label = "Séparateur de données"; key = "data-sep"; :radio_button { label = "Virgule"; key = "44"; value = "1"; } :radio_button { label = "Point-virgule"; key = "59"; } :radio_button { label = "Espace"; key = "32"; } :radio_button { label = "Tabulation"; key = "9"; } } :column { :boxed_radio_column { label = "Séparateur décimal"; key="dec-sep"; :radio_button { label = "Virgule"; key = "com"; } :radio_button { label = "Point"; key = "dot"; value = "1"; } } :boxed_radio_column { label = "Matricule"; key = "mat-p"; :radio_button { label = "Présent"; key = "present"; value = "1"; } :radio_button { label = "Absent"; key = "absent"; } } } } :boxed_row { label = "Insertion du bloc"; :boxed_column { label = "Attributs"; :toggle { label = "Matricule"; key = "mat"; value = "1"; } :toggle { label = "Altitude"; key = "alt"; value = "1"; } } :column { spacer; :popup_list { label = "Calque"; key = "lay"; width = 32; } :edit_box { label = "Echelle "; key = "scl"; value = "1.0"; fixed_width = true; } spacer; } } ok_cancel; } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Chanoine Posté(e) le 18 février 2009 Posté(e) le 18 février 2009 merci beaucoup, je vais essayer ça dès que j'ai à nouveau accès à la version 2002... ;)
Chanoine Posté(e) le 18 février 2009 Posté(e) le 18 février 2009 :) Ca y est, ca marche (avec la première version, en effet c'était du au problème de parenthèse).Ceci dit, ce marche aussi avec le fichier dcl. Ce sera peut-être utile pour des versions encore antérieures...MERCI!!!!!!! :) :) :)
RhymOne Posté(e) le 30 octobre 2009 Posté(e) le 30 octobre 2009 Salut les pros de la codif .Gile peut tu preciser le format pour l'utilisation du fichier textes.Par exemple j'ai ce format ci: 1 690000.000 1160010.000 452.623Peut il etre compris par ton lisp??? DAO: AutoCAD(2D & 3D), CovadisCAO: 3D's MAX, Rhinoceros 3D, REVITGeoModeliSation: AutoCAD MEP, RhinoTerrainRendu: Vray for Rhino, Keyshot, LumionProgrammation: Grasshopper, Dynamo, VisualStudio C.V.Profil LinkedInBookSite web http://nsa37.casimages.com/img/2016/09/26/160926023334168603.jpg
lili2006 Posté(e) le 30 octobre 2009 Posté(e) le 30 octobre 2009 Bonjour à toutes et tous, Après choix de ton fichier, la DCL te propose le format de ton .txt ou .csv à régler, A priori, tes réglages dovent être les suivants => http://free0.hiboox.com/images/4409/f5f8a1c82cce99f3a9ff489f33ab89d5.jpg As-tu essayé ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 2 décembre 2009 Auteur Posté(e) le 2 décembre 2009 Salut, Nouvelle version, il est désormais possible d'insérer des objets point à la place ou en plus des blocs. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 2 décembre 2009 Posté(e) le 2 décembre 2009 Hello Gilles SVP peux tu faire un ZIP avec ton nouveau INSTOPO ! et un lien pour le telechargement ...car les copier / coller ne sont pas toujours parfaits !? Merci pour l'amelioration, car en effet utiliser un bloc peut s'averer fort interessant ! Le Decapode Autodesk Expert Elite Team
(gile) Posté(e) le 2 décembre 2009 Auteur Posté(e) le 2 décembre 2009 Salut, J'ai ajouté InsTopo à cette page.Sinon, le lien direct : InsTopo.lsp Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
AFPALEMANS Posté(e) le 2 décembre 2009 Posté(e) le 2 décembre 2009 Bonsoir, Concernant le fihcer CSV ou XLS ou TXT, quel doit être sa présentation ?Les points doivent-ils être numérotés ou simplement listés. Merci Patrice
(gile) Posté(e) le 2 décembre 2009 Auteur Posté(e) le 2 décembre 2009 Salut, InsTopo ne fonctionne qu'avec des fichiers ascii : txt, ou csv, par exemple, mais pas avec les fichiers xls. Pour qu'il soit le plus polyvalent possible (qu'il fonctionne avec différents types de fichiers), j'ai mis, dans le haut de la boite de dialogue, des boutons radios concernant le format du fichier, il faut que ces options soient correctement paramétrées pour que le LISP puis lire le fichier sans erreurs :- séparateur de données- séparateur décimal- matriculeSi les points sont numérotés (ils ont un "matricule") il faut cocher "Présent", s'ils sont simplement listés "Absent"Voir réponse 4. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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