Aller au contenu

lecrabe

Moderateurs
  • Compteur de contenus

    10 665
  • Inscription

  • Dernière visite

  • Jours gagnés

    101

Tout ce qui a été posté par lecrabe

  1. Hello Et donc voici 2 routines indispensables de notre Grand Maitre Gilles pour les Proprietes personnalisees ! -- "DWGProps2CSV" pour exporter en CSV (donc apres Excel) les Proprietes personnalisees ... -- "IMP_PROP_DWG" pour importer les Proprietes personnalisees dans le DWG courant depuis un autre DWG ... Bye, lecrabe -- "DWGProps2CSV" -- ;; ;; https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-to-extract-data-from-dwgprops-and-place-in-excel/m-p/9071687 ;; ;; Routine: DWGProps2CSV par GC ;; ;; Le fichier CSV genere est AU MEME Endroit que le DWG xxxxxx ... ;; avec un Nom = xxxxxx_SummaryInfo.csv ;; ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; (defun c:DWGProps2CSV (/ doc info filename sep file i prop val) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)) info (vla-get-SummaryInfo doc) filename (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname)) "_SummaryInfo.csv") sep (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList") file (open filename "w") ) (foreach prop '("Title" "Subject" "Author" "Keywords" "Comments" "HyperlinkBase" "LastSavedBy" "RevisionNumber") (write-line (strcat prop sep (vlax-get info prop)) file) ) (setq i 0) (repeat (vla-NumCustomInfo info) (vla-GetCustomByIndex info i 'prop 'val) (write-line (strcat prop sep val) file) (setq i (1+ i)) ) (close file) ) -- "IMP_PROP_DWG" -- ;; ;; https://forums.autodesk.com/t5/autocad-tous-produits-francais/comment-copier-les-proprietes-d-un-dessin-dans-un-autre-dessin/m-p/4574327#M38811 ;; ;; Routine: IMP_PROP_DWG par GC ;; ;; Voir la commande: PROPDESS / _DWGPROPS ;; ;; Copier les proprietes personnalisees d'un DWG/DWT dans le DWG courant ... ;; ;; Ci-dessous le code de la routine IMP_PROP_DWG correctement formaté. ;; ;; À copier dans un éditeur de texte (bloc-note) et à enregistrer avec l'extension .lsp (et pas .lisp). ;; ;; Pour de plus amples explications sur le chargement et l'utilisations de routine LISP voir ici : ;; ;; http://cadxp.com/topic/14323-charger-un-lisp/ ;; (vl-load-com) ;; IMP_PROP (gile) ;; Importe dans le dessin courant les propriétés personnalisées d'un fichier (dwg ou dwt) (defun c:Imp_Prop_DWG (/ 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 (< (setq release (atoi (getvar "ACADVER"))) 16) "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 )
  2. lecrabe

    Impossible ouvrir XREF

    Hello Et voici une version US de Tharwat qui traitait les TEXTs et MTEXTS mais j ai fais la micro-modif pour les objets OLE Est ce que cela vous convient ? ... Routine VLisp "Del_OLE2FRAME" Cette routine permet la selection des Blocs et donc elle ne traite pas automatiquement TOUT le DWG ! contrairement a la routine de notre Grand Maitre Gilles ... ( Au fait ne pas oublier d ajouter (vl-load-com) au debut de la routine "KOLE_BLOCK" ! ) Bye, lecrabe ;;; ;;; http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Delete-text-or-mtext-in-a-block/td-p/4905402 ;;; Tharwat 24. Mar. 2014 ;;; ;;; ;;; Delete Text & MText INSIDE Blocks ;;; ;;; -- Modify to delete AcDbOle2Frame -- ;;; (vl-load-com) (defun c:Del_OLE2FRAME (/ ss i sn name blockdefinition namelist) (cond (doc) ((setq doc (vla-get-activedocument (vlax-get-acad-object)))) ) (princ "\n Select Blocks to remove AcDbOle2Frame within ... ") (if (setq ss (ssget "_:L" '((0 . "INSERT")))) (repeat (setq i (sslength ss)) (setq sn (ssname ss (setq i (1- i)))) (if (not (member (setq name (cdr (assoc 2 (entget sn)))) namelist)) (progn (setq namelist (cons name namelist)) (vlax-for x (setq blockdefinition (vla-item (vla-get-blocks doc) name)) (if (and (eq :vlax-false (vla-get-isxref blockdefinition)) (eq :vlax-false (vla-get-islayout blockdefinition)) ;; (wcmatch (vla-get-objectname x) "AcDb*Text") (wcmatch (vla-get-objectname x) "AcDbOle2Frame") ) (if (vlax-write-enabled-p x) (vla-delete x)) ) ) ) ) ) (princ) ) (if ss (vla-regen doc acAllViewports) ) (princ) )
  3. lecrabe

    Impossible ouvrir XREF

    Hello MERCI @Steven ... Tu as pousse LOIN ton analyse ... Et en effet MOINS on utilise les objets OLE mieux on se porte ! Bye, lecrabe
  4. Hello MAIS il te faut 2 Lisp indispensables de notre grand Maitre Gilles !! -- Exporter en CSV ces Proprietes personnalisees -- Importer ces Proprietes personnalisees dans le DWG courant depuis un autre DWG Ca t interesse ? Bye, lecrabe
  5. Hello Mais tu peux definir des Proprietes personnalisees sur ton DWG et les afficher en tant que CHAMP dynamique ... Je te conseille de les nommer comme cela : 1_ALPHA , 1_BRAVO, 1_DATE, 1_VERSION, 1_PROJETEUR, 2_xxxxxx, etc Ainsi elles apparaitront au debut de l enorme ascenseur des Proprietes ! C Tip-Top et cela se remet a jour PARTOUT : Onglet OBJET et TOUTES les Presentations / Layouts Bye, lecrabe
  6. lecrabe

    Impossible ouvrir XREF

    Hello 1) OUI SVP NE JAMAIS verrouiller ou geler le calque ZERO !! 2) ET d'autre part INactiver le calque ZERO le moins possible ! 3) De toute facon ne jamais RIEN dessiner (sauf temporairement ... Dessin d un futur Bloc/Symbole) ou inserer ou coper/coller sur le calque ZERO Sur le DWG principal, tu as (a priori) 5 entites sur le calque ZERO ! Sur la XREF "210656_TOPO...", tu as (a priori) 28 entites sur le calque ZERO ! Sur la XREF "Xref_reseaux...", tu as (a priori) 13 entites sur le calque ZERO ! 4) Au fait as tu Covadis sur ton PC ? ... Car c du dessin Covadis ! ---- Si tu n as pas Covadis alors SVP demander du DWG SANS les objets Covadis ---- ---- Et si tu as Covadis faire la meme chose pour "donner" du DWG "pur et dur" a qq un qui n a pas Covadis Enregistrer en DWG "pur et dur" SANS les Objets Metiers Covadis Donc perte de l'Intelligence et Parametres de TOUS les Objets Metiers Covadis Commande au clavier : _CovaEnregSansCovadis < Entree > Voir dans le Menu deroulant "CovEchanges" en bas ... Bye, lecrabe
  7. lecrabe

    Impossible ouvrir XREF

    Hello 0) Analyses et Nettoyages et Test avec AutoCAD MAP 2023 1) SVP peux tu essayer avec MA version ? ... Sans garantie ! www.grosfichiers.com/5zDkygbWYaX 2) NON j ai la MEME erreur : Commande: _refedit Erreurs trouvées dans les références aux autres objets: ** Impossible de référencer AcDbOle2Frame objets. Je suppose que cela provient de la presence d objets OLE dans la XREF !? 3) Mais tu peux toujours ouvrir la XREF SEULE ... Bye, lecrabe
  8. lecrabe

    Impossible ouvrir XREF

    Hello OK Merci je vais analyser ... On parle de QUELLE XREF ?? Bye, lecrabe
  9. Hello Commande : CHAMP < Entree > Ascenseur en haut a gauche : choisir la Categorie "Objet" En haut au milieu, CLIC sur l Icone de selection ... CLIC sur le cadre de l'image pour la selectionner ... Choisir les Proprietes : "Chemin enregistre" et/ou "Nom" Et tu obtiendras un MTEXT special dont tu changeras la hauteur apres ... OK ?? La Sante, Bye, lecrabe
  10. Hello Mais si c est une Image (JPG, PNG, etc) tu peux par un Champ dynamique afficher le chemin et/ou le nom !? La Sante, Bye, lecrabe
  11. lecrabe

    Impossible ouvrir XREF

    Hello SVP peux tu nous donner un Lien Free Download, WETransfert, etc avec TON DWG et XREFs ? Bye, lecrabe
  12. Hello 1) DESOLE mais DEJA ton VLisp ne fonctionne pas sur AutoCAD ! Commande: TABM Choisir une option [Collection/Objet/Selection] < Selection >: Sélectionner des objets: Régénération du modèle. Spécifiez le coin opposé: 61 trouvé(s) Sélectionner des objets: Hauteur du text <1.00> : Placer la tableau:; erreur: Erreur Automation Entrée incorrecte Commande: 2) As tu la version originale en US/English operationnelle ? Bye, lecrabe
  13. Hello SVP un extrait de ton DWG par un WBLOC pour comprendre ? Merci, Bye, lecrabe
  14. Hello @bonuscad 1) MERCI ta Modif est OK ! 2) Sinon je plane comme @didier Bonne soiree, Bye, lecrabe
  15. Hello Voir ci-avant la routine VLisp ... -- A CORRIGER / AMELIORER SVP -- Coucou @bonuscad @didier @(gile) etc Merci, Bye, lecrabe
  16. Hello Oliver ?? Au fait as tu bien recu mon message dans TA messagerie Pro ?? Sinon voici une routine "F_Emprise" de Bruno / Bonuscad mais qui "deconne" un peu ! Elle tente de tracer un rectangle dans l 'Onglet OBJET correspondant a CHAQUE Fenetre FMULT de TOUTES les Presentations / Layouts : -- A CORRIGER / AMELIORER -- Bye, lecrabe ;; ;; Routine: F_Emprise par Bruno - 10/2016 ;; ;; A lancer DANS une Fenetre FMULT des Presentations/Layouts ;; ;; Cela cree dans l'Onglet Objet un Rectangle (Polyligne) ;; + MTexte (Nom de la Presentation) en bas a gauche ;; montrant l'Emprise de la Fenetre FMULT ... ;; ;; ----------------------------------------------- ;; Cela semble PLUS ou MOINS Bien fonctionner !? ;; ----------------------------------------------- ;; (defun c:F_Emprise ( / el js n ent dxf_ent pt_v l h lst_pt js_obj) (vl-load-com) (foreach el (layoutlist) (setvar "CTAB" el) (setq js (ssget "_X" (list '(0 . "VIEWPORT") '(67 . 1) (cons 410 el) '(-4 . "!=") '(69 . 1) ) ) ) (repeat (setq n (sslength js)) (setq js_obj nil pt_v (cdr (assoc 10 (setq dxf_ent (entget (setq ent (ssname js (setq n (1- n)))))))) l (cdr (assoc 40 dxf_ent)) h (cdr (assoc 41 dxf_ent)) lst_pt (list (list (- (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0) (list (+ (car pt_v) (* 0.5 l)) (- (cadr pt_v) (* 0.5 h)) 0.0) (list (+ (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0) (list (- (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0) ) js_obj (ssadd) ) (entmakex (vl-list* (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 67 1) (cons 100 "AcDbPolyline") (cons 90 (length lst_pt)) (cons 70 1) (mapcar '(lambda (p) (cons 10 p)) lst_pt) ) ) (ssadd (entlast) js_obj) (entmake (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(67 . 1) (cons 410 el) (cons 8 (getvar "CLAYER")) '(100 . "AcDbMText") (cons 10 (car lst_pt)) '(40 . 3.5) '(41 . 0.0) '(46 . 0.0) '(71 . 7) '(72 . 5) (cons 1 (strcat "{\\fArial|b0|i0|c0|p34;" el)) '(7 . "Standard") '(210 0.0 0.0 1.0) '(11 1.0 0.0 0.0) '(50 . 0.0) '(73 . 1) '(44 . 1.0) ) ) (ssadd (entlast) js_obj) (command "_.CHSPACE" js_obj "" ) ) ) (prin1) )
  17. Hello Tu as quel Service Pack sur ton AutoCAD LT 2014 ? Bye, lecrabe
  18. Hello Desole mais je suis en Vacs SANS PC ! https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/simplecontent/content/how-to-make-autocad-run-directx-11.html A tester ? Bye, lecrabe
  19. Hello Sinon tu vas essayer GFXDX12 = 0 Relancer AutoCAD ... Alors ? Bye, lecrabe
  20. Hello Ton driver Nvidia date de quand ? Bye, lecrabe
  21. Hello As tu TOUS les Updates sur ton MAP 2018 ? Bye, lecrabe
  22. Hello SVP tu lis bien ce que j ai dit ! ((equal 1 1.5 1e-6) 1) signifie : Si la Cote a la valeur 1.5 (mm ou cm ou m ou km ou etc) alors on force le code couleur 1 donc ROUGE ! SVP tu modifies en consequence les valeurs 1.5 / 2.0 / 2.5 ... Par exemple si c 'est la valeur 2500.0 qui t'interesse + forcer en Code couleur 6 Magenta : ((equal 1 2500.0 1e-6) 6) Neanmoins ne pas oublier que cette routine Lisp ne correspond pas exactement a ta demande !? Je pense que tu as plutot besoin d une routine qui ferait la chose suivante : 1) Question de la valeur de cotation (Cotes Alignees et Lineaires) 2) Type de test : < , > , = , <= , >= 3) Selection classique 4) Et donc on retient dans la selection que les Cotes Alignees et Lineaires correspondantes ... Bye, lecrabe
  23. Hello Voir ci-dessous une base de depart ... Routine "DIMCOLOR" ... Coloriage de cote en fonction d une Valeur precise ! ((equal l 1.5 1e-6) 1) : si valeur = 1.5 alors Code couleur = 1 rouge ((equal l 2.0 1e-6) 2) : si valeur = 2.0 alors Code couleur = 2 jaune etc 1) Tu pourras ajouter TES valeurs avant la ligne (256) 2) "_X" sur la ligne ssget fait que cela selectionne TOUTES les Cotations ! Donc tu le supprimes "_X" si tu veux une selection "normale" ... ATTENTION : c non teste ! ... SVP tu nous diras si cela te convient ? Merci VDH-Bruno, La Sante, Bye, lecrabe ;; ;; http://cadxp.com/topic/38095-couleur-en-fonction-des-cotes/page__pid__210019 ;; VDH-Bruno - la cote 1.50m en bleu, 2.00m en vert, 2.50m en rouge ;; Routine : DIMCOLOR vs 1.00 par VDH-Bruno ;; Forcer TOUTES les Entites (Attaches, Ligne, Texte) avec UNE couleur ;; en fonction d' une Valeur de Cote : 1.50 , 2.00 , 2.50 ;; (defun c:DIMCOLOR () (vl-load-com) (if (ssget "_X" '((0 . "DIMENSION"))) (vla-delete (vlax-map-collection (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))) '(lambda (o / l c) (setq l (vla-get-Measurement o) c (cond ((equal l 1.5 1e-6) 1) ((equal l 2.0 1e-6) 2) ((equal l 2.5 1e-6) 3) (256) ) ) (foreach p '(DimensionLineColor ExtensionLineColor TextColor) (vlax-put o p c)) ) ) ) ) (princ) )
  24. Hello Le Jeune Australopitheque Alumini Autodeskien BRAVO tu etais un Precurseur ! La Sante, Bye, lecrabe
  25. Hello @Curlygoth Coucou en quoi je t'ai aide ? La Sante, Bye, lecrabe
×
×
  • 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é