Aller au contenu

Propdess


ayoros

Messages recommandés

Quelqu'un un pourrait il m expliquer la démarche pour que utiliser cette commande ou récupérer les propriétés personnaliser d'un être dessin avec une autre méthode

 

D'après moi, il n'y a aucun problème en passant par les CHAMPS.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Si j'ai bien compris la demande, voilà un LISP qui permet d'importer les propriétés personnalisées d'un autre dessin (dwg) ou gabarit (dwt).

 

;; IMPOROP (gile)
;; Importe dans le dessin courant les propriétés personnalisées d'un fichier (dwg ou dwt)

(defun c:improp	(/ target filename doc odbx source)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (setq target (vla-get-SummaryInfo *acdoc*))
 (if
   (setq filename (getfiled "Choisir le fichier source"
		     (getvar 'dwgprefix)
		     "dwg;dwt"
		     0
	   )
   )
    (progn
      (if
 (not
   (and
     (setq
       doc (GetItem
	     (vla-get-Documents (vlax-get-acad-object))
	     (strcat (vl-filename-base filename) ".dwg")
	   )
     )
     (= filename (vla-get-FullName doc))
   )
 )
  (setq	doc  (OpenDrawingDBX filename)
	odbx T
  )
      )
      (setq source (vla-get-SummaryInfo doc)
     n	    -1
      )
      (foreach	p
	'(Author Comments HyperlinkBase KeyWords Subject Title)
 (if (/= "" (setq prop (vlax-get source p)))
   (vlax-put target p prop)
 )
      )
      (repeat (vla-NumCustomInfo source)
 (vla-GetCustomByIndex source (setq n (1+ n)) 'key 'val)
 (vla-AddCustomInfo target key val)
      )
      (and odbx (vlax-release-object doc))
    )
 )
 (princ)
)

;;; Accéder à un dessin fermé

(defun OpenDrawingDBX (filename / objdbx release)
 (setq	objdbx
 (vlax-create-object
   (if (	     "ObjectDBX.AxDbDocument"
     (strcat "ObjectDBX.AxDbDocument." (itoa release))
   )
 )
 )
 (vla-open objdbx filename)
 objdbx
)

;;; GetItem (gile)
;;; Retourne le vla-object de l'item s'il est présent dans la collection
;;;
;;; Arguments
;;; col : la collection (vla-object)
;;; name : le nom de l'objet (string) ou son indice (entier)
;;;
;;; Retour : le vla-object ou nil

(defun GetItem (col name / obj)
 (vl-catch-all-apply
   (function (lambda () (setq obj (vla-item col name))))
 )
 obj
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Salut Giles

 

Tu as exactement compris mon souci et je te remercie pour ton aide.J'ai copiée ton lisp dans un fichier texte avec une extantsion lsp.Je charge l'application sur autocad.Je lance la commande "improp"' une fenêtre apparait pour le choix de mon fichier donc je le sélectionne mais il ne me copie pas les propriétés personnalisés du fichier.Donc peux tu m'aider pour savoir d'où vient l'erreur si elle est dans le lisp ou dans ma démarche.

 

Voici ce que m'indique autocad dans la fenêtre de commande :

Commande: improp

; erreur: type d'argument incorrect: fixnump: nil

 

 

Merci d'avance

 

Lien vers le commentaire
Partager sur d’autres sites

Salut Giles

 

Désolé pour le message précédent j'ai été trop vite dans ma démarche. Donc le lisp marche bien si le dessin est ouvert par contre dans ton lisp tu m'explique une manipulationsi le dessin est fermé.Le soucis étant que je ne connais rien au lisp à part son utilisation donc pourrait tu stp m'expliquer tout la manipulation à réaliser si le fichier est fermé

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

L'accès à un dessin autre que le document actif en LISP diffère suivant que le dessin est ouvert ou fermé.

Brièvement, pour "lire" un dessin fermé, il faut créer un objet DBX qui pointe sur ce fichier. C'est à ça que sert la routine "OpenDrawingDBX".

 

Pour l'utilisateur, cette opération est invisible. Le LISP cherche dans les documents ouverts et, s'il ne trouve rien, lance OpenDrawingDBX pour lire le fichier fermé.

 

D'après les test que j'ai fait, ça fonctionne que le fichier source soit ouvert ou fermé.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Idem chez moi, après ouverture de la BD et choix du fichier =>

 

Commande:

Commande: improp

; erreur: type d'argument incorrect: fixnump: nil

Commande:

 

Quelle genre de propriétés ?

 

Présentation, calques, blocs, styles de textes, cotes,....

 

Car même sur un fichier ouvert, il ne se passe rien chez moi ! (V2008 pleine),...

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

  • 6 ans aprè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 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é