Aller au contenu

"erreur: Le serveur ActiveX a renvoyé une erreur: Paramètre non facultatif"


Messages recommandés

Posté(e)

Bonjour,

 

ci-dessous un LISP que j'utilise pour extraire des attributs.

 

Celui-ci n'a jamais "déraillé" jusqu'à aujourd'hui où il me renvoie le code erreur suivant:

"erreur: Le serveur ActiveX a renvoyé une erreur: Paramètre non facultatif"

 

Je précise que cette erreur n'est renvoyée que sur un fichier.

 

Lorsque je copie-colle un bloc de ce même fichier vers un autre, tout redevient fonctionnel.

 

Savez-vous quelle est cette erreur et comment y échapper?

 

Merci.

 

;-- RapidExtrac 1.0 (BCH) --

;Utilitaire d'extraction d'attributs.

 

(defun c:RapidExtrac ( / )

;; Selection du bloc à extraire

(setq lstEnt (entget (car (entsel "\nSélectionnez le bloc à extraire: "))))

(setq NomEnt (cdr (car lstEnt)))

(setq Handle (cdr (assoc 5 lstEnt)))

(setq NomBloc (EffectifName Handle))

(setq js (ssget "X" (list (cons 0 "INSERT"))))

(setq cpt 0)

(setq cptselect 0)

(setq NbEntSelect (sslength js))

(setq fichierGabarit (open (findfile "Gabarit.txt") "w"))

(ExtracEtq)

 

;; Boucle sur le nombre d'objet

(repeat NbEntSelect

(setq Attrib "'")

(setq NomEntjs (ssname js cpt)) ;; recherche l'entité Numéro 'CPT'

(setq lstEntjs (entget NomEntjs)) ;; Récupère la liste de l'entité

(setq Handlejs (cdr (assoc 5 lstEntjs)))

(setq NomBlocjs (EffectifName Handlejs))

(setq TypeEntjs (cdr (assoc 0 lstEntjs)))

(if (= NomBlocjs NomBloc)

(progn

(ExtracValeur)

(setq cptselect (1+ cptselect))

)

)

(setq cpt (1+ cpt)) ;; Ajoute 1 au compteur pour avoir l'entité suivante

);repeat

 

(close fichierGabarit)

(princ cptselect) (prompt " bloc(s) traité(s) dans le fichier d'extraction")

;;;Chemin à modifier selon version EXCEL

(startapp (findfile "excel.exe") (findfile "TEMP_EXTRAC.xlsm"))

(princ)

);defun

 

 

;; Création par Didier LOURDELLE

;; le 2011-06-06

;;

;; Récupère le NomEffectif d'un bloc dynamique

;; Paramètre :

;; Handle = Handle du bloc AutoCAD

;;ap

(defun EffectifName (Handle / NomBlocDidier)

;; charge les fonctions VL*

(vl-load-com)

 

;; Initialise la variable ThisDrawing

(Setq ThisDrawing (vla-get-ActiveDocument (vlax-get-acad-object)))

 

;; Depuis le handle recupere 'selectionne une entité'

(setq BlockRefObj (vla-HandleToObject ThisDrawing Handle))

 

;; Vérification qu'il s'agit d'un bloc

(if (equal (setq ObjType (vla-Get-ObjectName BlockRefObj))

"AcDbBlockReference"

)

;;; retourne le nom effectif du bloc

(setq NomBlocDidier (vla-get-EffectiveName BlockRefObj))

) ;if

) ;defun

 

 

;;; - Extraction des étiquettes d'attributs du bloc sélectionné - ;;;

(defun ExtracEtq ( / TypeEnt LstEnt Etq lgchaine)

(setq Etq "'")

(while (/= TypeEnt "SEQEND")

(setq LstEnt (entget (entnext NomEnt)))

(setq NomEnt (cdr (car LstEnt)))

(setq TypeEnt (cdr (assoc 0 LstEnt)))

(if (= TypeEnt "ATTRIB")

(progn

(setq Etq (strcat Etq (cdr (assoc 2 LstEnt)) "','"))

) ;progn

) ;if

) ;while

(setq lgchaine (strlen Etq))

(setq Etq (substr Etq 1 (- lgchaine 2)))

(princ (strcat Etq "\n") fichierGabarit)

) ;defun

 

 

;;; - Extraction des valeurs d'attributs de l'ensemble des blocs filtrés - ;;;

(defun ExtracValeur (/)

(while (/= TypeEntjs "SEQEND")

(setq LstEntjs (entget (entnext NomEntjs)))

(setq NomEntjs (cdr (car LstEntjs)))

(setq TypeEntjs (cdr (assoc 0 LstEntjs)))

(if (= TypeEntjs "ATTRIB")

(progn

(setq Attrib (strcat Attrib (cdr (assoc 1 LstEntjs)) "','"))

) ;progn

) ;if

) ;while

(setq lgchaine (strlen attrib))

(setq attrib (substr attrib 1 (- lgchaine 2)))

(princ (strcat Attrib "\n") fichierGabarit)

)

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é