Aller au contenu

Problème de burst autocad 2020


Gege

Messages recommandés

Bonjour,

 

Je me permets de vous solliciter, Voila j'essaie de dynamiser le bureau avec des blocs dynamiques. J'ai créer par conséquent par mal de bloc dynamqiues. Ces éléments sont ensuite envoyés à des clients. Je fais donc la fonction burst. Mais malheureusement les attributs se transforme en caractère spéciaux. J'ai donc essayé d'introduire une LISP qu'une personne à déposé sur internet mais rien y fait.

 

Pouvez-vous me donner un conseil ou une solution à ce problème ?

 

Je vous joins le DWG d'origine (Non bursté) ==> faite la fonction Busrt ==> et théorie vous verrez des caractères spéciaux une fois cette fonction faite.

 

Merci par avance pour vos retour.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Pas sur de bien comprendre ton probleme !

 

J'ai utilise un tres vieux Lisp ATT2TXT pour traiter tes Blocs dynamiques

et obtenir en TEXTs les attributs classiques de tes Blocs !

 

En plus ces TEXTs arrivent sur de multiples calques

dependants du Nom du bloc et du Nom d Etiquette des attributs ...

 

Cela t'aidera peut etre !?

 

CONSEIL : SVP AUCUN caractere special ou accentue ou blanc/espace

dans le Nom d Etiquette des attributs !

 

LA SANTE, Bye, lecrabe

 

 


;; 
;; Programme developpe par Hubert L.  pour Patrice B.
;; 
;; Routine: Att2Txt par HL - Blocs classiques ONLY !
;; 

;; 
;; Micro-modifs par PB le 16/06/2000 + 19/06/2000
;; Noms de calques generes : "ATT__VAR__*" & "ATT__CON__*"
;; 

