Aller au contenu

de l ECRAN a une LISTE


PHILPHIL

Messages recommandés

Bonjour

 

je suis sous AUTOCAD ARCHITECTURE et j'utilise les entitées AEC "ESPACE" qui ont des données étendues

répartie dans des "jeux de propriété"

 

une commande "PROPERTYSETDUMP" m'affiche la liste a l'écran des données etendue d'un jeu de propriété donné

 

en LISP ou VISUAL-LISP comment pourrais je récupéré la liste a l'écran en liste utilisable dans un programme LISP

 

je n'ai pas trouvé de dictionnaire dans le fichier *.dwg listant ces données

 

(("19"."HautSolFini"."Real"."Faux")("20"."HautSolBrut"."Real"."Faux") ...)

 

merci

 

Phil

 

Commande: PROPERTYSETDUMP

Sélectionnez l'entité avec les données de propriété:
Nom de la définition du jeu de propriétés <*>: AIRE


<<<<<<<<<<<<<<< PROPERTY SET >>>>>>>>>>>>>>>

SET DEF:         AIRE
OBJ ATTACHED TO: <AecDbSpace           7F7E>

PROPERTIES  ------->

 ID:          19
 NAME:        HautSolFini
 DATA TYPE:   Real
 UNSPECIFIED: Faux

 ID:          20
 NAME:        HautSolBrut
 DATA TYPE:   Real
 UNSPECIFIED: Faux

 ID:          22
 NAME:        HautSousPlafond
 DATA TYPE:   Real
 UNSPECIFIED: Faux

 ID:          27
 NAME:        Numerotation
 DATA TYPE:   Integer
 UNSPECIFIED: Faux

 ID:          30
 NAME:        PIECE_ATTACHEE
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          43
 NAME:        NOM01
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          44
 NAME:        NOM02
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          56
 NAME:        TYPE_SOL
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          57
 NAME:        TYPE_PLAFOND
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          58
 NAME:        TYPE_MUR
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          59
 NAME:        TYPE_MUR1
 DATA TYPE:   Text
 UNSPECIFIED: Faux

 ID:          69
 NAME:        NIVEAU
 DATA TYPE:   Integer
 UNSPECIFIED: Faux

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Salut, il est un peu tard pour te répondre, mais bon.Je n'ai pas Autocad (je travaille sur Bricscad), donc encore moins sur AutoCAD architecture.

Mais s'il s'agit de récupérer des données générées dans la liste de commande, tu pourrais faire ainsi :

Toutes les données inscrites dans la liste de commande sont récupérées dans un fichier texte (getvar 'LogFileName).

Essaie ceci, et dis moi le résultat en tapant (logfileexport) puis !l pour voir le résultat.

(defun logfileexport ( / cmdecho logfilemode qaflags f line)
(setq 
	cmdecho (getvar 'cmdecho)
	logfilemode (getvar 'logfilemode)
	qaflags (getvar 'qaflags)
)
(setvar 'cmdecho 0)
(setvar 'logfilemode 1)

;purger le fichier texte
(setq f (open (getvar 'LogFileName) "w"))
(write-line "" f)
(close f)

(command "_LOGFILEON")
(setvar 'qaflags 2)
(setvar 'cmdecho 1)

;attention, bien vérifier que la commande est la bonne.
(command "_PROPERTYSETDUMP" "_AREA")

;exemple de commande qui fonctionne : 
;(command "_-layer" "?" "*" "")

(setvar 'qaflags qaflags)
(setvar 'cmdecho cmdecho)
(command "_LOGFILEOFF")

;transformer le fichier en liste
(setq f (open (getvar 'LogFileName) "R"))
(while (setq line (read-line f))
	(setq l (cons line l))
)
(close f)
l
)

 

"Chacun compte pour un, et nul ne compte pour plus d'un."

Lien vers le commentaire
Partager sur d’autres sites

hello MAT666

 

merci pour ta reponse

 

j'ai corrigé certaines lignes

 

(defun c:logfileexport2 (/ cmdecho logfilemode qaflags f line)
 (setq cmdecho     (getvar "cmdecho")
       logfilemode (getvar "logfilemode")
       qaflags     (getvar "qaflags")
       l           nil
 )
 (setvar "cmdecho" 0)
 (setvar "logfilemode" 1) ;purger le fichier texte
 (setq f (open (getvar "LogFileName") "w"))
 (write-line "" f)
;;;  (close f)
 (command "FICHJOURNAC")
 (setvar "qaflags" 2)
 (setvar "cmdecho" 1) ;attention, bien vérifier que la commande est la bonne.
 (command "_PROPERTYSETDUMP" pause "AIRE") ;exemple de commande qui fonctionne : 
;(command "_-layer" "?" "*" "")
 (setvar "qaflags" qaflags)
 (setvar "cmdecho" cmdecho)
 (command "FICHJOURNIN") ;transformer le fichier en liste
 (setq f (open (getvar "LogFileName") "R"))
 (while (setq line (read-line f)) (setq l (cons line l)))
 (close f)
 l
)

 

 

le premier

( close f )

fait planter le lisp, je l'ai retiré

 

en tapant "!l" j'ai la meme liste et plus

 

merci

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

C'est curieux que la fonction close plante mais bon si ça fonctionne de ton côté alors tant mieux.

Attnetion toutefois à s'assurer que le fichier logfile soit bien rempli après sortie du Lisp,comme il l'était avant.

"Chacun compte pour un, et nul ne compte pour plus d'un."

Lien vers le commentaire
Partager sur d’autres sites

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é