Aller au contenu

Pb SCU (super urgent)


Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é