Aller au contenu

Archicad et fichiers .shx


(gile)

Messages recommandés

Salut,

 

Pour essayer d'apporter une réponse à un sujet récurent (voir ici ou pour les plus récents), j'ai essayé de faire un petit LISP qui remplace dans les styles de texte les fichiers de formes .shx inconnus utilisés dans les types de ligne par le fichier ltypeshp.shx qui est présent dans le fichier de support d'AutoCAD.

 

Utilisation : Si à l'ouverture du fichier s'ouvre une boite de dialogue demandant de choisir un fichier de formes shx, faire "Annuler", puis lancer le LISP, la boite ne devrait plus s'ouvrir aux ouvertures suivantes.

 

Tous les retours sont les bienvenus.

 

EDIT 1 : nouvelle version, la première ne fonctionnait pas dans certains cas.

 

EDIT 2 : choix plus pointu des styles de texte à modifier

 

EDIT 3 : 06/02/09 affinage du filtre des styles à modifier

 

EDIT 4 : 14/02/09 finalement, il ne fallait pas tant affiner !

 

EDIT 5 : 01/09/09 réparé (j'espère) l'erreur : "; erreur: type d'argument incorrect: stringp nil

 

;;; RFORM (gile)
;;; Remplace les fichier de forme shx introuvables par ltypeshp.shx

(defun c:rform  (/ name font ext)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (vlax-for ts (vla-get-TextStyles *acdoc*)
   (setq name (vla-get-Name ts)
  font (vla-get-FontFile ts)
   )
   (if	(and
         (= 1 (logand 1 (cdr (assoc 70 (tblsearch "STYLE" name)))))
         (setq ext (vl-filename-extension font))
  (= (strcase ext) ".SHX")
  (not (findfile font))
)
     (vla-put-FontFile ts "ltypeshp.shx")
   )
 )
 (princ)
) 

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Tous les retours sont les bienvenus.

 

Ben c'est pas de chance mais ça ne fonctionne pas chez moi.

 

Comme je ne suis pas calé du tout en lisp, je t'explique ce que j'ai fait :

j'ai ouvert un fichier txt, copié-collé tout ton lisp et renommé mon "nouveau.txt" en "supprime shx.lsp", chargé puis ajouté au démarrage et il me demande toujours ces fameux .shx.

J'ai donc fermé le plan et rouvert plusieurs fois, des fois que, mais non : il insiste le bougre !

Soit je n'ai pas compris comment créer le lisp soit ça ne marche pas, et là, je ne sais pas pourquoi...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Citation du premier message :

Utilisation : Si à l'ouverture du fichier s'ouvre une boite de dialogue demandant de choisir un fichier de formes shx, faire "Annuler", puis lancer le LISP, la boite ne devrait plus s'ouvrir aux ouvertures suivantes.

 

Donc, quand tu as la boite de dialogue, tu fais "Annuler", puis tu lance le LISP : tu entres rform à la ligne de commande et tu valides.

Le problème devrait être résolu pour ce fichier.

Il faut refaire la manœuvre dans tous les fichiers qui posent problème.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut,

 

Peux-tu copier/coller l'expression suivante à la ligne commande l'expression suivante et poster ce que retourne la fenêtre de texte.

 

((lambda (/ ts)
  (while (setq ts (tblnext "STYLE" (not ts)))
    (princ
      (strcat "\nNom : "
       (vl-prin1-to-string (cdr (assoc 2 ts)))
       ((lambda	(/ s)
	  (setq s "")
	  (repeat (- 30 (strlen (cdr (assoc 2 ts))))
	    (setq s (strcat s "."))
	  )
	)
       )
       " Fichier : "
       (vl-prin1-to-string (cdr (assoc 3 ts)))
       (if (= 1 (logand 1 (cdr (assoc 70 ts))))
	 " (Forme)"
	 " (Texte)"
       )
      )
    )
  )
  (textscr)
  (print)
)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

ayé voila ce que j'obtiend :

 

"ROMAND = isocp.shx"

"ROMANS = romans.shx"

"SIMPLEX = simplex.shx"

"Simplex 1.5 = simplex.shx"

"Standard = txt.shx"

"ARIAL = arial.ttf"

"CALISTO = CENSCBK.TTF"

"PAPYRUS = PAPYRUS.TTF"

"Style-isocp = isocp.shx"

"Style-arial = arial.shx"

"Style-Times New Roman = times.ttf"

"Style-INTL_ISO I 0.31416 = INTL_ISO.shx"

"Style-Stylus BT = stylu.ttf"

"dgnlstyle-Levetopo_style = dgnlstyle-Levetopo_style.shx"

"dgnlstyle-Lignes = dgnlstyle-Lignes.shx"

Autocad Map 3D 2018

Covadis Autopiste version 17.0e

Mensura Génius V8

Lien vers le commentaire
Partager sur d’autres sites

Merci pour le retour.

 

J'essaye de filtrer le plus précisément possible les styles de texte à modifier pour ne pas altérer autre chose et suivant la provenance des fichiers le nom du style de texte peut changer.

Jusque là j'avais repéré des styles nommés "LTypeShapes_1", "LTypeShapes_2" ou sans nom.

Je rajoute donc les styles dont le nom est identique au fichier shx (exemple : "dgnlstyle-Levetopo_style" et "dgnlstyle-Levetopo_style.shx")

 

J'ai modifié le LISP pour y intégrer le type de style de texte contenu dans ton fichier, ça devrait fonctionner. Merci de me tenir au courant.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

"rform" semble ne pas marcher pour ce fichier fait sous je ne sais quel logiciel,...

 

EDIT : Le fichier n'est plus accessible pour des raisons de confidentialité éventuelles, bien que l'Archi en question soit au courant, c'est moi qui préfère,... Merci de votre compréhension,:P

 

De plus, il est très délicat de naviguer d'un onglet à l'autre,..(même avec "fog" de Patrick_35) Poids => 13.2 Méga, j'ai vu pire,...

 

Une idée ?

 

Merci d'avance,

Civil 3D 2025 - COVADIS_18.3a

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Cette version devrait fonctionner, elle "ratisse plus large".

 

(defun c:rform 
(/ name font)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
 )
 (vlax-for ts (vla-get-TextStyles *acdoc*)
   (setq name (vla-get-Name ts)
  font (vla-get-FontFile ts)
   )
   (if	(and
  (= (strcase (vl-filename-extension font)) ".SHX")
  (not (findfile font))
)
     (vla-put-FontFile ts "ltypeshp.shx")
   )
 )
 (princ)
)

 

Après un bon nettoyage (sans toucher aux dictionnaires) ton fichier peut passer de 13.2 Mo à 6Mo (73 erreurs, 63 objets effacé, 170 application enregistrées supprimée).

 

Pour la navigation entre les onglets regarde du côté de LAYOUTREGENCTL

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Merci (gile),

 

Après un bon nettoyage (sans toucher aux dictionnaires) ton fichier peut passer de 13.2 Mo à 6Mo (73 erreurs, 63 objets effacé, 170 application enregistrées supprimée).

 

Comment as-tu fais ???? Avec les outils base AutoCAD,

 

J'ai fait passer le fichier tel que je l'ai reçu, et après nettoyage, voilà ce que j'ai en ligne de commande =>

 

Etape 1 125600 objets contrôlés

Contrôle des entités 2ème passe

Etape 2 126000 objets contrôlés

Contrôle des blocs

1696 blocs contrôlés

Nombre total d'erreurs trouvées 18798, corrigées 18798

0 objets effacés

Ouverture d'un fichier de format AutoCAD 2000.

Remplacement de [ROMAND8] par [simplex.shx].

Remplacement de [Myriad Web] par [simplex.shx].

Remplacement de [iSO8] par [simplex.shx].

Chargement de Base AEC...

Chargement de Base étendue AEC...

Chargement de IU base AEC...

Résolu Xréf "ALINEA-au4g": .\xref\ALINEA-au4g.dwg

"ALINEA-au4g" chargé: D:\BA Conception TRAVAIL\PROJETS\647 - ALINEA

LIMOGES\ARCHITECTE\Dernier indice ARCHI\xref\ALINEA-au4g.dwg

Résolu Xréf "0. PLAN D'ENS-23dec08": .\xref\0. PLAN D'ENS-23dec08.DWG

"0. PLAN D'ENS-23dec08" chargé: D:\BA Conception TRAVAIL\PROJETS\647 - ALINEA

LIMOGES\ARCHITECTE\Dernier indice ARCHI\xref\0. PLAN D'ENS-23dec08.DWG

Régénération du modèle.

Appuyez sur ENTREE pour continuer:

Chargement des applications non enregistrées ...

-> Pas d'application trouvée pour la classe 'AeccDbTreeNode' !

... terminé.

 

Et encore 13.5 Mo chez moi,...!

 

Qu'entend-tu par "bon nettoyage" exactement ? , J'ai fait une récupération du fichier pour l'ouvrir.

 

Après ouverture, lancement de "rform" dernière version, fermeture du fichier, réouverture, j'ai toujours un fichier de forme en appel sur les deux (0. PLAN D'ENS-23dec081.shx) =>

 

 

