Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

L'export génère bien un fichier texte TXT comme ci-dessous :

((0 . "VIEW") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}") (330 . ) (100 . "AcDbSymbolTableRecord") (100 . "AcDbViewTableRecord") (2 . "N°036") (70 . 0) (40 . 692.5) (10 336935.0 2.37603e+006 0.0) (41 . 1025.0) (11 0.0 0.0 1.0) (12 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0) (50 . 0.0) (71 . 0) (281 . 0) (72 . 0))

((0 . "VIEW") (102 . "{ACAD_XDICTIONARY") (360 . ) (102 . "}") (330 . ) (100 . "AcDbSymbolTableRecord") (100 . "AcDbViewTableRecord") (2 . "N°034") (70 . 0) (40 . 692.5) (10 339860.0 2.37667e+006 0.0) (41 . 1025.0) (11 0.0 0.0 1.0) (12 0.0 0.0 0.0) (42 . 50.0) (43 . 0.0) (44 . 0.0) (50 . 0.0) (71 . 0) (281 . 0) (72 . 0))

 

Mais je ne trouve pas l'erreur dans l'import de vues de cette fonction :

 

;;; viewsIO.lsp

;;;

;;; Export and import views

;;;

;;; c:ExportViews

;;; c:ImportViews

;;; c:-ExportViews

;;; c:-ImportViews

;;;

;;; By Jimmy Bergmark

;;; Copyright © 1997-2006 JTB World, All Rights Reserved

;;; Website: www.jtbworld.com

;;; E-mail: info@jtbworld.com

;;;

;;; 2000-06-27

;;;

;;; Tested on AutoCAD 2000

;;; To do: support for views with saved ucs

 

(defun c:ExportViews (/ fn)

(if (setq fn

(getfiled "Export views to"

(strcat (vl-filename-base (getvar "dwgname")) ".txt")

"txt"

1

)

)

(ExportViews fn)

)

(princ)

)

 

(defun c:ImportViews (/ fn)

(if (setq fn

(getfiled "Import views to"

(strcat (vl-filename-base (getvar "dwgname")) ".txt")

"txt"

8

)

)

(ImportViews fn)

)

(princ)

)

 

(defun c:-ExportViews (/ fn x)

(setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))

(if (setq fn

(findfile

(if (= ""

(setq nn (getstring

T

(strcat "Enter filename <"

fn

">: "

)

)

)

)

fn

nn

)

)

)

(progn

(initget "Yes No")

(setq x (getkword "\nFile exists. Overwrite? [Yes/No] : "))

(if (= x "Yes") (ExportViews fn))

)

(princ "\nFile not found.")

)

(princ)

)

 

(defun c:-ImportViews (/ fn)

(setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))

(if (setq fn

(findfile

(if (= ""

(setq nn (getstring

T

(strcat "Enter filename <"

fn

">: "

)

)

)

)

fn

nn

)

)

)

(ImportViews fn)

(princ "\nFile not found.")

)

(princ)

)

 

(defun ExportViews (fn / e tl f ed)

(while (setq e (tblnext "VIEW" (null e)))

(setq tl (cons (cdr (assoc 2 e)) tl))

)

(setq f (open fn "w"))

(if f

(progn

(princ "Following views exported:\n")

(foreach view tl

(setq ed (entget (tblobjname "view" view)))

(prin1 (cons (cons 0 "VIEW") (cdddr ed)) f)

(princ "\n" f)

(prin1 view)

(terpri)

)

(close f)

)

)

)

 

(defun ImportViews (fn / tl f)

(setq f (open fn "r"))

(if f

(progn

(princ "Following views imported:\n")

(while (setq tl (read-line f))

(setq tl (read tl))

(entmake tl)

(print (cdr (assoc 2 tl)))

)

(close f)

)

)

)

 

(princ)

 

merci pour les infos

fabcad

Posté(e)

Bonjour,

 

il y a déjà un problème avec la fonction open qui se trouve dans importviews : elle renvoie toujours nil.

 

(defun ImportViews (fn / tl f)

[surligneur]

(setq f (open fn "r"))

[/surligneur]

(if f

(progn

(princ "Following views imported:\n")

(while (setq tl (read-line f))

(setq tl (read tl))

(entmake tl)

(print (cdr (assoc 2 tl)))

)

(close f)

)

)

)

 

parce que fn ne contient que le nom du fichier et pas son chemin.

 

Il faudra sans doute changer :

 

(defun c:ImportViews (/ fn)

(if (setq fn

(getfiled "Import views to"

(strcat (vl-filename-base (getvar "dwgname")) ".txt")

"txt"

[surligneur]

8

[/surligneur]

)

)

(ImportViews fn)

)

(princ)

)

 

