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. lecrabe

    Lisp marche plus sur 2016 !

    Hello MAIS les Chemins de Support , c LE PLUS IMPORTANT !? Avec donc les 3 fichiers : GETNAME.LSP + GETNAME.DCL + SF.LSP DANS le fameux dossier ! ... "lisp" pour toi !? Gilles t'a demande quelle erreur s'affiche en Ligne de commande (Ecran Text F2) ?? Au boulot, tu es avec quelle version de AutoCAD ?? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  2. lecrabe

    Lisp marche plus sur 2016 !

    Hello Tu dis : Dans Options Fichiers, je pointe les Lisps dans Fichiers approuvés. Et dans les Chemins de Support ? As tu bien le MEME chemin ?? Gilles t'a demande quelle erreur s'affiche en Ligne de commande (Ecran Text F2) ?? Au boulot, tu es avec quelle version de AutoCAD ?? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  3. lecrabe

    Lisp marche plus sur 2016 !

    Hello Voir ci-dessous la version CORRIGEE de cette excellente routine SF du Grand Maitre Gilles ! Ta version etait POURRIE par les BBCodes !! Testee et validee sur la version 2019 ... Si tu veux 2 decimales alors tu changes aux 2 endroits %pr1% en %pr2% !? PERSO: 1 decimale me suffit largement ! Mes 3 attributs visibles sont sur 3 calques differents dans ma version du Bloc SF ! ATT_PIECE1_NOM , ATT_PIECE2_SURF , ATT_PIECE3_PERIM LA SANTE (Stay Safe), Bye, lecrabe "Triste" Automne 2020, la retraite ;; ;; Routine: SF par GC - Version NON TESTEE !! ;; ;; https://cadxp.com/topic/41525-lisp-marche-plus-sur-2016/page__pid__293745#entry293745 ;; ;; ATTENTION : il faut le GETNAME.LSP + .DCL & SF.lsp ;; dans les Chemins de Support + dans les chemins Approuves ;; ;;; SF par GC - 13/04/07 ;;; Insere le bloc "SF" apres selection d'une polyligne ;;; Attribut 1 : Nom de la piece / salle ;;; Attribut 2 : Surface/Aire de la polyligne ;;; Attribut 3 : Longueur/Perimetre de la polyligne (vl-load-com) (defun c:SF (/ AcDoc Space bloc nom ent obj ins op reg ech id long aire ref) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) Space (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace AcDoc) (vla-get-ModelSpace AcDoc) ) ) (if (or (tblsearch "BLOCK" (setq bloc "sf")) (findfile (setq bloc "sf.dwg"))) (progn ;; attribut "nom de la piece" (if (not (setq nom (getname "Nom de la Piece / Salle "))) (setq nom "") ) (while (not (setq ent (car (entsel))))) (setq obj (vlax-ename->vla-object ent)) (if (= "AcDbPolyline" (vla-get-ObjectName obj)) (progn (if (not (setq ins (getpoint "\nSpecifiez le point d'Insertion ou < Centre >: "))) (progn (if (= (vla-get-closed obj) :vlax-false) (progn (vla-put-closed obj :vlax-true) (setq op T)) ) (setq reg (vlax-invoke space 'addRegion (list obj)) ins (vlax-get (car reg) 'Centroid) ) (if op (vla-put-closed obj :vlax-false) ) (vla-delete (car reg)) ) ) (if (not (vlax-ldata-get "sf" "ech")) (vlax-ldata-put "sf" "ech" 1) ) (if (not (setq ech (getreal (strcat "\nEntrez le facteur d'Echelle du Bloc SF <" (rtos (vlax-ldata-get "sf" "ech")) ">: " ) ) ) ) (setq ech (vlax-ldata-get "sf" "ech")) (vlax-ldata-put "sf" "ech" ech) ) (setq id (vla-GetObjectIdString (vla-get-Utility AcDoc) obj :vlax-false) ;; Attribut Surface (mm² -> m²) ;; %<\AcObjProp Object(%<\_ObjId 1769073641568>%).Area \f "%lu2%pr1">% aire (strcat "Surface: " "%<\\AcObjProp Object(%<\\_ObjId " id ">%).Area \\f \"%lu2%pr1%ct8[1.00]\">%" "M2" ) ;; Attribut Longueur (mm -> m) ;; %<\AcObjProp Object(%<\_ObjId 1769073641568>%).Length \f "%lu2%pr1">% long (strcat "Perimetre: " "%<\\AcObjProp Object(%<\\_ObjId " id ">%).Length \\f \"%lu2%pr1%ct8[1.00]\">%" "ML" ) ) (setq ref (vla-InsertBlock Space (vlax-3d-point (trans ins 1 0)) bloc ech ech 1 (angle '(0 0 0) (trans (getvar 'ucsxdir) 0 (trans '(0 0 1) 1 0 T))) ) ) ;; attribution de leur valeur aux attributs (mapcar '(lambda (x y) (vla-put-TextString x y)) (vlax-invoke ref 'GetAttributes) (list nom aire long) ) (vla-regen AcDoc acActiveViewport) ) (alert "L'objet selectionne n'est pas une Polyligne ! ") ) ) (alert "Le Bloc \"sf\" est introuvable ! ") ) (princ) )
  4. lecrabe

    honte à toi

    Hello Sur certains Projets, il y a une charte graphique de competition pour la fourniture des DWGs ! Qq exemple de "contraintes" : - ZERO objet dessine ou insere sur le calque ZERO - Organisation de Calques avec Prefixes et Sous-Prefixes du genre "AAAA_BBBB_CCCC_XXXXXXXXX" par Metier et Sous-Metier Ce qui permet des Filtres de Calque simples et efficaces - Toutes les XREFs sur de multiples calques XREF_XXXXX par type de XREF (DWG, PDF, DGN, etc) et par metier - Toutes les Images/Photos sur de multiples calques XREF_IMG_XXXXXX / IMAGE_XXXXXX par type et par metier - Dans l'onglet OBJET, TOUS les calques VISIBLEs, on selectionne TOUT et les 3 ascenseurs des proprietes restent sur Ou alors usage MINIMUM du forcage de la Couleur ou d'un Type de ligne !? - Bibliotheque de Blocs toujours realises sur le calque ZERO (sauf exception exceptionnelle) en Mode ou (Suivant les besoins), avec un Point d'Insertion judicieux Parfois les Attributs (toujours Visibles) sont sur des calques specifiques du genre "ATT_ASS_XXXXX / ATT_AEP_XXXXX / ATT_EDF_XXXXX" pour pouvoir faire Visible / Invisible facilement et par Metier - UNITES correctes - BASE = 0,0 (sauf pour les Blocs) et ELEV = 0 / 0 - Coords XY dans un System de projection parfaitement connu et signale ... Si necessaire !? - TOUT le decor de l'Onglet OBJET (Cartouche, Logo, Cadre, Carroyage, Blablas, etc) sur des calques "ZZ_XXXXXX" - TOUT le decor de TOUS les Onglets Presentation (Cartouche, Logo, Cadre, Carroyage, Blablas, etc) sur des calques "ZZZ_XXXXXX" - TOUTES les Fenetres / FMULT / MVIEW sur UN (parfois 2) calque specifique du genre "ZZZ_FENETRE / ZZZ_FMULT Ainsi tous les autres calques NON_ZZ / NON_ZZZ, c LE "vrai" DWG ! - Les Hachures SEULES sur un calque specifique "xxxxxx_HACH" (Par exemple Calques: BATIMENT et BATIMENT_HACH) - Les Cotations sur de multiples calques "COT_xxxxxx / DIM_xxxxxx" - etc AUCUN caractere special ou accentue PARTOUT : noms de calques, blocs, styles, etc et MEME dans les Noms de DWG ! ... LE TOP = PAS de Blanc / Espace !! Que des Lettres / Chiffres / "_" / "-" Noms relativement courts de Dossiers et Sous-Dossiers = IDEM - Avec une Arborescence "subtile" ... AINSI on ne depasse JAMAIS 255 caracteres AVEC le Chemin + le Nom du Dessin + ".DWG" !! Voila ce que "raconte" le "Decapode PENIBLE" lors de ses Formations ! Je vous laisse ajouter d'autres exemples ... Franchement, c le PIED de travailler sur ce genre de DWGs !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  5. Hello Mr Algeco Dans le monde du traitement de données SIG multi-formats, FME (de SAFE) est LA REFERENCE ! Un peu comme AutoCAD, Windows, MS-Office, Oracle, PhotoShop, SAP, ArcGIS, etc, dans d autres domaines ... LA SANTE (Stay Safe), lecrabe "triste" Automne 2020, la retraite
  6. Hello Tu montes avec la souris sur un titre quelconque de colonne: nom du calque, actif, gele, verrouille, couleur, type de ligne, epaisseur, etc Bouton droit, "remettre" la / les colonnes manquantes ... Bouton droit, "cacher" la / les colonnes que tu n'utilises JAMAIS ! -- Mais prudence quand tu recois des DWGs de l'Exterieur !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  7. Hello C meme PAThetique ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  8. Hello Gilles 1) MERCI - MAGNIFIQUE ! 2) Eventuellement SVP serait il possible d'avoir une Selection classique !? Car aller faire un clic sur des dizaines de champs dynamiques, c un peu penible !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  9. Hello Gilles 0) Si tu passes par LA, SVP peux tu aider ? 1) Pour les 2 routines LSP - Passer par une selection CLASSIQUE et non pas TOUT le DWG !? 2) Ajouter en fin de boucle pour chaque Bloc traite un ATTSYNC Ainsi si il y a des Attributs, c OK !! Merci d'avance ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  10. Hello Je suis dans ma 36eme annee AutoCAD car j'ai commence fin 1984 avec la vs 1.4 ... Et donc aujourd'hui j'ai appris un Truc sur les Hachures et les fichiers .PAT ! https://knowledge.autodesk.com/fr/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/FRA/Error-in-pattern-file-in-AutoCAD.html Je ne savais pas qu'il fallait faire UN Motif PAT UNIQUE par fichier PAT !! En fait depuis toujours j'accumulais mes Motifs PAT dans les 2 .PAT standards: ACAD.PAT et ACADISO.PAT Donc je n'avais AUCUN Souci !! Je m'incline BIEN BAS devant le Maitre ERIC : https://www.caderix.com/ qui m'a eclaire aujourd'hui a ce sujet ... LA SANTE (Stay Safe), Bye, lecrabe "Triste" Automne 2020, la retraite
  11. lecrabe

    plan de Coupe 3D

    Hello Si l'objet 3D n'est pas trop "complique", on peut le copier en Ortho a une distance precise (si necessaire) Coupe A sur l'Original et Coupe B sur la copie et ainsi de suite ... Avec eventuellement les copies sur d'autres calques pour bien gerer les affichages par Fenetre / FMULT ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  12. lecrabe

    honte à toi

    Hello +1 avec Le Breton Grand_Sapin ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  13. Hello ET voici la routine magique "AddFields" de notre Grand Maitre Gilles ! ATTENTION: il ne faut pas TROP cumuler de champs dans la selection ! Mais bon jusqu'a qq centaines (suivant la vitesse du PC) , ca passe !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;; ;; J'ai fait une routine plus aboutie qui insère un champ ;; dont la valeur est égale à la somme des valeurs des champs sélectionnés ;; dans des textes, mtextes ou attributs pouvant être imbriqués dans des blocs ou des tableaux. ;; ;; ADDFIELDS par GC version 1.00 pour Patrice B. ;; ;; Insère un texte contenant un champ dynamique dont la valeur ;; est égale à la somme des valeurs des champs des textes, mtextes ;; ou attributs sélectionnés ;; ;; NOTA : aucun contrôle sur la conformité des champs sélectionnés ;; (defun c:AddFields (/ ent res code pos ins) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (while (setq ent (car (nentsel "\nSélectionnez un champ: "))) (if (and (setq code (gc:FieldCode ent)) (setq pos (vl-string-search "%<" code)) (setq code (substr code (1+ pos))) (setq pos (vl-string-position 37 code 1 T)) (setq code (substr code 1 (1+ pos))) ) (setq res (cons code res)) (princ "\nEntité non valide") ) ) (if (and res (setq ins (getpoint "\nPoint d'insertion: ")) ) (progn (setq res (strcat "%<\\AcExpr " (lst2str res " + ") " " (if (setq pos (vl-string-position (ascii "\\") code 1 T)) (substr code (1+ pos)) ">%" ) ) ) (vla-addText (if (= 1 (getvar 'cvport)) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) res (vlax-3d-point (trans ins 1 0)) (getvar 'textsize) ) ) ) (princ) ) ;;========================= ROUTINES =========================;; ;; gc:FieldCode par GC ;; Retourne la chaîne de caractère d'un attribut, texte ou mtexte ;; avec le(s) code(s) de champ(s) ;; ;; Argument : nom d'entité de l'objet (ENAME) (defun gc:FieldCode (ent / foo elst xdict dict field str) ;;--------------------------------------------------------;; (defun foo (field str / pos fldID objID) (setq pos 0) (if (setq pos (vl-string-search "\\_FldIdx " str pos)) (while (setq pos (vl-string-search "\\_FldIdx " str pos)) (setq fldId (entget (cdr (assoc 360 field))) field (vl-remove (assoc 360 field) field) str (strcat (substr str 1 pos) (if (setq objID (cdr (assoc 331 fldId))) (vl-string-subst (strcat "ObjId " (itoa (gc:EnameToObjectId objID))) "ObjIdx" (cdr (assoc 2 fldId)) ) (foo fldId (cdr (assoc 2 fldId))) ) (substr str (1+ (vl-string-search ">%" str pos))) ) ) ) str ) ) ;;--------------------------------------------------------;; (setq elst (entget ent)) (if (and (member (cdr (assoc 0 elst)) '("ATTRIB" "MTEXT" "TEXT")) (setq xdict (cdr (assoc 360 elst))) (setq dict (dictsearch xdict "ACAD_FIELD")) (setq field (dictsearch (cdr (assoc -1 dict)) "TEXT")) ) (setq str (foo field (cdr (assoc 2 field)))) ) ) ;;============================================================;; ;; gc:EnameToObjectId par GC ;; Retourne l'ObjectID correspondant à un ename ;; ;; Argument : un ename (defun gc:EnameToObjectId (ename) ((lambda (str) (hex2dec (substr (vl-string-right-trim ">" str) (+ 3 (vl-string-search ":" str))) ) ) (vl-princ-to-string ename) ) ) ;;============================================================;; ;; hex2dec par GC ;; conversion hexadécimal -> décimal ;; ;; Argument : un hexadédimal (chaîne) (defun hex2dec (s / r l n) (setq r 0 l (vl-string->list (strcase s))) (while (setq n (car l)) (setq l (cdr l) r (+ (* r 16) (- n (if (<= n 57) 48 55))) ) ) ) ;;============================================================;; ;; lst2str par GC ;; Concatène une liste et un séparateur en une chaine ;; ;; Arguments ;; lst : la liste à transformer en chaine ;; sep : le séparateur (defun lst2str (lst sep) (if (cdr lst) (strcat (vl-princ-to-string (car lst)) sep (lst2str (cdr lst) sep) ) (vl-princ-to-string (car lst)) ) )
  14. Hello DONC une routine Lisp qui ferait automatiquement la somme des N champs dynamiques serait interessante !? Voire meme la somme dans un nouveau champ dynamique, ce serait le TOP !! A priori, j'ai en stock !! MERCI au Grand Maitre Gilles !!! Je dois farfouiller un peu dans "mes" 3000 routines ! Et si malheureusement je n'ai pas mis un bon mot cle, je risque de ne pas la retrouver !! SVP Gilles si tu nous lis !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  15. Hello J'avais ecrit CELA, car j'ai la MEME routine que Steven ! Et donc je sentais bien que cela ne te conviendra pas !? La version d'AutoCAD n'a RIEN a VOIR !! Les Champs dynamiques n'ont pas evolue dans AutoCAD depuis plus de 12 ans !! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  16. Un petit UP !?
  17. lecrabe

    honte à toi

    Hello Quand on tombe sur des PROFITEURS VICIEUX ! Pourquoi pas TOUT exploser ou du moins le maximum ! Mais pas beaucoup plus (A Mon Avis) !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  18. Hello As tu des champs "simples et separes" representant la Surface ou Longueur de Polylignes ? Si OUI, veux tu savoir a quel objet est lie un champ "simple et separe" ?? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  19. Hello 1) Comme d'habitude une excellente routine de notre Grand Maitre Gilles fera l'affaire ! 2) Je suppose que tu travailles en Metres et que tu desires le resultat avec 1 decimale et le suffixe M2 !? Cela peut se changer facilement ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;; ;; PolyArea par GC - 03/03/2018 ;; ;; Micro-Modif par Patrice B. ;; ;; ------------------------------------------------------------------------------------- ;; SVP changer la Variable System TEXTSIZE AVANT d'executer la Routine ! ;; Car la routine utilise la valeur de TEXTSIZE comme Hauteur de MTEXT par defaut ... ;; ------------------------------------------------------------------------------------- ;; ;; J'ai revu les codes, le probleme venait de la methode utilisee pour placer le texte/champ sur le barycentre de la polyligne. ;; Cette methode ne fonctionnait qu'avec des polylignes. ;; ;; J'ai change cela. Le texte est desormais place au centre de la boundingbox de l'entite. ;; J'ai aussi revu les filtres de selection qui ne devraient pas etre tout à fait les memes pour l'aire et la longueur. ;; ;; Pour l'aire, je te laisse choisir entre uniquement les objets fermes, ou pas. ;; ;; Pour les longueurs, les champs sont differents pour les cercles (Circumference), les regions et mpolygons (Perimeter) ;; et n'existent pas pour les ELLIPSEs et SPLINEs, j'ai donc remplace le champ par un MTEXT simple qui affiche la longueur. ;; ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Area \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Length \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Perimeter \f "%lu2">% ;; %<\AcObjProp Object(%<\_ObjId 1181647088>%).Circumference \f "%lu2">% ;; ;; Liste sur ELLIPSE --> Aire & Circonference ?? ;; Liste sur SPLINE --> Aire & Circonference ?? ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; (defun c:PolyArea (/ *error* filter ss acSpace minPt maxPt pt id str txt) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (or *util* (setq *util* (vla-get-Utility *acdoc*))) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (/= msg "Function cancelled") (princ (strcat "Erreur: " msg)) ) (vla-EndUndomark *acdoc*) (princ) ) ;; entités fermées ;| (setq filter (list '(-4 . "<OR") '(0 . "CIRCLE,MPOLYGON,REGION") '(-4 . "<AND") '(0 . "ELLIPSE") '(41 . 0.0) (cons 42 (* 2 pi)) '(-4 . "AND>") '(-4 . "<AND") '(0 . "LWPOLYLINE") '(-4 . "&") '(70 . 1) '(-4 . "AND>") '(-4 . "<AND") '(0 . "POLYLINE") '(-4 . "&") '(70 . 1) '(-4 . "<NOT") '(-4 . "&") '(70 . 120) '(-4 . "NOT>") '(-4 . "AND>") '(-4 . "<AND") '(0 . "SPLINE") '(-4 . "&") '(70 . 9) '(-4 . "AND>") '(-4 . "OR>") ) ) |; ;; entités fermées ou ouvertes (setq filter (list '(-4 . "<OR") '(0 . "ARC,CIRCLE,LWPOLYLINE,MPOLYGON,REGION,ELLIPSE") '(-4 . "<AND") '(0 . "POLYLINE") '(-4 . "<NOT") '(-4 . "&") '(70 . 120) '(-4 . "NOT>") '(-4 . "AND>") '(-4 . "<AND") '(0 . "SPLINE") '(-4 . "&") '(70 . 8) '(-4 . "AND>") '(-4 . "OR>")) ) (prompt "Hauteur courante de MTEXT - Voir la Variable System TEXTSIZE ... \n" ) (prompt "\nPOLYAREA traite: ARC,CIRCLE,ELLIPSE,POLYLINE 2D,ELLIPSE,SPLINE,MPOLYGON,REGION \nSelectionnez les objets ou Entree pour tous ") (if (or (ssget filter) (ssget "_X" (cons (cons 410 (getvar 'ctab)) filter)) ) (progn (vla-StartUndomark *acdoc*) (setq acSpace (vla-get-Block (vla-get-ActiveLayout *acdoc*))) (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-GetBoundingBox obj 'minPt 'maxPt) (setq pt (mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.)) (vlax-safearray->list minPt) (vlax-safearray->list maxPt) ) id (vla-GetObjectIdString *util* obj :vlax-false) str (strcat "%<\\AcObjProp Object(%<\\_ObjId " id ">%).Area \\f \"%lu2%pr1%ps[,m²]%\">%" ) txt (vla-addMText acSpace (vlax-3d-point pt) 0. str) ) (vla-put-AttachmentPoint txt acAttachmentPointMiddleCenter) (vla-put-insertionPoint txt (vlax-3d-point pt)) ) (vla-Delete ss) ) ) (*error* nil) )
  20. lecrabe

    Made in France

    Hello Je suis impressionné car en général les engrenages plastiques et surtout les courroies sont foutues après 5-10 ans ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  21. Hello Eventuellement interessant !? https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/all-lisp-functions-best-catogerization-pdf-attachment/td-p/8328265 LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  22. Hello 1) SVP tu essayes cette version "Norm_MText_in_Block" ci-dessous (NON TESTEE !) ... 2) Tu peux changer CETTE ligne : (setq layer_for_text "TEXTMULT_BLOCK") Si tu desires un AUTRE Nom de Calque !? 3) Tu nous diras ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;; ;; http://cadxp.com/topic/44644-subtilite-lisp-bloc/page__pid__257099 ;; ;; Routine par GC ;; ;; Micro-Micro Modif par Patrice : Norm_MText_in_Block (Pour MTEXTs Multiples) ;; ;; Zara >>> J'utilise le Lisp suivant pour Editer les blocs d'un dessin ;; Cela fonctionne très bien mais je souhaiterai ne pas toucher aux hachures des blocs ;; juste les lignes concernant le changement de couleur ;; ;; Auriez-vous une idée pour modifier le Lisp pour que cela fonctionne? ;; ;; --- Interrogation Entite/Objet en Lisp --- ;; (entget (car (entsel)) '("*")) ;; ;; (command "_layer" "_m" "TEXT_BLOCK" "") ;; (command "_layer" "_m" "TEXTMULT_BLOCK" "") ;; (command "_layerp") ;; (vl-load-com) (defun c:Norm_MText_in_Block (/ *error* adoc lst_layer layer_for_text func_restore-layers) ;;;;;;;;;;;; Micro-Micro-Modif par Patrice ;;;;;;;;;;;; ;;;;;; Nom du Calque des Textes Multiples ;;;;;; (setq layer_for_text "TEXTMULT_BLOCK") ;;;;;; Creation du calque VOULU ;;;;;; (command "_layer" "_m" layer_for_text "") (command "_layerp") (defun *error* (msg) (func_restore-layers) (vla-endundomark adoc) (princ msg) (princ) ) ;_ end of defun (defun func_restore-layers () (foreach item lst_layer (vla-put-lock (car item) (cdr (assoc "lock" (cdr item)))) (vl-catch-all-apply '(lambda () (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item)))) ) ;_ end of lambda ) ;_ end of vl-catch-all-apply ) ;_ end of foreach ) ;_ end of defun (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))) ) ;_ end of vla-startundomark (vlax-for item (vla-get-layers adoc) (setq lst_layer (cons (list item (cons "lock" (vla-get-lock item)) (cons "freeze" (vla-get-freeze item)) ) ;_ end of list lst_layer ) ;_ end of cons ) ;_ end of setq (vla-put-lock item :vlax-false) (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false))) ) ;_ end of vlax-for (vlax-for blk (vla-get-blocks adoc) (if (and (equal (vla-get-islayout blk) :vlax-false) (equal (vla-get-isxref blk) :vlax-false) ) ;_ end of and (progn (vlax-for subent blk ;;;;;; Pour TOUT sauf les Hachures ;;;;;; ;; (if (/= (vla-get-ObjectName subent) "AcDbHatch") ;;;;;; Pour QUE les Textes simples / multiples ;;;;;; ;; (if ( = (vla-get-ObjectName subent) "AcDbText") (if ( = (vla-get-ObjectName subent) "AcDbMText") (progn ;; (vla-put-layer subent "0") ;; (vla-put-layer subent "Text_Block") (vla-put-layer subent layer_for_text) ;;;;;; Suppression des 3 Modes ByBlock ;;;;;; ;; (vla-put-color subent 0) ;; (vla-put-lineweight subent aclnwtbyblock) ;; (vla-put-linetype subent "byblock") );_ end of progn );_ end of if ) ;_ end of vlax-for ) ;_ end of progn ) ;_ end of if ) ;_ end of vlax-for (func_restore-layers) (vla-endundomark adoc) (princ) ) ;_ end of defun
  23. lecrabe

    Lenteur MAP 2011 et internet

    Hello Le SP2 pour MAP 2011 est LA : https://knowledge.autodesk.com/support/autocad-map-3d/downloads/caas/downloads/content/autocad-map-3d-2011-update-2.html?v=2011 A installer apres le SP1 ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  24. Hello Calmos ! En fait il faut un fichier FBX spécialement prépare pour cette faille de sécurité ! Donc un FBX "corrompu subtilement" provenant de l extérieur !! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  25. Hello +1 avec Olivier (Comme d'habitude) ! En complement de mon message No 26 ! 1) Dans Toutes les Configs que j'ai simulees, je disais bien : faire attention aux Slots Memoire DISPOs pour pouvoir si necessaire "monter" a 64 Go Ram ! 2) TA Config dispose d'un Core i9 10980HK : 8C/16T - 2.4-5.3 Ghz - 16 Mo cache -- Dans mon message No 19 , je t'avais propose : Un Core i7 9750H : 2.6-4.5 Ghz - 6C/12T - 12 Mo cache Franchement c suffisant ! Car ton Super Core i9 10980HK ira au mieux 15-25% plus vite !! SURTOUT pour faire principalement de l'AutoCAD + Covadis !! 3) Je maintiens toujours mon opinion sur un SSD M2 RAPIDE de 1 To ! 4) OK avec Olivier pour un Win 10 Pro ! SI jamais tu dois integrer un AD dans une quelconque organisation !? 5) PERSO : jamais je mettrais 3500 Euros dans un tel PC ! Comme le dit SI BIEN Olivier : pour mettre a genou un i7 9750H (2.6-4.5 Ghz - 6C/12T - 12 Mo cache) et 32 Go Ram , il faut deja manipuler du lourd en vectoriel simple. !!!! Comme deja evoque, "bien soigner" la garantie !!!! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
×
×
  • 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é