-
Compteur de contenus
2 160 -
Inscription
-
Dernière visite
-
Jours gagnés
16
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bryce
-
Sélectionner une ligne de cotes en une seule manip ?
bryce a répondu à un(e) sujet de brunomu dans AutoCAD 2010
Bonjour, j'avais fait ça vite fait, pas encore eu le temps de le perfectionner : (defun c:ds(/ ent1 ent2 pt1 pt2 pt3 pt4 ucmdecho uosnapcoord) (command "._undo" "_group") (setq ucmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (setq uosnapcoord (getvar "osnapcoord")) (setvar "osnapcoord" 1) (while (not (and (setq ent1 (entsel "\nChoisissez la première cote de la chaîne :" ) ) (eq "DIMENSION" (cdr (assoc 0 (setq ent1 (entget (car ent1))) ) ) ) );and );not (princ "\nL'objet sélectionné n'est pas une cote !") );while (while (not (and (setq ent2 (entsel "\nChoisissez la dernière cote de la chaîne :" ) ) (eq "DIMENSION" (cdr (assoc 0 (setq ent2 (entget (car ent2))) ) ) ) );and );not (princ "\nL'objet sélectionné n'est pas une cote !") );while (setq pt1 (cdr (assoc 10 ent1))) (setq pt2 (cdr (assoc 10 ent2))) (setq pt1 (trans (polar pt1 (+ (angle pt1 pt2) PI (/ PI 4)) 0.1) 0 1) ) (setq pt2 (trans (polar pt2 (- (angle pt1 pt2) (/ PI 4)) 0.1) 0 1) ) (setq pt3 (polar pt1 (+ (angle pt1 pt2) (/ PI 2)) 0.2) ) (setq pt4 (polar pt2 (+ (angle pt1 pt2) (/ PI 2)) 0.2) ) (command "_.stretch" (ssget "_cp" (list pt1 pt2 pt4 pt3) '( (0 . "DIMENSION") (-4 . "")) ) "" pt1 pause) (setvar "osnapcoord" uosnapcoord) (command "._undo" "_end") (setvar "cmdecho" ucmdecho) (princ) );defun La commande à taper est DS. Il faut cliquer sur 2 cotes : la première et la dernière de la chaîne à déplacer, puis cliquer un point pour la nouvelle position. La commande ne prend en compte que les cotes linéaires et alignées. [Edité le 14/2/2011 par bryce] -
Une fois que tu as envoyé ton fichier, il faut nous donner le lien ici ;)
-
Bonjour, Il n'existe pas de commande pour importer directement des points dans AutoCAD. Sur LT, il faudra passer par un script, que tu peux créer avec Excel ou Openoffice. Si tu veux, tu peux poster un morceau de ton fichier de coordonnées, et je te montrerai comment faire. ;) Pour poster un fichier : http:/dl.free.fr ou http://file.ahst.fr
-
Bonjour, Si pour une raison ou une autre TotalArea ne convient pas, il y a aussi Pline_Block, de (gile) également, ou Surfbloco : http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=31397#pid135279
-
Oui, tu peux mettre tes fichiers en ligne sur http://dl.free.fr ou http://file.ahst.fr/ et poster les liens ici ;)
-
Oui, je pensais aussi à une seule liste de ce genre : bloc d'origine ; calque d'origine ; nouveau bloc ; nouveau calque par exemple : B1;C1;Sym12;LEVE_256 B1;C2;Sym44;LEVE_32 etc.
-
Bonjour, Pour l'instant je ne sais pas non plus à quoi il pourrait ressembler... :P En premier lieu je pense que tu devrais établir un cahier des charges, une liste précise de toutes les opérations à effectuer sur les fichiers, en joignant un dessin exemple. Ça sera plus facile de t'aider ensuite. ;)
-
SOS Touche Suppr sans effet sur objet...
bryce a répondu à un(e) sujet de voyageur65 dans AutoCAD 2010
Bonjour, C'est parce que MVSETUP est un vieux LISP mal foutu, et quand on interrompt la commande avec Echap certaines variables ne sont pas restaurées à leurs valeurs d'origine (accrobj qui sautent, pickfirst à 0 au lieu de 1, etc.). :mad: C'est une commande avec laquelle il vaut mieux éviter de faire Echap en cours de route, et si ça arrive, utiliser la commande Annuler tout de suite après. -
Bonsoir, Pas besoin de redessiner la ligne... Tu peux la sélectionner, et mettre la coordonnée Z des deux extrémités à 0 dans la palette Propriétés.
-
Bonsoir, Comme il va falloir filtrer les blocs d'après leur calque d'insertion, un simple script ne suffira plus... Il va falloir y ajouter du lisp.
-
Bonsoir, Même pas besoin de tricher avec les XRefs, il y a un bouton pour ajouter des fichiers dans la boîte de dialogue Etransmit. ;) Sinon tu peux aussi utiliser TrueView : http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&id=6703438&DCMP=ILC-DWG-PUV
-
Justement non, c'est les variables USERSx qui n'existent pas sur LT. Les variables USERIx et USERRx existent sur AutoCAD et LT, et a priori se comportent pareil. ;)
-
Bonjour, Pour ta 2e question, voici la solution : ^C^C[surligneur]^R[/surligneur] _layout;g;gabarit.dwt Et la raison : http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=12638396&linkID=9240617
-
Tu parles de la macro de cumul de surfaces ? Elle fonctionne bien chez moi, mais j'ai oublié de préciser qu'il faut cliquer sur des objets qui ont une propriété de surface : polylignes, régions, cercles, ellipses, splines fermées... Si ça ne fonctionne pas, il faudrait que tu expliques plus en détail ce qui se passe. Tu peux par exemple lancer la macro, cliquer sur quelques objets, puis appuyer sur F2 et faire un copier-coller du contenu de la fenêtre de texte.
-
Remise à 0 de USERR1 : ^C^Cuserr1;0 Cumul de surfaces : *^C^Cmodemacro;Aire cumulée: $M=$(rtos,$(getvar,userr2),2,2);_area;_e;\userr2;"$M=$(+,$(getvar,userr2),$(getvar,area))"; Pour cette macro, la variable à remettre à 0 est USERR2. Je te laisse trouver la macro pour la remettre à 0... :P
-
Bonjour, Une petite macro comme celle-ci permet de cumuler les longueurs de plusieurs objets : *^C^Cmodemacro;Longueur cumulée: $M=$(rtos,$(getvar,userr1),2,2);_lengthen;\;userr1;"$M=$(+,$(getvar,userr1),$(getvar,perimeter))"; L'inconvénient, c'est qu'il faut cliquer sur chaque objet un après l'autre... La longueur cumulée est affichée tout en bas de l'écran à gauche, dans la barre d'état. Pour remettre le compteur à 0, il faut mettre la variable USERR1 à 0.
-
Bonjour, Pour ma part, je trouve ça très bien comme façon de gérer les unités. :P Il suffit de paramétrer INSUNITSDEFSOURCE et INSUNITSDEFTARGET sur 0 (sans unité) une bonne fois pour toutes, et de cette façon : - si l'unité du bloc ET celle du dessin sont définies, c'est cool, le bloc se met à l'échelle automatiquement :) - si le bloc ET/OU le dessin sont sans unité, on gère soi-même avec l'échelle d'insertion du bloc, "comme au bon vieux temps des dinosaures"... :P Mon seul grief est que ces 2 varaibles ne soient pas à 0 par défaut quand on installe AutoCAD...
-
La vue ne correspond pas tout à fait au plan XY du système de coordonnées courant (qui est le SCG). Commande _PLAN et 2x Entrée ;) Tu as aussi des objets qui traînent loin du dessin et qui gênent quand on fait un zoom étendu.
-
Voici XGRAY, issu d'un croisement entre XCOL de (gile), et GRAY. Il permet de coloriser les XRefs d'un dessin, en choisissant parmi 3 options: - Monochrome : colorise tous les calques des XRefs sélectionnées avec une couleur uniforme (comme XCOL) - niveaux de Gris : affecte un gris aux calques des XRefs sélectionnées, en fonction de leur couleur d'origine - Restaurer : restaure les couleurs d'origine des calques des XRefs sélectionnées. ;; ACI -> RGB - Lee Mac 2011 ;; Args: c - ACI (AutoCAD Colour Index) Colour (defun LM:ACI->RGB (c / cObj rgb) (vl-load-com) (if (and (<= 1 c 255) (setq cObj (vla-getInterfaceObject (vlax-get-acad-object) (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2)) ) ) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-ColorIndex (list cObj c)) ) ) ) (setq rgb (list (vla-get-Red cObj) (vla-get-Green cObj) (vla-get-Blue cObj))) ) (if cObj (vlax-release-object cObj) ) rgb ) ;; RGB -> ACI - Lee Mac 2011 ;; Args: r,g,b - Red,Green,Blue values (defun LM:RGB->ACI (r g b / cObj aci) (vl-load-com) (if (and (setq cObj (vla-getInterfaceObject (vlax-get-acad-object) (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2)) ) ) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-SetRGB (list cObj r g B)) ) ) ) (setq aci (vla-get-ColorIndex cObj)) ) (if cObj (vlax-release-object cObj) ) aci ) ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur ;; ;; Exemples ;; (str2lst "a b c" " ") -> ("a" "b" "c") ;; (str2lst "1,2,3" ",") -> ("1" "2" "3") ;; (mapcar 'read (str2lst "1,2,3" ",")) -> (1 2 3) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;; ListBox (gile) ;; Boite de dialogue permettant un ou plusieurs choix dans une liste ;; ;; Arguments ;; title : le titre de la boite de dialogue (chaîne) ;; msg ; message (chaîne), "" ou nil pour aucun ;; keylab : une liste d'association du type ((key1 . label1) (key2 . label2) ...) ;; flag : 0 = liste déroulante ;; 1 = liste choix unique ;; 2 = liste choix multipes ;; ;; Retour : la clé de l'option (flag = 0 ou 1) ou la liste des clés des options (flag = 2) ;; ;; Exemple d'utilisation ;; (listbox "Présentation" "Choisir une présentation" (mapcar 'cons (layoutlist) (layoutlist)) 1) (defun ListBox (title msg keylab flag / tmp file dcl_id choice) (setq tmp (vl-filename-mktemp "tmp.dcl") file (open tmp "w") ) (write-line (strcat "ListBox:dialog{label=\"" title "\";") file ) (if (and msg (/= msg "")) (write-line (strcat ":text{label=\"" msg "\";}") file) ) (write-line (cond ((= 0 flag) "spacer;:popup_list{key=\"lst\";") ((= 1 flag) "spacer;:list_box{key=\"lst\";") (T "spacer;:list_box{key=\"lst\";multiple_select=true;") ) file ) (write-line "}spacer;ok_cancel;}" file) (close file) (setq dcl_id (load_dialog tmp)) (if (not (new_dialog "ListBox" dcl_id)) (exit) ) (start_list "lst") (mapcar 'add_list (mapcar 'cdr keylab)) (end_list) (action_tile "accept" "(or (= (get_tile \"lst\") \"\") (if (= 2 flag) (progn (foreach n (str2lst (get_tile \"lst\") \" \") (setq choice (cons (nth (atoi n) (mapcar 'car keylab)) choice))) (setq choice (reverse choice))) (setq choice (nth (atoi (get_tile \"lst\")) (mapcar 'car keylab))))) (done_dialog)" ) (start_dialog) (unload_dialog dcl_id) (vl-file-delete tmp) choice ) ;;; XGRAY - Bryce, basé sur XCOL (gile) ;;; Colorise les XRefs sélectionnées ;;; Choix d'une couleur dans la boîte de dialogue standard (option "Monochrome") ;;; ou conversion en niveaux de gris automatique (option "niveaux de Gris") ;;; option "Restaurer" pour restituer les couleurs d'origine (defun c:XGray (/ acdoc layers blocks ss name lst action color shade layername vr) (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layers (vla-get-Layers acdoc) blocks (vla-get-Blocks acdoc) ) (vla-StartUndoMark acdoc) (initget "Monochrome Gris Restaurer") (setq action (getkword "\nChoix de l'option [Monochrome/niveaux de Gris/Restaurer] <Gris>:")) (if (not action) (setq action "Gris") ) (or (getenv "XrefColor") (setenv "XrefColor" "8")) (if (eq action "Monochrome") (progn (setq color (acad_colordlg (atoi (getenv "XrefColor")))) (setenv "XrefColor" (itoa color)) ) ) (vlax-for x blocks (if (= (vla-get-IsXref x) :vlax-true) (setq lst (cons (vla-get-Name x) lst)) ) ) (if (setq lst (ListBox "Xref color" "Choisir les xref à coloriser" (mapcar 'cons lst lst) 2)) (progn (vlax-for l layers (if (and (setq layername (vla-get-Name l)) (setq pos (vl-string-position (ascii "|") layername)) (member (substr layername 1 pos) lst) ) (if (eq action "Restaurer") (progn (setq vr (getvar "VISRETAIN")) (setvar "VISRETAIN" 0) (vlax-for b (vla-get-Blocks acdoc) (if (= (vla-get-IsXref B) :vlax-true) (progn (vla-unload B) (vla-reload B) ) ) ) (setvar "VISRETAIN" vr) ) (if (eq action "Monochrome") (vla-put-color l color) (if (eq action "Gris") (progn (setq color (LM:ACI->RGB (vla-get-color l))) (setq shade (fix (/ (+ (car color) (cadr color) (caddr color)) 3))) (setq shade (+ 34 shade)) ;; augmenter pour éclaircir (if (>= shade 255) (setq shade 254) ) (setq shade (LM:RGB->ACI shade shade shade)) (if (or (= shade 7) (= shade 250)) (setq shade 251) ) (vla-put-color l shade) ) ) ) ) ) ) (vla-regen acdoc acActiveViewport) ) ) (vla-EndUndoMark acdoc) (princ) ) http://creao.fr/uploads/lisp/xgray.lsp (gile) si tu repasses par ce sujet, pour XCOL tu indiques qu'on peut faire Entrée pour coloriser toutes les XRefs du dessin, mais ça ne fonctionne pas. Est-ce que la fonction ListBox est censée renvoyer la liste de toutes les XRefs si rien n'est sélectionné par l'utilisateur ? :casstet:
-
Bonjour, FILLMODE ;)
-
Bonjour, Plus convivial, c'est sûr, et plus abouti aussi. Mais il applique une seule couleur à tous les calques de la xref, et davidcad01 voulait obtenir des niveaux de gris. ;) Il faudrait fusionner les 2 en fait, avec éventuellement la possibilité de choisir entre une conversion en niveaux de gris ou une colorisation uniforme.
-
Bonjour, Comme le suggère Oli553, la palette est peut-être en-dehors de l'écran. Essaie de réinitialiser la position par défaut des palettes en sélectionnant un espace de travail dans la liste qui se trouve dans la barre d'état (icône "roue dentée" en bas à droite).
-
Bonjour, Plutôt un paramètre de consultation ! ;) Petit exemple : http://dl.free.fr/cK3EGw0FV [Edité le 8/2/2011 par bryce]
-
Bonjour, Il ne faut pas utiliser la couleur 255, c'est du blanc et c'est une couleur qui n'est pas du tout imprimée (à moins que tu utilises une table de styles de tracé qui change ça). ;) Pour mettre tous les objets du dessin en DuCalque (y compris dans les blocs), je te suggère d'utiliser la commande DEFDUCALQUE. En ce qui concerne tes calques, j'ai bidouillé un petit lisp (en me basant sur 2 fonctions de Lee Mac) qui va peut-être t'aider : il permet de modifier automatiquement la couleur de tous les calques en une nuance de gris. ;; ACI -> RGB - Lee Mac 2011 ;; Args: c - ACI (AutoCAD Colour Index) Colour (defun LM:ACI->RGB ( c / cObj rgb ) (vl-load-com) (if (and (<= 1 c 255) (setq cObj (vla-getInterfaceObject (vlax-get-acad-object) (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2)) ) ) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-ColorIndex (list cObj c)) ) ) ) (setq rgb (list (vla-get-Red cObj) (vla-get-Green cObj) (vla-get-Blue cObj))) ) (if cObj (vlax-release-object cObj)) rgb ) ;; RGB -> ACI - Lee Mac 2011 ;; Args: r,g,b - Red,Green,Blue values (defun LM:RGB->ACI ( r g b / cObj aci ) (vl-load-com) (if (and (setq cObj (vla-getInterfaceObject (vlax-get-acad-object) (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2)) ) ) (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-SetRGB (list cObj r g b)) ) ) ) (setq aci (vla-get-ColorIndex cObj)) ) (if cObj (vlax-release-object cObj)) aci ) (defun c:GRAY (/ doc lay color shade) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-StartUndoMark doc) (vlax-for lay (vla-get-layers doc) (setq color (LM:ACI->RGB (vla-get-color lay))) (setq shade (fix (/ (+ (car color) (cadr color) (caddr color)) 3))) (setq shade (+ 34 shade)) ;; augmenter pour éclaircir (if (>= shade 255) (setq shade 254) ) (setq shade (LM:RGB->ACI shade shade shade)) (if (or (= shade 7) (= shade 250)) (setq shade 251) ) (vla-put-color lay shade) ) (vla-regen doc acActiveViewport) (vla-EndUndoMark doc) ) Ça a l'air de marcher pas trop mal, mais je décline toute responsabilité si jamais ça déclenche un cataclysme planétaire... :P [Edité le 8/2/2011 par bryce]
-
Bonjour, Je ne comprends pas bien le but... S'agit-il de créer une mise en plan de la partie sous-traitée uniquement, en affichant sa masse ? Si c'est le cas, il faudrait simplement faire en sorte que la partie sous-traitée soit un sous-ensemble de l'assemblage final.
