-
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
-
Lisp pour désactiver toutes les fenêtres sur toutes les présentations
bryce a répondu à un(e) sujet de skavenger540 dans LISP et Visual LISP
J'ai testé avec une fenêtre circulaire, pas de souci chez moi... :unsure: -
Bonjour, En transformant les valeurs en chaînes ? (mapcar '(lambda (x) (rtos x 2 3)) (cdr (assoc 10 (entget (car (entsel))))))
-
Bonjour, Quand il faut figer l'échelle des types de lignes, il faut en effet mettre PSLTSCALE et MSLTSCALE à 0, pas le choix. Mais dans ce cas, il me semble personnellement préférable de ne jouer que sur la valeur de LTSCALE (ECHLTP), sans forcer l'échelle dans les propriétés des objets (ou alors de manière très ciblée). Ça limite le risque d'oublier certains objets en cas de modifs, et de se retrouver ensuite avec des échelles forcées différentes dans un même dessin. Ce qui serait bien, ce serait de pouvoir affecter une échelle de types de lignes par calque, qui ne soit pas affectée par LTSCALE.
-
Mouais... <_< Il conseille les valeurs suivantes: Dans ce cas, comment adapter les types de lignes à l'échelle de présentation du dessin ? En forçant l'échelle des types de lignes des objets dans les propriétés ? Bof bof... :mellow:
-
Lisp pour désactiver toutes les fenêtres sur toutes les présentations
bryce a répondu à un(e) sujet de skavenger540 dans LISP et Visual LISP
Bonjour, :mellow: Il y a un message d'erreur ? Pourrais-tu poster un dessin exemple ? -
Lisp pour désactiver toutes les fenêtres sur toutes les présentations
bryce a répondu à un(e) sujet de skavenger540 dans LISP et Visual LISP
Je ne vois pas quel peut-être le souci... Tu peux éventuellement tester cet autre Lisp qui utilise (command), pour voir si ça fonctionne de cette façon: (defun c:vpai (/ *error* acdoc layouts oldcmdecho action ss clayout) ; Brice Studer, février 2011 ; mise à jour juin 2013 ; Permet d'activer toutes les fenêtres de toutes les présentations du dessin, ; ou de toutes les désactiver (en choisissant éventuellement de garder actives ; certaines fenêtres de la présentation active). (vl-load-com) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object)) layouts (vla-get-Layouts acdoc) ) (defun *error* (errmsg) (command nil nil nil) (vla-EndUndoMark acdoc) (setvar "CMDECHO" oldcmdecho) (setvar "NOMUTT" 0) (and errmsg (or (member (strcase errmsg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " errmsg)) ) ) (princ) ) (initget "Activer Désactiver") (setq action (getkword "\nEntrée pour désactiver toutes les fenêtres ou [Activer]: ")) (if (= action "Activer") (setq action "_on") (progn (setq action "_off") (princ "\nSélectionnez les fenêtres à garder actives (Entrée pour aucune): ") (setq ss (ssget '( (0 . "VIEWPORT") ))) ) ) (vla-StartUndoMark acdoc) (setq oldcmdecho (getvar "CMDECHO") clayout (getvar "CTAB") ) (setvar "CMDECHO" 0) (setvar "NOMUTT" 1) (vlax-for lay layouts (if (eq :vlax-false (vla-get-ModelType lay)) (progn (vla-put-ActiveLayout acdoc lay) (command "_.-vports" action "_all" "") (if (/= 0 (getvar "CMDACTIVE")) (command nil nil nil) ) );progn );if layout not model );vlax-for lay (setvar "CTAB" clayout) (if ss (command "_.-vports" "_on" ss "") ) (*error* nil) ) (princ "\nCommande à utiliser: VPAI") (princ) -
Lisp pour désactiver toutes les fenêtres sur toutes les présentations
bryce a répondu à un(e) sujet de skavenger540 dans LISP et Visual LISP
Bonjour, La version 14, je n'en ai plus sous la main pour tester... Je suppose que tu parles de la 2014 ? :P Aucun problème de mon côté... Tu as essayé de relancer AutoCAD ? -
Bonjour, https://chronicle.autodesk.com/Main/Details/fb5c6373-3b8d-484a-9e01-e66bc02f35c3 ;)
-
Bonjour, Si les filtres sont déjà créés, ce sera très facile de les retranscrire en Lisp. En ouvrant le fichier filter.nfl dans un éditeur de texte, on trouve par exemple: Filter.nfl -- Ne modifiez pas ce fichier. :ai_lisp|toto (0 . "ARC") (-4 . ">") (40 . 12.000000000000000) (8 . "0") :ai_str|toto Objet = Arc Rayon de l'arc > 12.000000000000000 Calque = 0 Pour avoir l'équivalent en Lisp du filtre "toto", il suffit de coller les lignes entre parenthèses situées sous la ligne :ai_lisp|toto dans un (ssget): (ssget '( (0 . "ARC") (-4 . ">") (40 . 12.000000000000000) (8 . "0") )) ;)
-
Lisp pour désactiver toutes les fenêtres sur toutes les présentations
bryce a répondu à un(e) sujet de skavenger540 dans LISP et Visual LISP
Bonjour, Voici un Lisp, basé sur une fonction de (gile), qui définit 5 commandes. VPAOFF devrait correspondre à ce que tu recherches. ; VPST : active/désactive toutes les fenêtres de l'onglet courant/tous les onglets ; VPAON : active toutes les fenêtres de tous les onglets ; VPON : active toutes les fenêtres de l'onglet courant ; VPAOFF : désactive toutes les fenêtres de tous les onglets ; VPOFF : désactive toutes les fenêtres de l'onglet courant (defun c:vpon () (gc:AllViewportOn :vlax-true (getvar 'ctab)) (princ) ) (defun c:vpaon () (gc:AllViewportOn :vlax-true nil) (princ) ) (defun c:vpoff () (gc:AllViewportOn :vlax-false (getvar 'ctab)) (princ) ) (defun c:vpaoff () (gc:AllViewportOn :vlax-false nil) (princ) ) (defun c:vpst (/ option) (princ "\nActive/désactive toutes les fenêtres de l'onglet courant/tous les onglets") (initget "DT AT D A") (setq option (getkword "\nChoisissez une option [Désactiver Tous/Activer Tous/Désactiver courant/Activer courant] <Désactiver Tous>: ")) (cond ((= option "AT") (c:vpaon)) ((= option "A") (c:vpon)) ((= option "D") (c:vpoff)) ( T (c:vpaoff)) ) (princ) ) (defun gc:AllViewportOn (bool layout / *error* lrc ss) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-activeDocument *acad*))) (defun *error* (msg) (and msg (or (member (strcase msg) '("FUNCTION CANCELLED" "QUIT / EXIT ABORT" "FONCTION ANNULEE" "QUITTER / SORTIR ABANDON")) (princ (strcat "\nErreur : " msg)) ) ) (setvar 'layoutregenctl lrc) (princ) ) (setq lrc (getvar 'layoutregenctl)) (setvar 'layoutregenctl 0) (if layout (or (/= layout "Model") (progn (princ "\n** Commande non autorisée dans l'onglet Objet**") (quit) ) ) (setq layout "~Model") ) (if (ssget "_X" (list(cons 0 "VIEWPORT") (cons 410 layout) (cons -4 "/=") (cons 69 1))) (vlax-for vp (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vla-put-ViewportOn vp bool) ) ) (and ss (vla-Delete ss)) (*error* nil) ) (princ "\nCommandes: VPST ou VPON, VPOFF, VPAON, VPAOFF") (princ) -
Bonjour, (if (not (tblsearch "BLOCK" "assistant")) (progn (command "zoom" "f" "-5,15,0" "-5,-15,0" "") (command "ortho" "a" "") (setq p1 '(0 0 0) p2 (polar p1 (/ pi 2) decal) p3 (polar p2 pi 2) p4 (polar p2 0 2) p5 (polar p1 (- (/ pi 2)) decal) p6 (polar p5 pi 2) p7 (polar p5 0 2) ) (command "polylign" p1 p2 p3 p4 p2 p1 p5 p6 p7 "") (setq ent (entlast)) (command "zoom" "et" "") (command "ortho" "i" "") (command "_block" "assistant" p1 ent "") );progn (command "inserer" "assistant" 1erCandelabre 1 1 gis "") ) ;)
-
Bonjour, Je ne suis pas l'auteur de ce Lisp (ou alors il faut que je m'inquiète...). ;)
-
Bonjour, Si tu as une version complète, voici un petit Lisp qui devrait faire l'affaire: Oups, j'avais mal compris... :unsure: Tu peux essayer avec ce fichier Excel, les types de lignes doivent être chargés dans le dessin avant d'y coller le script.
-
Bonjour, Il faut calculer... <_<
-
Bonjour, Du coup je viens de vérifier par curiosité, et tu n'es pas bien loin de la réalité: 343,50€ exactement... :D
-
Projection d'un point sur une droite (perpendiculairement)
bryce a répondu à un(e) sujet de mateus dans LISP et Visual LISP
Bonjour, A priori, vlax-curve-getClosestPointTo devrait faire l'affaire. -
Oups, désolé pour l'oubli... J'ai modifié le code dans mon message précédent. ;)
-
Youpi ! :P
-
Bonjour, La liste des calques était en effet dans l'ordre dans lequel ils apparaissaient dans le dxf, je n'y avais pas fait attention. Je viens de mettre en ligne la Beta 17, qui corrige cela. ;) Beta 17 - tri par ordre alphabétique des filtres de calques, blocs, types d'entités - date d'expiration repoussée au 31/07/2013.
-
Bonjour, Essaie ce petit Lisp: (defun C:ROTEXT ( / ss ass rot ) (vl-load-com) (if (setq ss (ssget "_:L" '((0 . "TEXT,MTEXT")))) (progn (setq ass (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))) ss nil rot (getangle "\nAngle de rotation: ") ) (vlax-for text ass (vla-put-Rotation text (+ rot (vla-get-Rotation text))) ) (vla-delete ass) ) ; progn ) ; if ss (princ) )
-
Bonjour, Ce n'est a priori pas un comportement normal. C'est peut-être un Lisp chargé automatiquement qui provoque cela ? :unsure:
-
Sinon, sans Lisp: ^C^C^R_select;_P;; ;)
-
Bonjour, Tu peux exporter la présentation complète (clic droit sur l'onglet de présentation > Exporter présentation en objet), tu auras alors les différentes vues sous forme de blocs. Je ne vois pas d'autre moyen...
-
pour trouver un calque quand ya plein de présentation
bryce a répondu à un(e) sujet de zou dans AutoCAD 2012
Bonjour, Si tu es sûr de vouloir supprimer un calque quel que soit son contenu, tu peux utiliser la commande SUPCALQUE (_LAYDEL). -
Bonjour, Si, on peut, mais le résultat est une polyligne et non une ligne...