(defun c:Att2Txt ( / CTENT ENT PTYPE GE PNOM PA ATTNAME ATTETIQ ATTVAL ATTHAU ATTROT OTHER_NAME OTHER_LIST EN1 LIST_ATT POINT_ATT ATTX ATTY INSATT ) 

(command "_UNDO" "_M")

(att_bl_list)
(princ "\n")
(princ CTENT)
(command "_layer" "_set" "0" "")

;; **** Eventuellement commentez les lignes suivantes ***
(ALERT "Attributs copies en Textes sur calques ' ATT__CON__* / ATT__VAR__* ' 
         \n Textes crees au point d'insertion des attributs 
  \n Retour au calque 0 ")

;; **** Eventuellement commentez la  ligne  suivante  *** 
(alert (strcat "Nombre de bloc traites = " (itoa ctent)))

)


(defun att_bl_list ()
(ssget)
(setvar "cmdecho" 0)
(setvar "highlight" 0)
 (setq ent (ssget "P" (list (cons 0 "INSERT"))))
(setq ctent 0)
 (if ent
  (progn
    (while (< ctent (sslength ent))
       (setq selent (ssname ent ctent))
       (xlist)
       (setq ctent (1+ ctent))
     )
   )
   (prompt "\nRIEN A LISTER")
 )
(setvar "highlight" 1)
(setvar "cmdecho" 1)
(princ)
)


(defun xlist ()
 (setq ptype nil)
 (setq ge (entget selent))
 (setq pnom (cdr (assoc 2 ge)))

   (setq pa selent
       attname "VERTEX")

    (bl_def)
   ;(princ pnom)
(if (= 1 (cdr (assoc 66 ge)))  ;entite suit
(while (/= attname "SEQEND")
      (setq pa (entnext pa))
       (if pa (progn
             (setq attname  (cdr (assoc 0  (entget pa))))
             (setq attetiq  (cdr (assoc 2  (entget pa))))

;; ATTPLACE ci-dessous = Point d'insertion de l' ATTRIBUT
             (setq attplace (cdr (assoc 10 (entget pa))))

             (setq attval   (cdr (assoc 1  (entget pa))))
             (setq atthau   (cdr (assoc 40 (entget pa))))

;; ATTPLACE ci-dessous = Point d'insertion du BLOC
;;            (setq attplace (cdr (assoc 10 ge)))

;; Hauteur du texte MICROSCOPIQUE et non pas hauteur de l'attribut
;;            (setq atthau   0.001)


;; Fin Modification
             (setq attrot   (cdr (assoc 50 (entget pa))))


               (if (= attname "ATTRIB") (progn
                          ;(princ attval)(princ "\n")

;;                         (command "_layer" "_m" (strcat "ATT__CON__" attetiq) "")
                          (command "_layer" "_m" (strcat "ATT__VAR__" attetiq) "")

                          (command "_text" attplace atthau (/ (* 180 attrot) pi) attval)
                                        ) 
               ) ;fin de if attrib
           ) ;fin de progn pa
               (= attname "SEQEND")
             
  ) ;fin de if pa

)  ;fin de while
) ; fin de if "entite suit"

)



(defun bl_def()
(setq other_name nil)
(setq other_list nil)
(setq en1 nil)
;(setq list_att xbetiq2)

  (setq en1 (cdr (assoc '-2 (tblsearch "block" pnom))))
     (while (/= nil en1)
(if (and (= "ATTDEF" (cdr (assoc '0 (entget en1))))
	 (or (= 2 (cdr (assoc '70 (entget en1))))
                    (= 3 (cdr (assoc '70 (entget en1)))) 
                )
            )
	 (progn  
                   (setvar "lastpoint"  (cdr (assoc '10 ge))) 
                   (setq pointatt (cdr (assoc '10 (entget en1))))
                   (setq attx (car pointatt))
                   (setq atty (cadr pointatt))
                   (setq insatt (strcat "@" (rtos attx) "," (rtos atty)))

;;                  (command "_layer" "_m" (strcat "ATT__CON__" (cdr (assoc '2 (entget en1)))) "")
                   (command "_layer" "_m" (strcat "ATT__CON__"  (cdr (assoc '2 (entget en1)))) "")

                   (command "_text" (cdr (assoc '10 ge)) (cdr (assoc '40 (entget en1))) "0" (cdr (assoc '1 (entget en1))))
         )
 )  

(setq en1 (entnext en1))
  ) ;fin de while 1
(princ)
)

(princ "\nTapez ==> ATT2TXT ") (princ) 

;; (princ "\nPour une selection partielle: Utiliser FILTER auparavant ") (princ) 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

En gos mon problème c'est :

 

J'utilise la fonction burst sur mes bloc Dynamiques, une fois burster j'enregistre le plan. je quitte autocad et ouvre à nouveau ce dernier. Et quand je regarde mes blocs dynamiques les caractères spéciaux apparaissent.

 

Pour info Je n'ai pas mis d'espace entre les attributs cela donne : 20x50ht avant burst et ##x##ht après burst.

 

j'espère avoir été plus clair.

 

Pour la routine LISP que vous m'avez passé je prend tout le texte ou je ne prend pas ce début :

;;

;; Programme developpe par Hubert L. pour Patrice B.

;;

;; Routine: Att2Txt par HL - Blocs classiques ONLY !

;;

 

;;

;; Micro-modifs par PB le 16/06/2000 + 19/06/2000

;; Noms de calques generes : "ATT__VAR__*" & "ATT__CON__*"

 

 

Merci par avance

Lien vers le commentaire
Partager sur d’autres sites

Et si je peux encore plus vous éclairez voici un lien d'autodesk expliquant les problèmes rencontrés :

 

https://knowledge.autodesk.com/fr/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/FRA/Bursting-a-dynamic-block-with-text-attributes-in-AutoCAD-transforms-those-attributes-into-special-characters.html

 

Merci à tous pour vos retours afin de pouvoir m'aider.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

Tout ce qui commence par ;

C du commentaire !

Donc tu peux inclure dans ton copier / coller vers ton futur fichier texte ATT2TXT.lsp

 

Désolé plus de AutoCAD sous la main à cet instant !

 

SVP tu es avec quelle version 20XX de AutoCAD ??

 

Si AutoCAD 2021, SVP tu re-essayes avec LISPSYS = 0 (Juste pour voir)

 

LA SANTE, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je me permets de vous solliciter, Voila j'essaie de dynamiser le bureau avec des blocs dynamiques. J'ai créer par conséquent par mal de bloc dynamqiues. Ces éléments sont ensuite envoyés à des clients. Je fais donc la fonction burst. Mais malheureusement les attributs se transforme en caractère spéciaux. J'ai donc essayé d'introduire une LISP qu'une personne à déposé sur internet mais rien y fait.

 

Pouvez-vous me donner un conseil ou une solution à ce problème ?

 

Je vous joins le DWG d'origine (Non bursté) ==> faite la fonction Busrt ==> et théorie vous verrez des caractères spéciaux une fois cette fonction faite.

 

Merci par avance pour vos retour.

 

Salut,

 

Ça fonctionne très bien de mon côté.

 

Que veux-tu dire par caractères spéciaux?

Peux-tu joindre un fichiers avec lesdits caractères spéciaux après la commande BURST?

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Et en utilisant le lisp de Lee Mac Nburst?

 

J'ai utilisé le Lisp de Lee Mac et malgré tout les caractères spéciaux sont de nouveau apparus :

 

Méthode :

 

1. J'ai pris les éléments en question.

2. Je fais la fonction Burst NBurst Ou PBursT

3. J'enregistre et quitte le dessin.

4. J'ouvre le dessin et je refais par exemple un coup de sauvegarde et je perds les informations.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Ça fonctionne très bien de mon côté.

 

Que veux-tu dire par caractères spéciaux?

Peux-tu joindre un fichiers avec lesdits caractères spéciaux après la commande BURST?

 

Bonjour Merci pour votre retour.

 

Je vous joins le DWG avec les caractères spéciaux.

je vous transmets également le DWG initial via ce lien : https://we.tl/t-BR6b4NDg1K

Méthode qui à fait que j'ai des caractères spéciaux :

1. Burst version initial

2. sauvegarde et quitter

3. ouvrir le dessin puis sauvegarder.

 

Et j'ai remarqué que les caractères spéciaux (##x##ht) correspondent à des attributs qui n'apparaissent pas sur le bloc dynamqiue mais sur des éléments cachés dans ce blocs dyn. La hauteur par exemple ne figure pas sur le dessin car on travail en 2D mais dans la table des propriétés sur autocad on rentre la valeur de la hauteur pour que le dessin mette à jour la valeur demandée.

 

La fonction Burst pour moi supprime les éléments cachés du bloc dynamiques donc à mon avis c'est pour ça que les "#" apparaissent.

 

J'espère avoir été plus clair dans mes information et merci encore de votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

De mon point de vue, tu devrait aussi décomposer ton texte après la fonction burst. Car le texte est en lien avec l'objet dans le bloc, en le décomposant il perd l'association est donc affiche une erreur.

 

Bonjour merci pour votre retour.

 

En effet quand je fais la fonction Burst puis la fonction décomposer je conserve le texte. Pensez-vous qu'il ai une solution par exemple avec une routine ou un LISP pour faire ces deux fonctions en une ?

 

Merci

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é