(gile) Posté(e) le 10 décembre 2008 Posté(e) le 10 décembre 2008 Salut, Pour essayer d'apporter une réponse à un sujet récurent (voir ici ou là 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
x_all Posté(e) le 11 décembre 2008 Posté(e) le 11 décembre 2008 vrai que de faire échape n fois à chaque ouverture au bout d'un mnt ça deviens lassant... merci ça va ménager mes nerfs et mon archi-animosité je teste ça ... :) quelques trucs sur autocad
(gile) Posté(e) le 11 décembre 2008 Auteur Posté(e) le 11 décembre 2008 Merci pour le retour. Je modifie le code (premier message) pour affiner la sélection des style de texte à modifier. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
mikl63 Posté(e) le 27 janvier 2009 Posté(e) le 27 janvier 2009 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...
(gile) Posté(e) le 27 janvier 2009 Auteur Posté(e) le 27 janvier 2009 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
_christian_ Posté(e) le 6 février 2009 Posté(e) le 6 février 2009 Salut ! Je viends de tester le lisp, il ne fonctionne pas chez moi. J'ai toujours au démarage la fenêtre qui me demande le fichier dgnstyle_levtopo;shx Merci quand mm A+ Autocad Map 3D 2018Covadis Autopiste version 17.0eMensura Génius V8
(gile) Posté(e) le 6 février 2009 Auteur Posté(e) le 6 février 2009 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
_christian_ Posté(e) le 6 février 2009 Posté(e) le 6 février 2009 Salut, merci de ta réponse je viens de copier ce que tu m'as donné dans la ligne de commande. la fenêtre d'aide s'ouvre bizard !! Autocad Map 3D 2018Covadis Autopiste version 17.0eMensura Génius V8
_christian_ Posté(e) le 6 février 2009 Posté(e) le 6 février 2009 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 2018Covadis Autopiste version 17.0eMensura Génius V8
(gile) Posté(e) le 6 février 2009 Auteur Posté(e) le 6 février 2009 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
_christian_ Posté(e) le 6 février 2009 Posté(e) le 6 février 2009 Super !! Je te remercie, ton lisp a fonctionné parfaitement. A+ Autocad Map 3D 2018Covadis Autopiste version 17.0eMensura Génius V8
Raph_38 Posté(e) le 6 février 2009 Posté(e) le 6 février 2009 Voilà un lisp super pratique !! Merci Gile Raph. Celui qui pose une question est bête 5 minutes, celui qui n'en pose pas l'est toute sa vie !
lili2006 Posté(e) le 7 février 2009 Posté(e) le 7 février 2009 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.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 7 février 2009 Auteur Posté(e) le 7 février 2009 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
lili2006 Posté(e) le 7 février 2009 Posté(e) le 7 février 2009 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ésContrôle des entités 2ème passeEtape 2 126000 objets contrôlésContrôle des blocs 1696 blocs contrôlésNombre total d'erreurs trouvées 18798, corrigées 187980 objets effacésOuverture 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.dwgRé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.DWGRé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.dwgRé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.DWGRé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: _auditCorriger les erreurs détectées ? [Oui/Non] : oContrôle de l'en-têteContrôle des tablesContrôle des entités 1ère passeEtape 1 118700 objets contrôlésContrôle des entités 2ème passeEtape 2 118700 objets contrôlésContrôle des blocs 3885 blocs contrôlésNombre total d'erreurs trouvées 0, corrigées 00 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.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 7 février 2009 Auteur Posté(e) le 7 février 2009 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 :CleanTxtETPPurgeArchiCAD J'ai refais une purge après tout ça. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 7 février 2009 Posté(e) le 7 février 2009 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.3b https://www.linkedin...3%ABt-95313341/
La Lozère Posté(e) le 17 juillet 2009 Posté(e) le 17 juillet 2009 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
philous2 Posté(e) le 17 juillet 2009 Posté(e) le 17 juillet 2009 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 nilCommande:Commande: _rform; erreur: type d'argument incorrect: stringp nilJ'ai du louppé quelque chose
balyoa Posté(e) le 27 août 2009 Posté(e) le 27 août 2009 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
(gile) Posté(e) le 27 août 2009 Auteur Posté(e) le 27 août 2009 Salut, Peux-tu m'envoyer un extrait de fichier chanteau.gilles (at) orange.fr Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
balyoa Posté(e) le 1 septembre 2009 Posté(e) le 1 septembre 2009 Salut Gilles, Je t'ai transmis mon fichier. Merci pour ton aide
(gile) Posté(e) le 1 septembre 2009 Auteur Posté(e) le 1 septembre 2009 Salut, Merci pour le fichier.Je pense avoir résolu le problème, j'ai modifié le code dans le premier message. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
balyoa Posté(e) le 2 septembre 2009 Posté(e) le 2 septembre 2009 Merci Gilles, ca a l'air de marcher nickel, peux-tu me dire d'où venait le problème pour info ? Je teste sur mes autres fichiers. Bonne journée
philsogood Posté(e) le 5 janvier 2011 Posté(e) le 5 janvier 2011 Merci (gile)encore un LISP super pratiquebonne année sous le signe du lisp :D :D :D Projeteur Revit Indépendant - traitement des eaux/CVC
Messages recommandé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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant