capde06
Membres-
Compteur de contenus
619 -
Inscription
-
Dernière visite
-
Jours gagnés
4
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par capde06
-
Champ pour recopier des textes existants
capde06 a répondu à un(e) sujet de Psyko-Cad dans AutoCAD 2019
dans les champ il faut choisir index -
Legende, quantité automatique selon le nom du bloc.
capde06 a répondu à un(e) sujet de Oeil2bidule dans Suggestions de développements
J'avais fait ca, il y a longtemps... sur une base de tabloblo (defun c:tablobloc () ;(/ libloc liidbloc ss col liref ptins tableVL cont row) (vl-load-com) (setq liblkdescrip nil cont nil libloc nil liref nil) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (prompt "\nSélectionnez les blocs à lister ou <Toute la collection>") (or (setq ss (ssget '((0 . "INSERT")))) (setq ss (ssget "_X" '((0 . "INSERT"))) col T ) ) (if ss (progn (vlax-for x (setq ss (vla-get-ActiveSelectionSet *acdoc*) ) (or (vlax-property-available-p x 'Path) (setq liref (cons (if (vlax-property-available-p x 'EffectiveName) (vla-get-EffectiveName x) (vla-get-Name x) ) liref ) ) ) ) (vla-delete ss) ) ) (if col (vlax-for i (vla-get-Blocks *acdoc*) (if (and (not (wcmatch (setq name (vla-get-Name i)) "`**,*|*")) (= :vlax-false (vla-get-IsXref i)) ) (setq libloc (append libloc (list (vla-get-name i)));(vla-get-name i) liidbloc (append liidbloc (list (vla-get-ObjectID i))) ) ) ) (setq libloc (remove_doubles liref) ;liblkdescrip (remove_doubles liblkdescrip) liidbloc (mapcar '(lambda (x) (vla-get-ObjectID (vla-item (vla-get-Blocks *acdoc*) x ) ) ) libloc ) ) ) (initget 1) (setq ptins (trans (getpoint "\nPoint d'insertion: ") 1 0)) (setq tableVL (vla-addtable (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)) ) (vlax-3d-point ptins) (+ 2 1 (length libloc)) 4 ;3 20 ; Hauteur cellule 80 ; Largeur cellule ) ) (vla-put-VertCellMargin tableVL 4.0) ; Marge verticale (vla-put-TitleSuppressed tableVL :vlax-false) (vla-put-HeaderSuppressed tableVL :vlax-false) (vla-setText tableVL 0 0 "Blocs") ; Titre (vla-setText tableVL 1 0 "Nom du bloc ") ; Titre colonne 1 (vla-setText tableVL 1 1 "Description") ; Titre colonne 2 (vla-setText tableVL 1 2 "Nombre") ; Titre colonne 3 (vla-setText tableVL 1 3 "Symbole") (setq cont -1 row 1 ) (repeat (- (vla-get-Rows tableVL) 2) (vla-settext tableVL (setq row (1+ row)) 0 (setq nombl (nth (setq cont (1+ cont)) libloc)) ) ;;;;;;;;;;;;;;;;;; description (vla-settext tableVL row 1 (cdr(assoc 4 (tblsearch "BLOCK" nombl))) ) (vla-settext tableVL row 2 (length (vl-remove-if-not '(lambda (n) (= n (nth cont libloc))) liref ) ) ) (vla-SetBlockTableRecordId tableVL row 3 (nth cont liidbloc) :vlax-true ) (vla-setcellalignment tableVL row 0 5) (vla-setcellalignment tableVL row 1 5) ) (princ) ) ;;; REMOVE_DOUBLES - Suprime tous les doublons d'une liste (defun REMOVE_DOUBLES (lst) (if lst (cons (car lst) (REMOVE_DOUBLES (vl-remove (car lst) lst))) ) ) -
Insérer block plusieurs fois et décomposer
capde06 a répondu à un(e) sujet de Hydro8 dans Débuter en LISP
une vieille astuce pour insérer un bloc et le décomposer, il suffit de mettre un Astérix devant le nom du bloc (command "_.-insert" "*copro-piece_chambre" pause 1 1 0 "") -
Salut un petit prog de patrick35 que j'ai adapté pour moi ca ne correspond pas exactement a ta demande mais je trouve ca tres pratique ca nomme le 1er onglet "cartouche" et le reste au format "page 1 sur 15" il suffit de mette un champ "ctab" sur chaque presentation (defun c:ren-onglet (/ doc express lay lst n i txt) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) n -1 i 1 prefix "0" txt nil long (itoa (- (length (layoutlist)) 1)) ) ;_ Fin de setq (vla-startundomark doc) (if (eval 'acet-ui-progress-done) (progn (acet-ui-progress-init "" (1- (vla-get-count (vla-get-layouts doc))) ) ;_ Fin de acet-ui-progress-init (setq express T) ) ;_ Fin de progn (progn (princ "\nTravail en cours...") (princ) ) ;_ Fin de progn ) ;_ Fin de if (vlax-for lay (vla-get-layouts doc) (setq lst (cons (list (vla-get-taborder lay) lay) lst)) ) ;_ Fin de vlax-for (while (setq lay (assoc i lst)) (cond ((eq n -1) (setq txt "Cartouche") ) ((>= n 0) (setq txt1 (itoa (+ n 1))) (if (< (strlen txt1) 2) (setq txt1 (strcat "0" txt1)) ) (if (< (strlen long) 2) (setq long (strcat "0" long)) ) (setq txt (strcat "Page " txt1 " sur " long) ) ;_ Fin de setq ) ) ;_ Fin de cond ;_ Fin de while (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-name (list (cadr lay) txt)) ) ;_ Fin de vl-catch-all-error-p (progn (vla-put-name (vla-item (vla-get-layouts doc) txt) (strcat "c" txt) ;(strcat txt) ) ;_ Fin de vla-put-name (vla-put-name (cadr lay) txt) ) ;_ Fin de progn ) ;_ Fin de if (and express (acet-ui-progress-safe i)) (setq n (1+ n) i (1+ i) ) ;_ Fin de setq ) ;_ Fin de if (and express (acet-ui-progress-done)) (princ (strcat "\nRenumérotation de " (itoa (1+ n)) " présentation(s)." ) ;_ Fin de strcat ) ;_ Fin de princ (vla-endundomark doc) (princ) )
-
j'ai trouvé la commande FCALQUE est faite pour ca
-
Salut a tous j'ai des fichiers avec beaucoup de presentations et donc beaucoup de fenetres avec des calques gelés dans les fenetres ma question est : y a t'il un moyen rapide pour activer tous les calques dans toutes les fenetres en une seule fois merci
-
Mais je pense que c'est du a un reseau qui date de Mathusalem. merci pour votre aide
-
oui ..XREFNOTIFY est bien à 2.
-
Merci pour la reponse rapide jai bien xloadctl a 2 et je met tout dans d:\temp , que je vide regulierement sauvegarde. fichiers tempo. et reference externe tempo
-
Salut question sur la méthode nous sommes 2 a travailler sur sur la mémé base via un lecteur réseau 1 quand mon collègue modifie une référence je n'ai plu le message comme quoi cette xref a été modifié. pourtant tout est coché dans les options variable TOOLTIPS 2 quelle est la meilleur valeur pour la variable XLOADCTL MERCI
-
[Résolu] Lisp : tout les calques d'un même couleur
capde06 a répondu à un(e) sujet de youpla dans AutoCAD 2016
(command "-calque" "co" 251 "*" "") -
BEN 2 cas -si le tcpoint est inserer en Z le prog toto3 marche. -si il faut lire la valeur Z dans l'attribut . il faut midifier la premiere ligne remplacer entsel par nentsel. et la il faudra cliquer sur l'attribut (defun c:toto4 () (vl-load-com) (setq z (cdr(assoc 1 (entget(car(nentsel "\nChoix de l'attribut a copier :")))))) (setpropertyvalue (car(entsel)) "ALT" z) ) j'ai corrigé une ptit boulette
-
essai ca (defun c:toto3 () (vl-load-com) (setq z (caddr(cdr(assoc 10 (entget(car(entsel "\nChoix du point :"))))))) (setpropertyvalue (car(entsel)) "ALT" (rtos z 2 2)) ) "ALT" etant le nom de l'attribut a toi de le changer
-
rien ne t’empêche de le modifier a ta sauce tu as un exemple d'attribut avec champ modifie le regarde comment ca marche! on peut tout faire avec les champs, il suffit d'etre un peu curieux
-
voila un exemple ICI
-
Pas besooin de lisp pour ca il suffit d'un champ dans l'attribut, choisir objet, pointez le meme bloc, choisir : position, et Z
-
belle POCLAIN comme disait MOLIERE
-
Bonjour (gile) voila une erreur que je fais souvent je n'ai reussi a surligner la soustraction. ce genre de boulette n'est pas facile à repérer dans des long prog (defun c:boulette () ; (setq a 12.25) (setq b "5.50") (princ (- a B)) (princ) )
-
Supprimer un préfixe à plusieurs blocs
capde06 a répondu à un(e) sujet de zebino dans LISP et Visual LISP
command "renommer" ancien nom 501-* nouveau nom * -
ou peut être que tes hachures sont associatives
-
re bonjour en faite je l'ai trouvé sur le forum autodesk ICI
-
Bonne année a tous la fonction de creation de filtres marche tres bien chez moi. je crois que je l'ai recuperé chez LEE MAC ICI
-
voila une fonction que j'ai recupére je ne sais plus ou pour faire des filtres dans ton prog de creation de calques il faut lancer cette ligne (MlayerF "TRAME" "*TRAME*") et voilou ;;;creation des filtres calque (defun MlayerF (NAME FILTER / LayTbl ExtDict LayColl ExtDictData GrpList NewDict Temp XdLst XrecData NewXRec) (setq LayTbl (cdr (assoc 330 (entget (tblobjname "LAYER" "0"))))) (setq ExtDict (cdr (assoc 360 (entget LayTbl)))) (if (not ExtDict) (progn (vl-load-com) (setq LayColl (vla-get-layers (vla-get-activedocument (vlax-get-acad-object) ) ;_ Fin de vla-get-activedocument ) ;_ Fin de vla-get-layers ) ;_ Fin de setq (setq ExtDict (vla-GetExtensionDictionary LayColl)) (setq ExtDict (vlax-vla-object->ename ExtDict)) ) ;_ Fin de progn ) ;_ Fin de if (setq ExtDictData (entget ExtDict)) (while ExtDictData (setq Temp (if (= (caar ExtDictData) 3) (list (cons (cdr (car ExtDictData)) (cdr (cadr ExtDictData)) ) ;_ Fin de cons ) ;_ Fin de list ) ;_ Fin de if ExtDictData (cdr ExtDictData) ) ;_ Fin de setq (setq GrpList (append GrpList Temp)) ) ;_ Fin de while (if (or (not GrpList) (not (cdr (assoc "ACAD_LAYERFILTERS" GrpList))) ) ;_ Fin de or (progn (setq DictList (list (cons 0 "DICTIONARY") (cons 100 "AcDbDictionary") ) ;_ Fin de list ) ;_ Fin de setq (setq NewDict (entmakex DictList)) (setq NewDict (dictadd ExtDict "ACAD_LAYERFILTERS" NewDict)) ) ;_ Fin de progn (setq NewDict (cdr (assoc "ACAD_LAYERFILTERS" GrpList))) ) ;_ Fin de if (setq ExtDictData Nil Temp Nil GrpList Nil ) ;_ Fin de setq (setq ExtDictData (entget NewDict)) (while ExtDictData (setq Temp (if (= (caar ExtDictData) 3) (list (cons (cdr (car ExtDictData)) (cdr (cadr ExtDictData)) ) ;_ Fin de cons ) ;_ Fin de list ) ;_ Fin de if ExtDictData (cdr ExtDictData) ) ;_ Fin de setq (setq GrpList (append GrpList Temp)) ) ;_ Fin de while (if (or (not GrpList) (not (cdr (assoc FILTER GrpList))) ) ;_ Fin de or (progn (setq XdLst (list (cons 0 "XRECORD") (cons 100 "AcDbXrecord") ) ;_ Fin de list ) ;_ Fin de setq (setq XrecData (append XdLst (list (cons 1 NAME) (cons 1 FILTER) (cons 1 "*") ;color (cons 1 "*") ;linetype (cons 70 0) ;on off (cons 1 "*") ;lineweight (cons 1 "*") ;plot style ) ;_ Fin de list ) ;_ Fin de append ) ;_ Fin de setq (setq NewXRec (entmakex XRecData)) (dictadd NewDict Name NewXRec) ) ;_ Fin de progn Nil ) ;_ Fin de if ) ;_ Fin de defun
-
si vraiment ca dérange options, onglet "dessin" cochet "remplacer la valeur Z par élévation courante" (en bas à gauche) et plus de probleme
-
plus délicat mais efficace lancer le regedit hkey_current_user/software/autodesk/Rxx/acadxxx/profiles/monprofil/ supprimer le repertoire dialogs faire une sauvegarde avant (bouton de droite Exporter)
