Jump to content

Recommended Posts

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.

http://www.abcad.fr/images/logo_courrier.png


Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.

(.°=°.)
Link to post
Share on other 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

Link to post
Share on other 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

 

Link to post
Share on other 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

Link to post
Share on other 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

Link to post
Share on other 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 2022 - COVADIS_17.1d

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

Link to post
Share on other sites
  • 6 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...