Aller au contenu

capde06

Membres
  • Compteur de contenus

    619
  • Inscription

  • Dernière visite

  • Jours gagnés

    4

Tout ce qui a été posté par capde06

  1. dans les champ il faut choisir index
  2. 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))) ) )
  3. 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 "")
  4. 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) )
  5. j'ai trouvé la commande FCALQUE est faite pour ca
  6. 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
  7. capde06

    référence classée X

    Mais je pense que c'est du a un reseau qui date de Mathusalem. merci pour votre aide
  8. capde06

    référence classée X

    oui ..XREFNOTIFY est bien à 2.
  9. capde06

    référence classée X

    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
  10. 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
  11. (command "-calque" "co" 251 "*" "")
  12. 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
  13. 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
  14. 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
  15. voila un exemple ICI
  16. Pas besooin de lisp pour ca il suffit d'un champ dans l'attribut, choisir objet, pointez le meme bloc, choisir : position, et Z
  17. belle POCLAIN comme disait MOLIERE
  18. capde06

    L\'éditeur Visual LISP

    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) )
  19. command "renommer" ancien nom 501-* nouveau nom *
  20. capde06

    poignée sur hachures

    ou peut être que tes hachures sont associatives
  21. re bonjour en faite je l'ai trouvé sur le forum autodesk ICI
  22. 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
  23. 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
  24. capde06

    au sujet des cercles

    si vraiment ca dérange options, onglet "dessin" cochet "remplacer la valeur Z par élévation courante" (en bas à gauche) et plus de probleme
  25. 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)
×
×
  • 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é