et mettre 16 à la place du 8 pour avoir tout le chemin.

 

Mais ça plante encore plus loin ...

 

Amicalement

 

Zebulon_

 

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

En fait, ça ne marche que pour des vues sans scu associé. D'ailleurs l'auteur semble l'indiquer

 

;;; To do: support for views with saved ucs

 

mias je suis trop nul en anglais pour l'affirmer.

 

Amicalement

 

Zebulon_

 

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

Bizarre j'ai essayé la routine que tu as posté, et elle a fonctionné sans problème.

 

J'ai même restauré tes vue que tu as posté :exclam: sauf que pour celle ci j'ai viré les codes 360 et 330 qui été "bouffé" pas postage.

 

D'ailleurs je me demande si ce n'est pas cela qui pose problème. A mon souvenir le code 330 est généralement associé a un NOM d'entité (peut être aussi le 360, à voir). Dans ce cas, je comprend que l'import se fasse mal car il lui sera impossible de retrouver CETTE entité dans un autre dessin.

 

Lors de mon test rapide, je n'ai pas retouvé ces codes dans le fichier TXT crée sur mon PC.

 

Suggestion: enlève ces code du TXT et refait un essai pour voir si ça vient bien de là.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Effectivement bonuscad c'est bien ces deux codes DXF qui posent probleme.

C'est la sous-routine ExportViews qui devra trier la liste d'une view sans les codes 360 et 330.

 

Allez un tout petit effort mes chers programmeurs, une aide me serait très utile car en ce moment j'ai du taf sur un projet.

Posté(e)

Je pense que comme ceci ça ira....

;;; viewsIO.lsp
;;;
;;; Export and import views
;;;
;;; c:ExportViews
;;; c:ImportViews
;;; c:-ExportViews
;;; c:-ImportViews
;;;
;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;;
;;; 2000-06-27
;;;
;;; Tested on AutoCAD 2000
;;; To do: support for views with saved ucs

(defun c:ExportViews (/ fn)
(if (setq fn
(getfiled "Export views to"
(strcat (vl-filename-base (getvar "dwgname")) ".txt")
"txt"
1
)
)
(ExportViews fn)
)
(princ)
)

(defun c:ImportViews (/ fn)
(if (setq fn
(getfiled "Import views to"
(strcat (vl-filename-base (getvar "dwgname")) ".txt")
"txt"
8
)
)
(ImportViews fn)
)
(princ)
)

(defun c:-ExportViews (/ fn x)
(setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))
(if (setq fn
(findfile
(if (= ""
(setq nn (getstring
T
(strcat "Enter filename <"
fn
">: "
)
)
)
)
fn
nn
)
)
)
(progn
(initget "Yes No")
(setq x (getkword "\nFile exists. Overwrite? [Yes/No] : "))
(if (= x "Yes") (ExportViews fn))
)
(princ "\nFile not found.")
)
(princ)
)

(defun c:-ImportViews (/ fn)
(setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))
(if (setq fn
(findfile
(if (= ""
(setq nn (getstring
T
(strcat "Enter filename <"
fn
">: "
)
)
)
)
fn
nn
)
)
)
(ImportViews fn)
(princ "\nFile not found.")
)
(princ)
)

(defun ExportViews (fn / e tl f ed)
(while (setq e (tblnext "VIEW" (null e)))
(setq tl (cons (cdr (assoc 2 e)) tl))
)
(setq f (open fn "w"))
(if f
(progn
(princ "Following views exported:\n")
(foreach view tl
[surligneur] 
(setq ed (entget (tblobjname "view" view)))
(foreach n '(-1 102 360 102 330 5)
(setq ed (vl-remove-if-not '(lambda (x) (/= (car x) n)) ed))
)
(prin1 ed f)
[/surligneur] 
(princ "\n" f)
(prin1 view)
(terpri)
)
(close f)
)
)
)

(defun ImportViews (fn / tl f)
(setq f (open fn "r"))
(if f
(progn
(princ "Following views imported:\n")
(while (setq tl (read-line f))
(setq tl (read tl))
(entmake tl)
(print (cdr (assoc 2 tl)))
)
(close f)
)
)
)

(princ)

 

[Edité le 31/5/2006 par bonuscad]

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Un grand merci à bonuscad je vais pouvoir l'utiliser pour mes impressions en DWF et les rendre plus conviviaux pour la recherche d'une voie ou tout autre chose.

Je ne connaissais pas la fonction vl-remove-if-not, je vais appronfondir la chose...

merci encore.

fabcad

 

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é