Ouverture d'un fichier de format AutoCAD 2000.

Remplacement de [ROMAND8] par [simplex.shx].

Remplacement de [Myriad Web] par [simplex.shx].

Remplacement de [iSO8] par [simplex.shx].

Résolu Xréf "ALINEA-au4g": .\xref\ALINEA-au4g.dwg

"ALINEA-au4g" chargé: D:\BA Conception TRAVAIL\PROJETS\647 - ALINEA

LIMOGES\ARCHITECTE\Dernier indice ARCHI\xref\ALINEA-au4g.dwg

Résolu Xréf "0. PLAN D'ENS-23dec08": .\xref\0. PLAN D'ENS-23dec08.DWG

"0. PLAN D'ENS-23dec08" chargé: D:\BA Conception TRAVAIL\PROJETS\647 - ALINEA

LIMOGES\ARCHITECTE\Dernier indice ARCHI\xref\0. PLAN D'ENS-23dec08.DWG

Régénération du modèle.

Appuyez sur ENTREE pour continuer:

Chargement des applications non enregistrées ...

-> Pas d'application trouvée pour la classe 'AeccDbTreeNode' !

... terminé.

 

Ensuite, un contrôle, ce qui donne =>

 

 

Commande: _audit

Corriger les erreurs détectées ? [Oui/Non] : o

