-
Compteur de contenus
44 -
Inscription
-
Dernière visite
Profile Information
-
Gender
Not Telling
grosseel's Achievements
Newbie (1/14)
0
Réputation sur la communauté
-
routine pour changer de version autocad
grosseel a répondu à un(e) sujet de toniok3 dans AutoCAD 2010
Salut, Sinon tu peut essayer Dwg TueView qui intégre Dwg TrueConvert qui te permet de changer la version d'enregistrement d'un fichier dwg. A télécharger sur http:// http://usa.autodesk.com/adsk/servlet/pc/index?id=6703438%26siteID=123112 Désolé, j'avais pas vu la réponse de Pieroka, mais je le rejoint dans sa réponse. [Edité le 19/4/2010 par grosseel] -
Essaye DWG TrueConvert, un produit AutoDesk qui devrait répndre à tes besoins. Bonne Aprés-Midi
-
Sondage utilisateur Autocad Electrical
grosseel a répondu à un(e) sujet de steve69 dans Fonctionnement de ce site
Je l'ai trés souvent utlisé sur une période de 4 mois chez un client en début d'année. Depuis plus rien. (C'est le client qui m'as formé sur le logiciel) -
Imprimer plusieurs onglets d\'un meme dessin
grosseel a répondu à un(e) sujet de DIDIERDALY dans AutoCAD 2009
Pour imprimer, configurer et gérer les onglets d'un plan autoCAD, je te conseille d'aller voir du coté des routines de Patrick_35. Il te faudra les lisp suivants : - Mim - Mpl - Ong - Oog Bon Week-End -
Salut baot44, Je te conseil d'effectuer une recherche sur le forum et tu devrait trouver une réponse. Sinon je te conseil d'utiliser le trés bon SuperAutoScript (Fais une recherche sur Google) et voici un exemple de script avec PDFCreator : -traceur Oui Objet PDFCreator A4 Millimètres pAysage Non Etendu Plein Format Centre Oui monochrome Oui Au Non Non Oui Pour l'utiliser tu ouvre NotePad, Créer un nouveau fichier, puis copier-coller de ce qu'il y a juste au dessus. Tu enregistre et tu change l'extension en *.scr. Tu n'as plus qu'a l'ouvrir avec SupeAutoScript et ajouter les fichiers ou le répertoire à traitrer. Bonne journée. Grosseel
-
Eclater 1 dwg en plusieurs dwg selon zones espace objet
grosseel a répondu à un(e) sujet de grosseel dans Débuter en LISP
Bonjour à tous, je pense avoir trouver un début de solution grace à un lisp créer par bred qui permet de créer un onglet présentation par bloc sélectionner. J'ai repris son code pour l'adapter à mes besion en automatisant le procédé (Je selectionne le bloc type et il me génére l'ensembles des présentations avec le même type de bloc et avec le nom d'onglets qui va bien. Je pense que l'on peut reprendre ce programme en l'adaptant pour qu'il créer nom plus un présentation mais un nouveau fichier à la place. Ci-joint le code modifié et un autre code permetant de créer un nouveau fichier. Ma question c'est comment regrouper les deux pour convenir a mon besoin. (defun C:CEPX (/ ACDOC B C FEN I LAYS N-P NOM-P ONG-BASE ONG_DEST SEL XMIN YMAX A-P HAUT LARG P1 P2 NOM ECH LAY LOCK UNIT) (vl-load-com) ; 4 Millimètres 5 Centimètres 6 Mètres (setq UNIT (cdr (assoc (getvar "INSUNITS") '((4 . 1) (5 . 10) (6 . 1000))))) (while (not SEL) (setq SEL (car (entsel "\n Choix du cadre (Bloc) :"))) (setq BLK (cdr (assoc 2 (entget SEL)))) (if SEL (if (not (equal (vla-get-objectname (setq B (vlax-ename->vla-object SEL))) "AcDbBlockReference")) (setq SEL NIL))) ) (setq SEL (ssget "X" (list (cons 2 BLK))) ACDOC (vla-get-activedocument (vlax-get-acad-object)) LAYS (layoutlist) ) (setq BLK NIL) (if (> (length LAYS) 1) (progn (princ "\n Copie configuration traceur d'onglet Existant. \n Plusieurs Présentations détectées.") (while (not ONG-BASE) (princ "\n") (repeat (setq I (length LAYS)) (princ (strcat (nth (- (length LAYS) I) LAYS) " * ")) (setq I (1- I)) ) (setq ONG-BASE (getstring t "\n Présentation d'où la configuration du traceur sera récupérée :")) (if (not (member ONG-BASE LAYS)) (setq ONG-BASE NIL) ) ) ) (setq ONG-BASE (car LAYS)) ) (setq A-P (vla-item (vla-get-layouts ACDOC) ONG-BASE)) (vla-getcustomscale A-P 'N 'M) (vla-put-activelayout ACDOC A-P) (vlax-for E (vla-get-paperspace ACDOC) (if (equal (vla-get-objectname E) "AcDbViewport") (setq LAY (vla-get-layer E) LOCK (vla-get-displaylocked E) ) ) ) (setq I 0) (repeat (setq I (sslength SEL)) (if (vlax-property-available-p (vlax-ename->vla-object (ssname SEL (setq I(1- I)))) 'EFFECTIVENAME) (setq NOM vla-get-effectivename) (setq NOM vla-get-name) ) (if (equal (NOM (setq C (vlax-ename->vla-object (ssname SEL I)))) (NOM B)) (progn (vla-getboundingbox C 'XMIN 'YMAX) (setq LSTIMA (GETATT C) NBLSTIMA (length LSTIMA) IMA1 (cdr (nth 27 LSTIMA)) ;;; Numéro de folio du bloc ;;; IMA2 (cdr (nth 28 LSTIMA)) ;;; Nom de document ERAS ) (setq ONG_DEST IMA1) ;;; (if (/= IMA2 "") ;;; Concatenation de numéro de folio et du Nom du document ERAS ;;; (setq ONG_DEST (strcat ONG_DEST "_" IMA2)) ;;; ) (setq N-P (vla-add (vla-get-layouts ACDOC) ONG_DEST)) (setq ECH (vla-get-yscalefactor C)) (vla-copyfrom N-P A-P) (vla-put-activelayout ACDOC N-P) (setq FEN (vla-addpviewport (vla-get-paperspace ACDOC) (vlax-3d-point '(0 0 0)) (setq Larg (* Unit (/ (- (car (vlax-safearray->list ymax)) (car (vlax-safearray->list xmin))) ech))) (setq Haut (* Unit (/ (- (cadr (vlax-safearray->list ymax)) (cadr (vlax-safearray->list xmin))) ech))))) (vla-put-layer FEN LAY) (vla-put-displaylocked FEN LOCK) (vla-zoomextents (vlax-get-acad-object)) (vla-display FEN :vlax-true) (vla-put-mspace ACDOC :vlax-true) (vla-put-activepviewport ACDOC FEN) (vla-zoomwindow (vlax-get-acad-object) XMIN YMAX) (vla-put-mspace ACDOC :vlax-false) (if (> (- (car (vlax-safearray->list YMAX)) (car (vlax-safearray->list XMIN))) (- (cadr (vlax-safearray->list YMAX)) (cadr (vlax-safearray->list XMIN))) ) (vla-put-plotrotation (vla-get-activelayout ACDOC) ac90degrees) (vla-put-plotrotation (vla-get-activelayout ACDOC) ac0degrees) ) (setq P1 (vlax-make-safearray vlax-vbdouble (cons 0 1)) P2 (vlax-make-safearray vlax-vbdouble (cons 0 1)) ) (vlax-make-variant (vlax-safearray-fill P1 (list (- (/ LARG 2)) (- (/ HAUT 2))))) (vlax-make-variant (vlax-safearray-fill P2 (list (/ LARG 2) (/ HAUT 2)))) (vla-setwindowtoplot (vla-get-activelayout ACDOC) P1 P2) ) ) ) (setvar "TILEMODE" 1) (princ) ) (defun c: DEC (/ LstFol Folio) (setq OldCmd (getvar "cmdecho") LstFol (gest_fol)) (setvar "cmdecho" 0) (vl-mkdir (strcat (getvar "DWGPREFIX") (vl-filename-base (getvar "DWGNAME")))) (foreach Folio LstFol (AFFFOL Folio) (command "_WBLOCK" (strcat (getvar "DWGPREFIX") (vl-filename-base (getvar "DWGNAME")) "\\" Folio ".dwg") "" "0,0" "_ALL" "" "_OOPS")) (setvar "cmdecho" OldCmd) (princ)) Merci d'avance pur vos réponses -
:) Merci, ca répond super bien à ma demande. A+
-
Salut, Ma demande ne concerne pas l'ordre d'affichage des onglets de Présentations dans la fenêtre DCL, mais d'automatiser le traitement fait manuelllement avec la fenêtre . a+
-
Merci Bred, ca marche Nickel Au passage, vraiment génial ton programme
-
Bonjour Patrick_35, Je me permet de te demander un modification de ton lisp OOG afin de palier un manque d'un routine qu'avait créer Bred (CEP, création de présentation selon bloc dans espace Objet) et que j'ai mis à jour suivant mes besoins. La demande consiste à classer les onglets par ordre AlphaNumérique de facon automatique. Merci d'avance.
-
ok merci, j'ai résolu mon probléme. Par contre, quelqu'un saurait comment inversé l'ordre de la liste créer avec ssget [Edité le 4/6/2009 par grosseel]
-
Salut tous le monde, Tout comme PHILPHIL, je cherche à pousser plus loin la routine de Bred, mais je bloc sur le même point c.a.d sélectionner automatiquement l'ensemble des blocs étant identique au bloc référence. De plus je cherche à inverser la liste créer afin de ranger les présentations dans le bon ordre. Ci-joint ma version du programme De BRED avec les modifications de PhilPhil et les miennes. (defun C:CEPX (/ ACDOC B C FEN I LAYS N-P NOM-P ONG-BASE ONG_DEST SEL XMIN YMAX A-P HAUT LARG P1 P2 NOM ECH LAY LOCK UNIT) (vl-load-com) ; 4 Millimètres 5 Centimètres 6 Mètres (setq UNIT (cdr (assoc (getvar "INSUNITS") '((4 . 1) (5 . 10) (6 . 1000))))) (while (not SEL) (setq SEL (car (entsel "\n Choix du cadre (Bloc) :"))) (setq BLK (cdr (assoc 2 (entget SEL)))) (if SEL (if (not (equal (vla-get-objectname (setq B (vlax-ename->vla-object SEL))) "AcDbBlockReference")) (setq SEL NIL))) ) [surligneur] (setq SEL (ssget "X" (list (cons 2 BLK))) ACDOC (vla-get-activedocument (vlax-get-acad-object)) LAYS (layoutlist) ) (setq BLK NIL) [/surligneur] (if (> (length LAYS) 1) (progn (princ "\n Copie configuration traceur d'onglet Existant. \n Plusieurs Présentations détectées.") (while (not ONG-BASE) (princ "\n") (repeat (setq I (length LAYS)) (princ (strcat (nth (- (length LAYS) I) LAYS) " * ")) (setq I (1- I)) ) (setq ONG-BASE (getstring t "\n Présentation d'où la configuration du traceur sera récupérée :")) (if (not (member ONG-BASE LAYS)) (setq ONG-BASE NIL) ) ) ) (setq ONG-BASE (car LAYS)) ) (setq A-P (vla-item (vla-get-layouts ACDOC) ONG-BASE)) (vla-getcustomscale A-P 'N 'M) (vla-put-activelayout ACDOC A-P) (vlax-for E (vla-get-paperspace ACDOC) (if (equal (vla-get-objectname E) "AcDbViewport") (setq LAY (vla-get-layer E) LOCK (vla-get-displaylocked E) ) ) ) (setq I 0) (repeat (sslength SEL) (if (vlax-property-available-p (vlax-ename->vla-object (ssname SEL I)) 'EFFECTIVENAME) (setq NOM vla-get-effectivename) (setq NOM vla-get-name) ) (if (equal (NOM (setq C (vlax-ename->vla-object (ssname SEL I)))) (NOM B)) (progn (vla-getboundingbox C 'XMIN 'YMAX) (setq LSTIMA (GETATT C) NBLSTIMA (length LSTIMA) IMA1 (cdr (nth 27 LSTIMA)) ;;; Numéro de folio du bloc ;;; IMA2 (cdr (nth 28 LSTIMA)) ;;; Nom de document ERAS ) (setq ONG_DEST IMA1) ;;; (if (/= IMA2 "") ;;; Concatenation de numéro de folio et du Nom du document ERAS ;;; (setq ONG_DEST (strcat ONG_DEST "_" IMA2)) ;;; ) (setq N-P (vla-add (vla-get-layouts ACDOC) ONG_DEST)) (setq ECH (vla-get-yscalefactor C)) (vla-copyfrom N-P A-P) (vla-put-activelayout ACDOC N-P) (setq FEN (vla-addpviewport (vla-get-paperspace ACDOC) (vlax-3d-point '(0 0 0)) (setq Larg (* Unit (/ (- (car (vlax-safearray->list ymax)) (car (vlax-safearray->list xmin))) ech))) (setq Haut (* Unit (/ (- (cadr (vlax-safearray->list ymax)) (cadr (vlax-safearray->list xmin))) ech))))) (vla-put-layer FEN LAY) (vla-put-displaylocked FEN LOCK) (vla-zoomextents (vlax-get-acad-object)) (vla-display FEN :vlax-true) (vla-put-mspace ACDOC :vlax-true) (vla-put-activepviewport ACDOC FEN) (vla-zoomwindow (vlax-get-acad-object) XMIN YMAX) (vla-put-mspace ACDOC :vlax-false) (if (> (- (car (vlax-safearray->list YMAX)) (car (vlax-safearray->list XMIN))) (- (cadr (vlax-safearray->list YMAX)) (cadr (vlax-safearray->list XMIN))) ) (vla-put-plotrotation (vla-get-activelayout ACDOC) ac90degrees) (vla-put-plotrotation (vla-get-activelayout ACDOC) ac0degrees) ) (setq P1 (vlax-make-safearray vlax-vbdouble (cons 0 1)) P2 (vlax-make-safearray vlax-vbdouble (cons 0 1)) ) (vlax-make-variant (vlax-safearray-fill P1 (list (- (/ LARG 2)) (- (/ HAUT 2))))) (vlax-make-variant (vlax-safearray-fill P2 (list (/ LARG 2) (/ HAUT 2)))) ;;;GR (vla-put-plottype (vla-get-activelayout ACDOC) acwindow) (vla-setwindowtoplot (vla-get-activelayout ACDOC) P1 P2) (setq I (1+ I)) ) ) ) (setvar "TILEMODE" 1) (princ) ) En surligné jaune, ce que j'ai modifié. Apparemment c la deuxième partie qui pose probléme. :exclam: -------------------- Ok, j'ai résolu le 1er probléme (J'ai modifier le code du poste en conséquence) mais je ne sais toujours pas comment inverser l'ordre de la liste créer avec SSGET [Edité le 4/6/2009 par grosseel]
-
Merci de ta réponse Gile, mais ca na pas résolu mon probléme, l'éditeur Visual Lisp me retourne l'erreur suivante : ; erreur: nombre d'arguments insuffisant dans SETQ: (SETQ SEL (SSGET "_X" (QUOTE ((0 . "INSERT") (CONS 2 BLK)))) ACDOC (vla-get-ActiveDocument (vlax-get-acad-object)) LAYS (LAYOUTLIST) (SETQ BLK nil)) Ci-joint le bout de code qui pose probléme : (while (not SEL) (setq SEL (car (entsel "\n Choix du cadre (Bloc) :"))) (setq BLK (cdr (assoc 2 (entget SEL)))) (if SEL (if (not (equal (vla-get-objectname (setq B (vlax-ename->vla-object SEL))) "AcDbBlockReference")) (setq SEL NIL))) ) (setq SEL (ssget "_X" '((0 . "INSERT") (cons 2 BLK)))) ACDOC (vla-get-activedocument (vlax-get-acad-object)) LAYS (layoutlist) (setq BLK NIL)) ) Merci de ta réactivité [Edité le 4/6/2009 par grosseel]
-
Une autre petite question pour en probléme en relation avec le bout de programme de gile. Comment fait-on si le nom du bloc ("CartouchePC") est une variable. Merci d'avance pour vos réponses. Et encore bravo Gile.
-
Eclater 1 dwg en plusieurs dwg selon zones espace objet
grosseel a répondu à un(e) sujet de grosseel dans Débuter en LISP
je ne sais plus comment contacté quelqu'un par MP sur CADxp, si tu peut m'aider (je n'arrive que à naviguer dans les forums) Si tu peut m'aiguiller. Merci encore de me préter attention
