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 voici un SUPERBE Exemple de notre Grand Maitre Gilles ! Routine: LISTBLOCK qui genere un Tableau des Blocs avec : le Nom, le Nombre Total par Bloc et la Representation graphique ! Je l'utilise pour des Quantitatifs et aussi en supprimant la colonne du Nombre Total pour avoir une simple legende !! BIEN SUR le tableau genere (contrairement a l 'extraction de donnees AutoCAD) est STATIQUE mais cela ne me gene pas du tout ... ------------------------------------------------------------------------------------------ SVP si qq'un pouvait faire une petite amelioration : Traiter AUSSI les Blocs INCLUS dans les Reseaux associatifs ... MERCI d'avance ! ------------------------------------------------------------------------------------------ Routine extraite de "mon" stock de 3000 routines ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;; ;; Routine: ListBlock par GC ;; ;; Table des Blocs : Nom , Nombre , Graphisme du Bloc ;; ;; To be clearer, you can set the text height bay row type: ;; Only data rows (bit 1) ;; (vla-SetTextHeight table 1 height) ;; Only title row (bit 2) ;; (vla-SetTextHeight table 2 height) ;; Only header row (bit 4) ;; (vla-SetTextHeight table 1 height) ;; You can also combinate this, e.g. for the entire table (+ 1 2 4): ;; (vla-SetTextHeight table 7 height) ;; ;;;;; ;;;;; Hauteur des Textes dans la Table = 5.0 ;;;;; ;;;;; (vla-SetTextHeight table 7 5.0) ;;;;; (defun c:ListBlock (/ ss name block blocks insPt table row) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*)) ) ;; Select blocks (prompt "\nSelect blocks to list or <All> ") (or (setq ss (ssget '((0 . "INSERT")))) (setq ss (ssget "_X" '((0 . "INSERT"))) ) ) (if ss (progn ;; Build a list of dotted pairs (blockName . numberOfReferences) from the selection set (vlax-for x (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (if (not (vlax-property-available-p x 'Path)) (setq name (vla-get-EffectiveName x) blocks (if (setq block (assoc name blocks)) (subst (cons name (1+ (cdr block))) block blocks) (cons (cons name 1) blocks) ) ) ) ) (vla-delete ss) ;; Prompt for insertion point (initget 1) (setq insPt (trans (getpoint "\nInsertion point: ") 1 0)) ;; Create the table (setq table (vla-addtable (vla-get-modelspace *acdoc*) (vlax-3d-point insPt) (+ 2 (length blocks)) ; number of rows (including title and header) 3 ; number of colums 20 ; cell height 80 ; row width ) ) (vla-put-VertCellMargin table 4.0) (vla-put-TitleSuppressed table :vlax-false) (vla-put-HeaderSuppressed table :vlax-false) ;; Fill the titel and the header ; (vla-setText table 0 0 "Blocks") ; (vla-setText table 1 0 "Name") ; (vla-setText table 1 1 "Count") ; (vla-setText table 1 2 "Symbol") ;; Textes version Francaise (vla-setText table 0 0 "Quantitatif des Blocs") (vla-setText table 1 0 "Nom") (vla-setText table 1 1 "Nombre") (vla-setText table 1 2 "Symbole") ;;;;; Hauteur des Textes dans la Table = 5.0 ;;;;; (vla-SetTextHeight table 7 5.0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; fill the following rows from the list contents (setq row 2) (foreach item blocks (vla-settext table row 0 (car item)) ; block name (vla-settext table row 1 (cdr item)) ; references count (vla-SetBlockTableRecordId ; block symbol table row 2 (vla-get-ObjectId (vla-Item *blocks* (car item))) :vlax-true ) (setq row (1+ row)) ) ) ) (princ) )
  2. lecrabe

    Export DWF 3D

    Hello AUCUN souci pour moi et mon AutoCAD MAP 2018 parfaitement A JOUR ! Update AutoCAD 2018.1.2 + Update MAP 2018.0.1 Voir cet exemple traite par mon MAP 2018 : http://dl.free.fr/eCeHHlKmM DWG_3D + Export 3D DWF + Export 3D DWFX LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  3. lecrabe

    Somme d'attribut trié

    Hello BOF je ne te suis pas vraiment !? MAIS BON comme tu parles d'Attributs sur des Blocs avec une valeur numerique, je redonne A TOUT HAZARD "mes" 3 routines favorites dans ce domaine ! ATT_TOT par Gilles : Total des valeurs de UN Attribut sur N Blocs Avec en plus definition possible d un Seuil de traitement (Inferieur / Superieur) ATT_ADD par Gilles : Addition d une valeur numerique sur UN Attribut sur N Blocs ATT_MUL par Gilles : Multiplication d une valeur numerique sur UN Attribut sur N Blocs MERCI MERCI MERCI Gilles !!! Le TOUT puise dans mon stock de 3000 Routines ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;;; ;;; Addition de la valeur d un attribut sur un bloc/symbole ;;; par GC le 09/08/2008 - Anciennement ADDATTVAL ;;; ;;; On selectionne d'abord un attribut ;;; puis APRES par une selection AutoCAD classique ;;; tous les blocs/symboles "concernes" seront traites ;;; ;;; Nouvelles options : Choix d un seuil de traitement ;;; en mode >= ou en mode <= ;;; (defun c:ATT_TOT (/ seuil ing att elst tag ss n tot blk) (princ "\nTotal des Valeurs de N Blocs sur UN Attribut numerique " ) (princ "\nAvec Choix eventuel d un Seuil Inferieur ou Superieur ... " ) (initget "Oui Non") (if (= "Oui" (setq seuil (getkword "\nChoix d un Seuil [Oui/Non] <Non> : ")) ) (progn (initget "Inferieur Superieur") (or (setq ing (getkword "Choisissez une option [inferieur/Superieur] : " ) ) (setq ing "Superieur") ) (initget 1) (setq seuil (getreal "\nValeur du Seuil : ")) ) (setq seuil nil) ) (and (setq att (car (nentsel "\nSelectionnez un Attribut : "))) (setq elst (entget att)) (= (cdr (assoc 0 elst)) "ATTRIB") (setq tag (cdr (assoc 2 elst))) (princ "\nSelectionnez les Blocs ou <Tous> : ") (or (setq ss (ssget (list '(0 . "INSERT") (assoc 2 (entget (cdr (assoc 330 elst)))) ) ) ) (setq ss (ssget "_X" (list '(0 . "INSERT") (assoc 2 (entget (cdr (assoc 330 elst)))) ) ) ) ) (setq n -1) (setq tot 0) (while (setq blk (ssname ss (setq n (1+ n)))) (setq att (entnext blk)) (while (and att (setq elst (entget att)) (/= (cdr (assoc 2 elst)) tag) ) (setq att (entnext att)) ) (if (setq val (distof (cdr (assoc 1 elst)))) (if seuil (if (= ing "Superieur") (and (<= seuil val) (setq tot (+ tot val))) (and (<= val seuil) (setq tot (+ tot val))) ) (setq tot (+ tot val)) ) ) ) ) ;;;;;;;;;; ALERT ou PRINC ;; (alert (strcat "Total = " (vl-princ-to-string tot))) (princ (strcat "Total = " (vl-princ-to-string tot))) (princ) ) ;; ;; Commande: ATT_ADD ;; par GC (Anciennement ADDATT) ;; Pour ajouter/soustraire une valeur numerique SIMPLE ;; a un Attribut SIMPLE sur un Bloc SIMPLE ;; (defun c:att_add (/ att lst tag nam add ss n) (if (and (setq att (car (nentsel "\nSelectionnez un attribut a modifier: "))) (setq lst (entget att)) (= (cdr (assoc 0 lst)) "ATTRIB") (numberp (read (cdr (assoc 1 lst)))) (setq tag (cdr (assoc 2 lst))) (setq nam (cdr (assoc 2 (entget (cdr (assoc 330 lst)))))) ) (if (and (setq add (getreal "\nEntrez la valeur a ajouter ou soustraire : ")) (princ "\nSélectionnez les blocs à modifier.") (setq ss (ssget (list '(0 . "INSERT") (cons 2 nam)))) (setq n 0) ) (while (setq blc (ssname ss n)) (setq att (entnext blc) lst (entget att) ) (while (= (cdr (assoc 0 lst)) "ATTRIB") (if (and (= (cdr (assoc 2 lst)) tag) (numberp (setq val (read (cdr (assoc 1 lst))))) ) (progn (entmod (subst (cons 1 (rtos (+ val add))) (assoc 1 lst) lst ) ) (entupd blc) ) ) (setq att (entnext att) lst (entget att) ) ) (setq n (1+ n)) ) ) (princ "\nL objet selectionne n'est pas un attribut ! ") ) (princ) ) ;; ;; Commande: ATT_MUL ;; par GC (Anciennement MULATT) ;; Pour ajouter/soustraire une valeur NUMERIQUE ;; a un Attribut NUMERIQUE SIMPLE sur un Bloc SIMPLE ;; (defun c:att_mul (/ att lst tag nam add ss n) (if (and (setq att (car (nentsel "\nSelectionnez un attribut a modifier: "))) (setq lst (entget att)) (= (cdr (assoc 0 lst)) "ATTRIB") (numberp (read (cdr (assoc 1 lst)))) (setq tag (cdr (assoc 2 lst))) (setq nam (cdr (assoc 2 (entget (cdr (assoc 330 lst)))))) ) (if (and (setq add (getreal "\nEntrez la valeur a multiplier ou diviser : ")) (princ "\nSélectionnez les blocs à modifier.") (setq ss (ssget (list '(0 . "INSERT") (cons 2 nam)))) (setq n 0) ) (while (setq blc (ssname ss n)) (setq att (entnext blc) lst (entget att) ) (while (= (cdr (assoc 0 lst)) "ATTRIB") (if (and (= (cdr (assoc 2 lst)) tag) (numberp (setq val (read (cdr (assoc 1 lst))))) ) (progn ;; (entmod (subst (cons 1 (rtos (+ val add))) (entmod (subst (cons 1 (rtos (* val add))) (assoc 1 lst) lst ) ) (entupd blc) ) ) (setq att (entnext att) lst (entget att) ) ) (setq n (1+ n)) ) ) (princ "\nL'objet selectionne n'est pas un attribut ! ") ) (princ) )
  4. Hello +1 avec Gilles ! Voir par exemple ATTIN / ATTOUT des Express Tools pour les Attributs sur des Blocs classiques ... Pour des Blocs dynamiques, il faut une version AMELIOREE de ATTIN / ATTOUT (MERCI Brice STUDER !) Voir ce sujet : https://cadxp.com/topic/49035-recherche-routine-lisp-attin-attout/ Voir aussi la Super Routine IXL de notre REGRETTE Patrick_35 ! https://forums.autodesk.com/t5/autocad-tous-produits-francais/lisp-les-lisp-de-patrick-35/td-p/8884693 Qui genere l'Insertion de Blocs + Attributs depuis un tableau Excel ... Et aussi la Super Routine de Gilles ... EATT / IATT ... https://cadxp.com/topic/32142-importexport-dattributs-avec-excel/page__p__173051#entry173051 Etc ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  5. Hello TOUT est dans le Titre ! https://help.autodesk.com/view/RVT/2020/FRA/?guid=RevitReleaseNotes_2020updates_html LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  6. Hello Et voici la version AMELIOREE (par Brice STUDER) qui travaille MEME avec les Blocs Dynamiques ! Routine puisee dans mon stock de 3000 routines ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;;; ;;; ATTOUT.LSP ;;; Created 4/24/98 by Randy Kintzley ;;; Copyright © 1999 by Autodesk, Inc. ;;; ;;; Your use of this software is governed by the terms and conditions of the ;;; License Agreement you accepted prior to installation of this software. ;;; Please note that pursuant to the License Agreement for this software, ;;; "[c]opying of this computer program or its documentation except as ;;; permitted by this License is copyright infringement under the laws of ;;; your country. If you copy this computer program without permission of ;;; Autodesk, you are violating the law." ;;; ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE ;;; UNINTERRUPTED OR ERROR FREE. ;;; ;;; Use, duplication, or disclosure by the U.S. Government is subject to ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ;;; (Rights in Technical Data and Computer Software), as applicable. ;;; ;;; ---------------------------------------------------------------- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; 01/2012 Ajout de la gestion des calques, par Brice Studer ;;; 03/2012 Ajout de la gestion des noms et paramètres de blocs dynamiques (en lecture/écriture), par Brice Studer ;;; ;;; Je viens de mettre à jour le lisp : on peut maintenant modifier les paramètres dynamiques dans le fichier exporté, ;;; les blocs dynamiques seront mis à jour avec ATTIN (+ nettoyage et correction du code) ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Attention: les routines Express/Bonus doivent etre installees ! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Routine ATTOUT / ATTIN d'Autodesk corrigee/amelioree par Bryce - Version 1.10 ;;; ;;; http://cadxp.com/index.php?/topic/34622-attout-et-bloc-dynamiques/page__pid__191049#entry191049 ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ATTOUT - ;; Extracts attribute data from selected block inserts to a tab delimited file ;; (defun c:attout ( / ss fna ) (vl-load-com) ; ajout BS (acet-error-init '(nil 0)) (cond ((not (setq fna (ACET-FILE-WRITEDIALOG "Enter output filename" (strcat (getvar "dwgprefix") (acet-filename-path-remove (acet-filename-ext-remove (getvar "dwgname"))) ".txt" );strcat "txt" "Acet:Att" 1665 ) );setq );not (princ "\nNo output file selected.") ) ((not (setq ss (ssget '((0 . "INSERT") (66 . 1)))) );not (princ "\nNo valid objects selected.") ) (T (bns_attout fna ss) ) );cond close (acet-error-restore) );defun c:attout ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;function version of ATTOUT takes a filename and a selection set. (defun bns_attout ( fna ss / lst ) (if (and fna ss (setq lst (bns_attout_get_info ss)) );and (bns_attout_output fna lst) );if (princ) );defun bns_attout ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Takes a filename and a list of string data and writes it out. (defun bns_attout_output ( fna lst / n a fh) (if (setq fh (open fna "w")) (progn (acet-ui-progress-init "Writing output file" (length lst)) (setq n 0) (repeat (length lst) (write-line (nth n lst) fh) (acet-ui-progress-safe n) (setq n (+ n 1));setq );repeat (close fh) (acet-ui-progress-done) (if (setq a (findfile fna)) (princ (strcat "\nOutput file: \"" a "\" created.")) (acet-alert (strcat "\nOutput FAILED for file: \"" fna "\".")) );if );progn then write the file (progn (if fna (acet-alert (strcat "*Error* could not open file \"" fna "\" for write. The file may be currently in use." ) );acet-alert then (acet-alert "*Error* invalid filename.") );if );progn else print the error. );if );defun bns_attout_ouput ;{ ajout BS (defun GetDynProps ( bloc / proplist ) (mapcar '(lambda ( prop / propvalue) (if (= :vlax-true (vla-get-show prop)) (progn (if (numberp (setq propvalue (vlax-get prop 'Value))) (if (= acAngular (vla-get-UnitsType prop)) (setq propvalue (angtos propvalue (getvar "AUNITS") 16)) (setq propvalue (rtos propvalue 2 16)) ) ) (setq proplist (cons (list (strcat "{DYNPARAM} " (vla-get-propertyname prop)) propvalue) proplist)) ) ) ) (vlax-invoke bloc 'GetDynamicBlockProperties) ) proplist ) ;} ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;bns_attout_get_info - retrieves the data from the block inserts in ;the selection set provided. ; (defun bns_attout_get_info ( ss / delim n j a lst lst2 lst3 lst4 na e1 ob blk hnd lyr str) ; modif BS, ajout variable lyr (setq delim "\t"); the delimiter for the output file. (acet-ui-progress-init "Searching for all attribute data" (sslength ss)) (setq n 0) (repeat (sslength ss) (setq na (ssname ss n) e1 (entget na) ob (vlax-ename->vla-object na) ; ajout BS lst (acet-insert-attrib-get (list na 1)) );setq (if (= :vlax-true (vla-get-isdynamicblock ob)) ; {ajout BS (setq lst (append lst (getdynprops ob))) ) (if (vlax-property-available-p ob 'effectivename) (setq blk (vla-get-effectivename ob)) (setq blk (vla-get-name ob)) );} (setq hnd (cdr (assoc 5 e1)) lyr (cdr (assoc 8 e1)) ; ajout BS lst3 (append lst3 (list (list hnd blk lyr lst))) ; modif BS );setq (setq j 0) (repeat (length lst) (setq a (car (nth j lst)));setq (if (not (member a lst2)) (setq lst2 (append lst2 (list a)));setq );if (setq j (+ j 1));setq );repeat (acet-ui-progress-safe n) (setq n (+ n 1));setq );repeat (acet-ui-progress-done) ;lst2 is now a list w/unique attrib tags ;i.e. ("tag" "tag2" "tag3") ;lst3 is a list of the form ((handle blockname layer ((tag value) (tag value)...) ; modif BS ; (handle blockname layer ((tag value) (tag value)...) ; modif BS ; ... ; ; ) (acet-ui-progress-init "Formatting attribute data for output" (length lst3)) (setq str (strcat "HANDLE" delim "BLOCKNAME" delim "LAYER")) ; modif BS (setq n 0) (repeat (length lst2) ;;;;build the header for spread sheet. (setq str (strcat str delim (nth n lst2)));setq (setq n (+ n 1)) );repeat (setq lst4 (list str)) (setq n 0) (repeat (length lst3) (setq lst (nth n lst3) str (strcat "'" (car lst) ;the handle delim (cadr lst) ;the blockname delim ; ajout BS (caddr lst) ;the layer, ajout BS );strcat lst (cadddr lst) ; modif BS );setq (acet-ui-progress-safe n) (setq j 0) (repeat (length lst2) (setq a (nth j lst2) a (cadr (assoc a lst)) );setq (if (not a) (setq a "<>") );if (setq str (strcat str delim a));setq (setq j (+ j 1));setq );repeat (setq lst4 (append lst4 (list str))) (setq n (+ n 1));setq );repeat (acet-ui-progress-done) lst4 );defun bns_attout_get_info ;; ;; ATTIN - ;; Imports attribute data from selected file. The file must be of ;; the same format as created with ATTOUT. ;; (defun c:attin ( / fna lklay ) (acet-error-init (list (list "cmdecho" 0) 0 '(progn (if lklay (progn (acet-sysvar-set '("cmdecho" 0)) (command "_.layer" "_lock" lklay "") (acet-sysvar-restore) ) );if need to re-lock (princ (strcat "\n" (itoa #bns_attin_modified) " Block inserts modified.")) );progn ) ) (acet-autoload '("yes_no.lsp" "(bns_get_yes_no a B)")) (setq #bns_attin_modified 0) (cond ((not (setq fna (acet-ui-getfile "Enter input filename" (strcat (getvar "dwgprefix") (acet-filename-path-remove (acet-filename-ext-remove (getvar "dwgname"))) ".txt" );strcat "txt" "Acet:Att" 1664 ) ) ) (princ "\nNo input file selected.") );cond #1 ((setq fna (findfile fna)) (setq lklay (acet-layer-unlock-all)) (if (equal 4 (logand 4 (getvar "cmdactive"))) (bns_attin fna nil);a script is running so no interactive placement (bns_attin fna T);Allow interactive placement );if (if lklay (command "_.layer" "_lock" lklay "") );if (princ (strcat "\n" (itoa #bns_attin_modified) " Block inserts modified.")) );cond #2 );cond close (acet-error-restore) );defun c:attin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;bns_attin takes a file name and a flag (interact) that specifies ;if the user should be prompted to select block inserts when unmatched ;data is found. ; (defun bns_attin ( fna interact / fh lst lst2 lst3 lst4 blkn dlst unit newval lst5 n j na e1 a delim ans ) (vl-load-com) ; ajout BS (setq delim "\t") (if (setq fh (open fna "r")) (progn (princ "\nReading the input file...") (while (setq a (read-line fh)) (if (not lst) ;change first record to upper case (setq a (xstrcase a)) );if (setq lst (cons (acet-str-to-list delim a) lst));setq );while (setq fh (close fh)) (princ " Done.") (setq lst (reverse lst) lst2 (cdr lst) ;the data lst (car lst) ;the column headers );setq (acet-ui-progress-init "Importing data" (length lst2)) (setq n 0) (repeat (length lst2) (setq lst3 (nth n lst2) lst4 nil );setq (acet-ui-progress-safe n) (setq j 0) ;match the header row with the current record (repeat (min (length lst) (length lst3)) (setq a (list (nth j lst) (nth j lst3) );list lst4 (cons a lst4) );setq (setq j (+ j 1));setq );repeat (setq lst4 (reverse lst4));setq (if (and (setq a (cadr (assoc "HANDLE" lst4))) (equal "'" (substr a 1 1)) );and (setq a (substr a 2)) );if (if (and a (setq na (handent a)) (setq ob (vlax-ename->vla-object na)) ; ajout BS (setq e1 (entget na)) (if (vlax-property-available-p ob 'effectivename) ; {ajout BS (setq blkn (vla-get-effectivename ob)) (setq blkn (vla-get-name ob)) );} (equal "INSERT" (cdr (assoc 0 e1))) (equal 1 (cdr (assoc 66 e1))) (or (not (assoc "BLOCKNAME" lst4)) (equal (xstrcase (cadr (assoc "BLOCKNAME" lst4))) (xstrcase blkn) ; modif BS );equal );or );and (progn (if (not (equal 8 (logand 8 (getvar "undoctl")))) (acet-undo-begin) );if (entmod (subst (cons 8 (cadr (assoc "LAYER" lst4))) (assoc 8 e1) e1) ) ; ajout BS, modification du calque d'insertion du bloc (setq lst4 (vl-remove (assoc "BLOCKNAME" lst4) lst4) lst4 (vl-remove (assoc "HANDLE" lst4) lst4) lst4 (vl-remove (assoc "LAYER" lst4) lst4) ; ajout BS );setq ;{ ajout BS (foreach l lst4 (if (wcmatch (car l) "{DYNPARAM} *") (setq lst4 (vl-remove l lst4) dlst (cons (list (substr (car l) 12) (cadr l) ) dlst) ) ) ) (foreach prop (vlax-invoke ob 'GetDynamicBlockProperties) (if (and (= (vla-get-readonly prop) :vlax-false) (setq newval (assoc (xstrcase (vla-get-propertyname prop)) dlst)) ) (progn (setq unit (vla-get-unitstype prop) newval (cadr newval)) (cond ((= unit 1) (setq newval (angtof newval)) ) ((> unit 1) (setq newval (atof newval)) ) );cond (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-Value (list prop newval)) ) );progn );if );foreach ;} (if (acet-insert-attrib-set na lst4 nil) (setq #bns_attin_modified (+ #bns_attin_modified 1)) (progn (if interact (setq lst5 (cons lst4 lst5));setq add to interactive list. (princ "\nNo matching attribute tags.") );if );progn else );if (acet-undo-end) );progn then (progn ;Print what's going on... (if (not interact) (cond ((not a) (princ "\nNo Handle specification.") ) ((not na) (princ (strcat "\nNo entity with specified handle \"" a "\" exists.")) ) (T (princ (strcat "\nSpecified entity: \"" a "\" has been deleted or is invalid. ")) ) );cond then non-interactive execution (setq lst5 (cons lst4 lst5));setq else gather a list of attribs with ;no insert home. );if );progn else no home for this record );if (setq n (+ n 1));setq );repeat (acet-ui-progress-done) (if (and lst5 interact (setq ans (bns_get_yes_no (list "ATTIN - Select blocks?" (strcat "" "\n One or more records of data could not be" "\n matched to block inserts within this drawing." "\n" "\n Do you want to select the block inserts " "\n and assign this data interactively?" );strcat );list (list 40 10) );bns_get_yes_no );setq (equal ans 1) );and (progn (princ "\nSelect the desired blocks to assign the data to and press ENTER when done.") (bns_attin_interactive (reverse lst5)) );progn then );if );progn then (acet-alert "\nError opening input file for read.") );if );defun bns_attin ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun bns_attin_interactive ( lst / na e1 ) (while lst (if (not (equal 8 (logand 8 (getvar "undoctl")))) (acet-undo-begin) );if (bns_print_att_list (car lst)) (princ "\nPress [Enter] to skip or [Esc] to finish.") (if (and (setq na (acet-ui-single-select '((0 . "INSERT") (66 . 1)) nil)) (setq e1 (entget na)) );and (progn (if (acet-insert-attrib-set na (car lst) nil) (setq #bns_attin_modified (+ #bns_attin_modified 1) lst (cdr lst) );setq (acet-alert (strcat "\nNo matching attribute tags were found on that " "block insert. \nTry another block insert." );strcat );acet-alert );if );progn then (setq lst (cdr lst));setq );if (acet-undo-end) );while );defun bns_attin_interactive ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun bns_print_att_list ( lst / sp n a b j k) (setq lst (cons (list "---" "-----") lst) lst (cons (list "TAG" "VALUE") lst) sp " " sp (strcat sp sp sp sp sp sp sp sp) sp (strcat sp sp sp sp sp sp sp sp) j 0 k 0 n 0 );setq (repeat (length lst) (setq a (nth n lst) b (cadr a) a (car a) j (max (strlen a) j) k (max (strlen B) k) );setq (setq n (+ n 1));setq );repeat (princ "\n") (setq j (+ j 2) k (+ k 2) );setq (setq n 0) (repeat (length lst) (setq a (nth n lst) b (cadr a) a (car a) );setq (if (not (equal b "<>")) (progn (setq a (strcat a (substr sp 1 (max 0 (- j (strlen a)))) );strcat b (strcat b (substr sp 1 (max 0 (- k (strlen B)))) );strcat a (strcat "\n " a B) );setq (princ a) );progn then );if (setq n (+ n 1));setq );repeat n );defun bns_print_att_list (acet-autoload2 '("Yes_no.lsp" (bns_get_yes_no lst size))) (princ)
  7. lecrabe

    CONFIG. TOUR & PORTABLE

    Hello +1 avec TOUS pour Win 10 Pro !? Car imagine que ta fille doit integrer son Portable dans un Reseau Pro = un Domaine (Maison de Sante / Retraite, Clinique, Hopital) ET/OU installer un logiciel specifique Pro exigeant Win Pro !? PERSO: un ecran 17 Pouces, c trop encombrant !? Et donc un 15 Pouces (en HD - Surtout pas plus !), c le bon compromis ! RAPPEL: soigner la garantie ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  8. Hello Votre AutoCAD cree de tres nombreux fichier .JSON !? C:\Users\xxxxxxxx\AppData\Roaming\Autodesk\ADPSDK\JSON\ https://knowledge.autodesk.com/fr/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/FRA/AutoCAD-creates-files-in-C-Users-USERNAME-AppData-Roaming-Autodesk-ADPSDK-JSON.html SVP DESACtiver Autodesk Desktop Analytics ! DE toute facon, la CIA / NSA sait DEJA TOUT de vous !! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  9. lecrabe

    Cylindre nombres d'aretes

    Hello +1 avec Gilles ! En general avec ISOLINES = 8 / 12 / 16 , c OK !? -------- Les variables System 3D importantes -------- 3D ELEV +/- xx.xx Mettre l'Elévation ET la Hauteur COURANTEs à ZERO (Pas de surprise en 2D 1/2) 3D UCSFOLLOW 0 : Le changement de SCU n'affecte pas le point de vue 3D ISOLINES : 6/8/10 : Sphères / Hémisphères / Cylindres / Cônes avec N filets en 3D + RG 3D DISPSILH : 1 : Suppression du maillage 3D lorsqu'un solide ACIS est caché 3D FACETRES : 0.01 – 10 : Densité du maillage 3D ACIS. Parfois FACETRES = 1/2/5/10) 3D FACETRATIO : Parfois = 1 : Maillage NxM des cylindres et cônes 3D ACIS) 3D HIDEPRECISION : Parfois = 1 : Meilleure élimination des faces cachées des sphères/cylindres/etc) 3D UCSVP (Par Fenêtre) 1 : Verrouillé (Le SCU est stocké dans la Fenêtre) 0 : Déverrouillé 3D DELOBJ 0 : Conserver les objets utilisés par les commandes d’Extrusion et de Révolution etc 3D SOLIDHIST 1 : Conserver l’historique de construction des objets 3D SOLID (ACAD 2007) LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  10. lecrabe

    CONFIG. TOUR & PORTABLE

    Hello Tu devrais lui offrir une chèvre ! C simple et béton et à portée de main !! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  11. lecrabe

    CadXP ??

    Hello SVP les Forums AutoCAD / ACAD LT 2021 !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  12. Hello SVP les Forums AutoCAD 2021 ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  13. lecrabe

    CONFIG. TOUR & PORTABLE

    Hello YES 8 Go - Eventuellement 12 Go !? Pour de la bureautique, cela ira ! SSD de 250 Go = OK ... Peut etre un peu plus !? Core i3/i5 rapide Pas besoin de carte graphique ! Tu as quoi comme budget ?? ---- Acer Aspire 3 A315-56-34PA - 640 Euros ---- A voir !? Intel Core i3-1005G1 - 8 Go Ram - SSD 512 Go 15.6" LED HD Wi-Fi AC/Bluetooth Webcam Windows 10 Famille 64 bits https://www.ldlc.com/fiche/PB00335237.html Core i3-1005G1 - Q3-2019 : 2C/4T - 1.2-3.4 Ghz - 4 Mo cache Ram Maximum 12 Go au total - Combien coutent les 4 Go supplementaires ? FUN: avec 12 Go Ram, tu pourras meme faire de l'AutoCAD + Covadis ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  14. Hello +1 avec Dinosor ! -------- RAPPEL : qq variables importantes en 3D -------- 3D ELEV +/- xx.xx Mettre l'Elévation ET la Hauteur COURANTEs à ZERO (Pas de surprise en 2D 1/2) 3D UCSFOLLOW 0 : Le changement de SCU n'affecte pas le point de vue 3D ISOLINES : 8/12/16 : Sphères / Hémisphères / Cylindres / Cônes avec N filets en 3D + RG 3D DISPSILH : 1 : Suppression du maillage 3D lorsqu'un solide ACIS est caché 3D FACETRES : 0.01 – 10 : Densité du maillage 3D ACIS. Parfois FACETRES = 1/2/5/10) 3D FACETRATIO : Parfois = 1 : Maillage NxM des cylindres et cônes 3D ACIS) 3D HIDEPRECISION : Parfois = 1 : Meilleure élimination des faces cachées des sphères/cylindres/etc) 3D UCSVP (Par Fenêtre) 1 : Verrouillé (Le SCU est stocké dans la Fenêtre) 0 : Déverrouillé 3D DELOBJ 0 : Conserver les objets utilisés par les commandes d’Extrusion et de Révolution etc 3D SOLIDHIST 1 : Conserver l’historique de construction des objets 3D SOLID (ACAD 2007) LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  15. lecrabe

    CadXP ??

    Hello Didier Tu as une Box Bouygues !? Et donc le probleme avec ta Box Bouygues ? -------------------------------------------------------- Au fait Mr CADMIN pourrais tu SVP creer les Forums 2021 !! -------------------------------------------------------- LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  16. lecrabe

    CadXP ??

    Hello ET pour ceux qui ont une Box Bouygues ?? Peuvent ils confirmer le probleme !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  17. Hello Sur mon AutoCAD MAP 2017, je ne vois pas de probleme evident !? Mais bon, pas sur d'avoir tout compris !? Visu A PRIORI OK avec 3 Styles : Realiste, Ombre avec Arete, Conceptuel Mais bon je n'ai pas "tripatouille" en 3D dans TOUS les sens ! RAPPEL: le Mode Conceptuel a parfois des Reactions bizarres !? Bien entendu ton AutoCAD 2017 est A JOUR !? Tu fais la commande : APROPOS Et tu dois voir sur la ligne "Base sur" ... AutoCAD 2017.1.2 Et ton driver de carte graphique est A JOUR !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  18. Hello Routine sortie de mon stock de 3000 routines ! Testee et Validee sur AutoCAD 2021 ... SVP tu testes la routine de notre REGRETTE Patrick_35 ci-dessous ! Et SVP tu nous diras, si elle est OK pour toi !? Et si OK sur quelle version de AutoCAD, tu la fais tourner !? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite ;; ;; Routines Isolation par P35 -- Vers 1.20 15/07/2010 ;; ;; A utiliser avec le Type de Ligne ISOLATION ou Equivalent ... ;; ;; ISOL / ISOLD : on tire en Dynamique les Coins d un Rectangle ;; Et la Diagonale se dessine en consequence ... ;; ;; https://cadxp.com/topic/28002-un-lisp-pour-creer-une-polyligne-qui-represente-un-isolant/ ;; ;; Donc 4 routines (c'est Noel avant l'heure :D ) ;; ;; Isol : qui fais ce que tu as demande ;; Isold : La meme chose qu'Isol, mais en dynamique et avec la possibilite d'orienter le rectangle ;; Isolmin : Pour indiquer l'angle mini ;; Isolmax : Pour indiquer l'angle maxi ;; (defun c:isold(/ ang bas deb dir dis ent fin lec lst nbr pol pt1 pt2 pt3 pt4 pt5 pt6 pt7 s sor tot *errisol* deg rad round) (defun *errisol* (msg) (or (member (strcase msg) '("FUNCTION CANCELLED" ""QUIT / EXIT ABORT"" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) (setq *error* s) (and ent (entdel ent)) (and pol (entdel pol)) (princ) ) (defun deg(ang) (* 180.0 (/ ang pi)) ) (defun rad (ang) (* pi (/ ang 180.0)) ) ; Arrondi de (gile) (defun round (num prec) (if (zerop (setq prec (abs prec))) num (* prec (fix ((if (minusp num) - +) (/ num prec) 0.5)) ) ) ) (or angle_mini (setq angle_mini 30)) (or angle_maxi (setq angle_maxi 40)) (setq s *error* *error* *errisol* ) (and (setq pt1 (getpoint "\n1er Point : ")) (setq pt4 (getpoint pt1 "\nSecond point : ")) ) (while (not sor) (setq lec (grread T 7 0)) (cond ((equal lec '(2 9)) (setq pt5 (getpoint "\nSpecifier le point : ")) (setq lec (list 5 pt5) sor t ) ) ((equal lec '(2 43)) (setq angle_mini (1+ angle_mini) angle_maxi (1+ angle_maxi) lec (grread T 1 0) ) ) ((equal lec '(2 45)) (setq angle_mini (1- angle_mini) angle_maxi (1- angle_maxi) lec (grread T 1 0) ) ) ((or (and (eq (car lec) 2) (member (cadr lec) '(13 32))) (member (car lec) '(3 25)) ) (setq sor t) ) ) (and (eq (car lec) 5) (not (equal (cadr lec) pt1)) (progn (setq bas (angle pt1 pt4) dir (angle (polar pt1 bas (/ (distance pt1 pt4) 2)) (cadr lec)) ) (if (> bas pi) (setq deb (- bas pi) fin bas ) (setq deb bas fin (+ bas pi) ) ) (and (> deb (* pi 2)) (setq deb (- (* pi 2) deb))) (and (> fin (* pi 2)) (setq fin (- fin (* pi 2)))) (if (and (>= dir deb) (<= dir fin)) (setq ang 90) (setq ang -90) ) (and (> bas pi) (setq ang (- ang))) (and ent (entdel ent)) (setq ent (entmakex (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 5) (cons 10 (trans pt1 1 0)) (cons 10 (trans (setq pt2 (polar pt1 (rad (+ (deg bas) ang)) (distance pt1 (cadr lec)))) 1 0)) (cons 10 (trans (setq pt3 (polar pt2 bas (distance pt1 pt4))) 1 0)) (cons 10 (trans pt4 1 0)) (cons 10 (trans pt1 1 0)) ) ) ) (setq pt5 (inters pt4 pt3 pt1 (polar pt1 (rad (+ (deg bas) (- 90 (/ (+ angle_mini angle_maxi) 2)))) (distance pt1 pt4)) nil) nbr (round (/ (distance pt4 pt3) (distance pt4 pt5)) 1.0) ) (and (zerop nbr)(setq nbr 1.0)) (setq dis (/ (distance pt4 pt3) nbr) tot dis bas nil lst (list (cons 10 (trans pt1 1 0))) ) (while (<= tot (distance pt3 pt4)) (if bas (setq pt6 pt1 pt7 pt2 bas nil ) (setq pt6 pt4 pt7 pt3 bas T ) ) (setq lst (cons (cons 10 (trans (polar pt6 (angle pt6 pt7) tot) 1 0)) lst) tot (+ tot dis) ) ) (and pol (entdel pol)) (setq pol (entmakex (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) ) lst ) ) ) ) ) ) (and ent (entdel ent)) (setq *error* s) (princ) ) (defun c:isol(/ bas dif dir lst nbr pt1 pt2 pt3 pt4 pt5 pt6 pt7 tot deg rad round) (defun deg(ang) (* 180.0 (/ ang pi)) ) (defun rad (ang) (* pi (/ ang 180.0)) ) ; Arrondi de (gile) (defun round (num prec) (if (zerop (setq prec (abs prec))) num (* prec (fix ((if (minusp num) - +) (/ num prec) 0.5)) ) ) ) (or angle_mini (setq angle_mini 30)) (or angle_maxi (setq angle_maxi 40)) (and (setq pt1 (getpoint "\nPremier coin : ")) (setq pt3 (getcorner pt1 "\nDeuxieme coin : ")) (progn (setq pt2 (list (car pt3) (cadr pt1) 0.0) pt4 (list (car pt1) (cadr pt3) 0.0) ) (cond ((> (distance pt1 pt2) (distance pt2 pt3)) (setq dif 0) ) (T (setq dif 180 pt5 pt1 pt1 pt2 pt2 pt3 pt3 pt4 pt4 pt5 ) ) ) (setq pt5 (inters pt4 pt3 pt1 (polar pt1 (rad (+ (deg (angle pt1 pt2)) (/ (+ angle_mini angle_maxi) 2) dif)) (distance pt1 pt4)) nil) nbr (round (/ (distance pt4 pt3) (distance pt4 pt5)) 1.0) ) (and (zerop nbr)(setq nbr 1.0)) (setq dis (/ (distance pt4 pt3) nbr) tot dis lst (list (cons 10 (trans pt1 1 0))) ) (while (<= tot (distance pt3 pt4)) (if bas (setq pt6 pt1 pt7 pt2 bas nil ) (setq pt6 pt4 pt7 pt3 bas T ) ) (setq lst (cons (cons 10 (trans (polar pt6 (angle pt6 pt7) tot) 1 0)) lst) tot (+ tot dis) ) ) (entmakex (append (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) ) lst ) ) ) ) (princ) ) (defun c:isolmin(/ def rep) (initget 7) (if angle_mini (setq def (rtos angle_mini)) (setq def "30") ) (and (setq rep (getreal (strcat "\nAngle minimum <" def ">: "))) (setq angle_mini rep) ) (princ) ) (defun c:isolmax(/ def rep) (initget 7) (if angle_maxi (setq def (rtos angle_maxi)) (setq def "40") ) (and (setq rep (getreal (strcat "\nAngle maximum <" def ">: "))) (setq angle_maxi rep) ) (princ) )
  19. Hello Le Lyonnais C le Stephanois du 42 qui essaye de t'aider ... SVP tu ne me denonces pas a JM Aulas !? Voici le Update 2020.1.2 : http://dl.free.fr/iXBewLvI1 Cela te coutera un excellent Whiskey Single Malt ! Q1) SVP tu as quoi comme carte graphique ? Date et version du driver ? Q2) Quel processeur ? Et combien de Go Ram ?? Q3) Quel Windows ? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  20. Hello +1 avec Turtle Je ne veux pas etre l'oiseau de mauvaise augure !? Mais BON en ce moment, les Boites "virent" au maximum les Intervenants externes ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  21. Hello Donc tu installes le Update AutoCAD 2020.1.2 ?? On verra apres ... LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  22. Hello Tu fais la commande : APROPOS et tu regardes l'Image ... Vois tu bien dans la ligne "Version du produit" : AutoCAD 2020.1.2 ?? LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  23. lecrabe

    CadXP ??

    Hello Meme probleme en passant par mon Mobile Bouygues ! Aucun souci par mon Mobile SFR ! Aucun souci par ma FreeBox ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  24. lecrabe

    Lisp marche plus sur 2016 !

    Hello Tu dis : dans le fichier que lecrabe m'a envoyé, j'ai renommé SF par Pline_Block SVP tu as renomme quoi : la Routine Lsp ou le Nom du Bloc "SF" en "Pline_Block" ?? Le Devoue Decapode est TRES PATIENT ! LA SANTE (Stay Safe), Bye, lecrabe "triste" Automne 2020, la retraite
  25. lecrabe

    Lisp marche plus sur 2016 !

    Hello Je (et Gilles) vais devenir CHEVRE avec ton Histoire ... Franchement je pensais ETRE CLAIR sur le message No 25 !! ** 1 ** TU DOIS rajouter le chemin OU il y a les 3 fichiers ( GETNAME.LSP + GETNAME.DCL + SF.LSP ) dans les chemins de SUPPORT !! C la 1ere ligne "SUPPORT" de OPTIONS du 1er Onglet "Fichiers" !! ** 2 ** Dans ton dossier que tu as ajoute au Point 1 ! Tu vas decompresser cela : http://dl.free.fr/ngjgXyGDF ** 3 ** Tu charges le DWG de Test "PIECE_Test_1.dwg" ... ** 4 ** Commande clavier : APPLOAD de GETNAME ... puis APPLOAD de SF ... ** 5 ** Tu lances SF sur un autre Polygone du DWG de Test ... ALORS ?? 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é