Contrôle de l'en-tête

Contrôle des tables

Contrôle des entités 1ère passe

Etape 1 118700 objets contrôlés

Contrôle des entités 2ème passe

Etape 2 118700 objets contrôlés

Contrôle des blocs

3885 blocs contrôlés

Nombre total d'erreurs trouvées 0, corrigées 0

0 objets effacés

 

Puis, toujours 13.1 Mo !!

 

En gros, il ne me répare rien avec ces commandes,...

 

J'ai également réglé "LAYOUTREGENCTL " à zéro, mais toujours le même pb sur ce fichier,...

 

J'ai rarement en main des fichiers aussi "p - - - - s",....

 

Merci encore,

Civil 3D 2025 - COVADIS_18.3a

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

Lien vers le commentaire
Partager sur d’autres sites

J'ai tout purgé puis lancé -purge en ligne de commande, option appensReg (pour les applications enregistrées).

Il y a aussi 2 Xrefs introuvables que j'ai détachées.

J'ai aussi utilisé un nettoyeur de plan que je ne peux pas publier ici mais dont on peut trouver certains outils sur CADxp :

CleanTxt

ETP

PurgeArchiCAD

 

J'ai refais une purge après tout ça.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Merci beaucoup (gile),

 

Vraiment trop galère de bosser avec ce fichier,...

 

Merci encore, je vais regarder en détails les liens que tu proposes,...

 

