fanion Posté(e) le 29 septembre 2005 Posté(e) le 29 septembre 2005 Comment peut on faire pour copier les info d'un SCU d'un fichier à un autre?Merci
bonuscad Posté(e) le 29 septembre 2005 Posté(e) le 29 septembre 2005 Comme je n'ai pas retrouvé de liens, je fait un copier-coller d'une routine de Michael Puckett. Celle ci est identique à l'original, sauf que j'ai corrigé les commandes non-internationalisé et mis le peu de message en Français. Si cela pose problème, je laisse le soin à notre cher Webmaster Patrick, d'effacer la réponse. ; ------------------------------------------------------- ; ; c:UcsExport / c:UcsImport 1.0 December 2000 ; ; Copyright (c) 2000 Michael Puckett ; ; All Rights Reserved ; ; Written Q & D for Dennis Shinn, Internet Gentleman ; ; ------------------------------------------------------- ; ; This code, however trivial, is a copyrighted work, ; and protected by all applicable laws and statutes. ; ; ------------------------------------------------------- ; ; This code is provided as is, with all specified and ; unspecified shortcomings, flaws and errors, without ; warranty and without claim that it is suited for any ; particular use. Sux that this has to be written but ; unfortunately, it's necessary. ; ; ------------------------------------------------------- ; ; Notes ; ; Exporting is always to the same file and importing ; same. The file is "UcsExport.ucs", and it will reside ; in the temporary directory - if it can be made. ; ; Exported UCSs are prefixed with a "$". Any existing ; UCS by the same name in a drawing importing said UCSs ; will be overwritten, no questions asked. ; ; Existing UCSs prefixed with a $ will NOT be exported. ; ; ------------------------------------------------------- ; ; Shortcomings ; ; Due to the limitations of text representations of real ; numbers, the accuracy of this utility may induce errors ; into your drawings. Accuracy of this utility is limited ; to 15 decimal places. ; ; Please keep this in mind when using this utility. Had I ; more time I'd write a version that retained full decimal ; accuracy (do-abled in VB/Delphi/C), but alas, too many ; other projects on the go. ; ; ------------------------------------------------------- (defun c:ExportScu ( / *format* f dat lst name lunits lprec dimzin) (defun *format* (val / typ) (cond ( (eq 'real (setq typ (type val))) (rtos val 2 15) ; I don't care what tony says ) ( (eq 'int typ) (itoa val) ) ( (eq 'str typ) (strcat (chr 34) val (chr 34)) ) ( (eq 'list typ) (mapcar '*format* val) ) ( t val ) ) ) (while (setq dat (tblnext "ucs" (null dat))) (if (/= "$" (substr (cdr (assoc 2 dat)) 1 1)) (setq lst (cons (entget (tblobjname "ucs" (cdr (assoc 2 dat)))) lst ) ) ) ) (if lst (cond ( (setq f (open (setq name (strcat (getvar "tempprefix") "UcsExport.ucs") ) "w" ) ) (setq dimzin (getvar "dimzin") lunits (getvar "lunits") lprec (getvar "luprec") name (strcat (getvar "tempprefix") "UcsExport.ucs") ) (setvar "dimzin" 8) (setvar "lunits" 2) (setvar "luprec" 8) (foreach i lst (princ (apply 'append (mapcar '(lambda (j / c) (cond ( (eq 2 (setq c (car j))) (list (cons 2 (substr (strcat (chr 34) "$" (cdr j) (chr 34)) 1 31 ) ) ) ) ( (not (member c '(-1 5 330))) (list (cons c (*format* (cdr j)))) ) ) ) i ) ) f ) (princ "\n" f) ) (setq f (close f)) (setvar "dimzin" dimzin) (setvar "lunits" lunits) (setvar "luprec" lprec) ) ( t (princ (strcat "\nDésolé! Ne peut ouvrir <" name "> pour l'export.")) ) ) ) (prin1) ) (defun c:ImportScu ( / f dat name cmdecho) (cond ( (setq f (open (setq name (strcat (getvar "tempprefix") "UcsExport.ucs") ) "r" ) ) (setq cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (while (setq dat (read-line f)) (if (tblsearch "ucs" (cdr (assoc 2 (setq dat (read dat))))) (command "_.ucs" "_delete" (cdr (assoc 2 dat))) ) (entmake dat) ) (setq f (close f)) (setvar "cmdecho" cmdecho) ) ( t (princ (strcat "\nDésolé! Ne peut ouvrir <" name "> pour l'import.")) ) ) (prin1) ) (prompt "\nUCS_Ex-Im.lsp correctement chargé") (prompt "\nTapez ExportScu et ImportScu pour exécution.") (prin1) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
fanion Posté(e) le 29 septembre 2005 Auteur Posté(e) le 29 septembre 2005 merci pour l'info mais, car il y a toujours un un mais:J'ai bien instalé le lsp, et lorsque je tape exportscu ou importscu rien ne ce passe.Je dois avouer que je suis une bille en lisp.NB: afin de regler l'urgence, j'ai bidouillé avec moulte cercles et rotations)Merci
bonuscad Posté(e) le 29 septembre 2005 Posté(e) le 29 septembre 2005 J'ai oublié de préciser que cela n'est valable QU'AVEC des Scu nommés. Tu charge le lisp dans ton dessin origine, puis tu l'execute par "exportscu" (pas de message particulier: désolé je le livre tel qu'a l'origine) Tu te rends dans ton dessin cible, tu charge la routine, puis lance "importscu", tu devrais retrouvé tes scu nommés précédé tu signe "$" Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
fanion Posté(e) le 29 septembre 2005 Auteur Posté(e) le 29 septembre 2005 super ca marche. Bien pratique.Un grand merci à toi ainsi qu'à l'auteur.
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