Je n'avais jamais eu besoin au préalable d'une telle moulinette pour pouvoir retravailler un fichier Archi,...

 

Merci encore de ton aide, :P

 

PS: Toujours aussi délicat de naviguer d'un onglet à l'autre,...(Environ une trentaine de seconde sur une V2008 pleine !, et j'ai eu plusieurs erreurs fatales dont une à l'instant sur le fichier "clean",... :mad: )

 

Pareil chez toi ?

 

EDIT : Merci pour tout ! ;)

Civil 3D 2025 - COVADIS_18.3a

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

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

Salut tous le monde,

La petite routine lisp de (gile) est exactement ce que je cherche.

Dans un fichier vierge lorsque je tape RFORM, tous fonctionne.

Mais dans un fichier avec fichier forme. shx introuvable lorsque je lance la commande voici ce qu'il me renvoi:

 

Commande: rform

; erreur: type d'argument incorrect: stringp nil

 

 

J'ai appliqué l'expression de (gile) et voici le résultat:

 

Nom : "Standard"...................... Fichier : "txt" (Texte)

Nom : "GEOS_MANU"..................... Fichier : "TIMES.TTF" (Texte)

Nom : "ARIAL NARROW".................. Fichier : "ARIALN.TTF" (Texte)

Nom : "ARIAL"......................... Fichier : "ARIAL.TTF" (Texte)

Nom : "".............................. Fichier : "ltypeshp.shx" (Forme)

Nom : "TRAV MEY_PRTR_ANNOTATION_NUM".. Fichier : "TIMES.TTF" (Texte)

Nom : "X_CAD_CCTSS|Standard".......... Fichier : "txt" (Texte)

Nom : "ROMANS"........................ Fichier : "ROMANC" (Texte)

Nom : "NIVEAU"........................ Fichier : "ARIAL.TTF" (Texte)

Nom : "T-Arial"....................... Fichier : "ARIAL.TTF" (Texte)

Nom : "".............................. Fichier : "HLP_Util.shx" (Forme)

Nom : "T-ing_2009_2.5"................ Fichier : "" (Texte); erreur: type

d'argument incorrect: stringp nil

 

Voilà, si quelqu'un à la solution pour que ce petit programme marche chez moi, je suis preneur.

 

A plus.

 

P.S.:Pour info, je suis en Autocad V2009 + Covadis+Autopiste

www.cad-is.fr
Autocad Map 2021 - Covadis/Autopiste V18.0c
Pisser sous la douche ne suffira pas
Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Peux-tu copier/coller l'expression suivante à la ligne commande l'expression suivante et poster ce que retourne la fenêtre de texte.

 

((lambda (/ ts)
  (while (setq ts (tblnext "STYLE" (not ts)))
    (princ
      (strcat "\nNom : "
       (vl-prin1-to-string (cdr (assoc 2 ts)))
       ((lambda	(/ s)
	  (setq s "")
	  (repeat (- 30 (strlen (cdr (assoc 2 ts))))
	    (setq s (strcat s "."))
	  )
	)
       )
       " Fichier : "
       (vl-prin1-to-string (cdr (assoc 3 ts)))
       (if (= 1 (logand 1 (cdr (assoc 70 ts))))
	 " (Forme)"
	 " (Texte)"
       )
      )
    )
  )
  (textscr)
  (print)
)
)

 

Slt giles, c'est quoi le code ca rmoi j'ai ça comme réponse

Commande: rform

; erreur: type d'argument incorrect: stringp nil

Commande:

Commande: _rform

; erreur: type d'argument incorrect: stringp nil

J'ai du louppé quelque chose

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Bonjour,

 

J'ai moi aussi le même probleme :

 

Commande: _rform

; erreur: type d'argument incorrect: stringp nil

 

J'ai retourné le probleme dans tous les sens, avec fndshape, delshape, rform, purger, controler, superpurge, etc... rien n'y fait, toujours un shx manquant à l'ouverture.

 

Merci pour votre aide si vous avez une autre piste

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an 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é