-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
Salut La plus simple en lisp (member "A4-Gaines" (layoutlist)) Retourne nil s'il n'existe pas En vlisp (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) "A4-Gaines"))) Retourne T s'il n'existe pas. @+
-
Salut Regarde la variable SDI @+
-
Salut (gile) Sujet très interressant, mais je souhaiterai apporter une petite précision. On peut très bien utiliser (vlax-get (vlax-get-or-create-object "Excel.Application") 'Workbooks) à la place d'un vlax-get-property. Cela dépend du nombre d'arguments nécessaires. Idem en ce qui concerne vlax-invoke. Un exemple pour afficher un message via une boite de dialogue (defun MsgBox (Titre Bouttons Message / Reponse WshShell) (acad-push-dbmod) (setq WshShell (vlax-create-object "WScript.Shell")) (setq Reponse (vlax-invoke WshShell 'Popup Message 0 Titre (itoa Bouttons))) (vlax-release-object WshShell) (acad-pop-dbmod) Reponse ) @+
-
Reactor sur un calque
Patrick_35 a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
C'est déjà le cas en Bretagne, depuis ce matin. Et comme je suis venue bosser en HD, c'est que du bonheur ce soir :D Mais de rien @+ -
Reactor sur un calque
Patrick_35 a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Ce n'est pas le plus compliqué ;) Il faudrait construire une base (liste) pour ensuite comparer si les points ont changés. Tu peux utiliser les datas des réacteurs par exemple. C'est le deuxième argument dans le réacteur, après la liste (valeur nil) et le troisième dans la routine appelé par le réacteur (variable data). Tu as plusieurs fonctions sympa qui accompagne les réacteurs vlr-owners et ses deux copains pour gérer la liste d'objets à intégrer au réacteur vlr-data et son ami pour gérer les datas du réacteur Pas besoin, avec le filtre de sélection du calque Ben oui, car si tu utilise Pedit ou des lisps de (gile), tu fais comment ? C'est un très long WE, ce que j'appelle des vacances ;) C'est l'occasion ou jamais ;) ps : Je viens de voir que (gile) viens de répondre. Pas mal l'idée d'utiliser la modification pour voir si un objet a été effacé. @+ -
Reactor sur un calque
Patrick_35 a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Salut Tramber (avec le r ^^) L'avantage d'utiliser vlr-object-reactor et aussi de voir s'il a été effacé (comme demandé lenoil) et si un lisp n'est pas intervenu, ce que l'on ne voit pas en utilisant vlr-editor-reactor ou vlr-command-reactor pour les grips Par exemple (defun patrick:alerte_objet_effacer (obj rea data) (princ "\nL'objet ") (princ obj) (princ " a été effacé.") (princ) ) (and (ssget "x" (list (cons 8 "Mon_Calque_à_Contrôler"))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (setq lst (cons ent lst)) ) (vla-delete sel) (setq patrick_reacteur_effacer (vlr-object-reactor lst nil (list (cons :vlr-erased (function patrick:alerte_objet_effacer))))) ) ) Pour effacer le réacteur (vlr-remove patrick_reacteur_effacer) ps : Je suis comme toi, cela fait un moment que je n'ai pas fait de réacteurs -
Tutoriel boite de dialogue
Patrick_35 a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
D'autant plus qu'on ne se limite plus à Autocad et que l'on peut se faire plaisir avec les APIs, mais bon, je suis un peu comme Patrick, l'envie est là, le temps non. @+ -
Reactor sur un calque
Patrick_35 a répondu à un(e) sujet de lenoil dans Pour aller plus loin en LISP
Salut Je ne pense pas que vlr-acdb-reactor soit le plus approprié, car si tu effaces un objet, il est ensuite impossible de connaître ses propriétés (objet effacé) Le plus simple a mon sens est d'utiliser vlr-object-reactor. @+ -
Tutoriel boite de dialogue
Patrick_35 a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
J'aimerai bien, mais il faut être célibataire pour ça :(rires forts): @+ -
Tutoriel boite de dialogue
Patrick_35 a répondu à un(e) sujet de (gile) dans ObjectARX/DBX, C++, .NET, RealDWG
Salut (gile) J'ai parcouru vite fait le tuto. Que dire sinon bravo, c'est clair et quel boulot de rédaction. @+ -
C'est dans l'aide pour les fonctions vl-*, vlr-*, vlax-* Pour les fonctions vla-*, c'est dans l'aide vba, et pour retrouver les fonctions, avec l'explorateur (F2) dans l'éditeur vba (comme expliqué dans les liens cités) @+
-
Pour un, je suis d'accord, mais je pensais que tu voulais propager une valeur ? Non, tu as la possibilité de choisir les blocs auxquels tu veux propager ta valeur. @+
-
Salut Et avec MAT ? @+
-
Extraire description d'un bloc d'un fichier texte
Patrick_35 a répondu à un(e) sujet de chronos21 dans LISP et Visual LISP
C'est bien ce que je disais, en son temp ;) Je viens de vérifier et cela fonctionne avec Excel 2003 max. Il faudrait que je reprenne le lisp, mais le temps me manque :( @+ -
récupérer valeur attribut
Patrick_35 a répondu à un(e) sujet de azop dans Pour aller plus loin en LISP
Ah oui, tu as raison, je n'y avais pas songé Mais cela me parait tellement logique par rapport à la demande de ne traiter que les blocs. Cela va venir. C'est juste une logique à comprendre. A la limite, le lisp est plus complexe à saisir que le visual. Intégrer les mapcar, apply, les codes dxf et j'en passe n'est pas une chose aisé pour un débutant. Je te rejoins complètement B) @+ -
récupérer valeur attribut
Patrick_35 a répondu à un(e) sujet de azop dans Pour aller plus loin en LISP
Salut Pas besoin de tester si la fonction existe, elle a toujours été présente Et une précision (mapcar 'vla-get-TextString (vlax-invoke obj 'GetAttributes)) Fonctionne aussi avec des blocs sans attributs avec comme résultat nil (logique) @+ -
Salut J'avais indiqué ici ou là une marche à suivre avec l'aide @+
-
Visibilité attributs dans fichier appelé en Xréf
Patrick_35 a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2011
Salut (defun c:atxt(/ ent js n new) (and (setq n 0 js (ssget "x" (list (cons 0 "ATTDEF"))) ) (while (setq ent (ssname js n)) (setq ent (entget ent) new (append (list (cons 0 "TEXT") (cons 1 (cdr (assoc 2 ent))) (cons 73 (cdr (assoc 74 ent))) ) (vl-remove-if '(lambda(x)(member (car x) '(-1 0 1 2 3 5 70 73 74 100 280 330))) ent) ) ) (entmake new) (entdel (cdr (assoc -1 ent))) (and (not (assoc 62 ent)) (assoc 62 (setq ent (entget (entlast)))) (setq ent (subst (cons 62 256) (assoc 62 ent) ent)) (entmod ent) ) (setq n (1+ n)) ) ) (princ (strcat "\nConvertion de " (itoa n) " attribut(s) en texte(s).")) (princ) ) @+ -
Extraire description d'un bloc d'un fichier texte
Patrick_35 a répondu à un(e) sujet de chronos21 dans LISP et Visual LISP
Salut J'avais fait quelque chose en son temps. @+ -
Challenge 34 (liste de substitution)
Patrick_35 a répondu à un(e) sujet de VDH-Bruno dans Pour aller plus loin en LISP
Salut La mienne qui ressemble beaucoup à celle de bryce (defun lsubst (new old lst) (mapcar '(lambda(a / B) (if (and (setq b (vl-position a old)) (< b (length new)) ) (nth b new) a ) ) lst ) ) Et une autre sans la fonction vl-position (defun lsubst (new old lst) (mapcar '(lambda(a / B) (if (and (member a old) (< (setq b (- (length old) (length (member a old)))) (length new)) ) (nth b new) a ) ) lst ) ) @+ -
Salut C'est certain, très belle mécanique et animation. Mais qu'en est-il de cette fameuse abrogation des 100 ch ? @+
-
Tu peux numéroter tes onglets avec RON par exemple et indiquer dans le cartouche avec un champ avec la variable CTAB ps : Toutes mes amitiés lili :D Et bonnes fêtes à tous @+
-
Salut Tu peux utiliser les champs avec les variables d'autocad comme CTAB ps : ton lien est invisible ;) @+
-
attribut de bloc lié avec Z point nodal
Patrick_35 a répondu à un(e) sujet de lolb75 dans Routines LISP
Salut Quelque chose dans ce style ? (defun c:alt(/ blo doc ent sui) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (setq ent (entsel "\nChoisissez le point nodal : ")) (and (setq ent (entget (car ent))) (eq (cdr (assoc 0 ent)) "POINT") (while (and (not sui) (setq blo (entsel "\nChoisissez le bloc associé : "))) (and (setq blo (vlax-ename->vla-object (car blo))) (eq (vla-get-objectname blo) "AcDbBlockReference") (progn (setq sui nil) (foreach att (vlax-invoke blo 'getattributes) (and (eq (strcase (vla-get-tagstring att)) "ALTITUDE") (progn (vla-put-textstring att (cadddr (assoc 10 ent))) (setq sui T) ) ) ) (or sui (princ "\nBloc sans l'étiquette \"ALTITUDE\"")) ) ) ) ) ) (vla-endundomark doc) (princ) ) @+ ps : le temps d'écrire le lisp et la réponse de Didier arrive ;) -
Viewport - fenetre dans espace papier de type polyligne
Patrick_35 a répondu à un(e) sujet de tyrese69_ dans VBA et VB
Salut Tu souhaites connaitre l'ObjectId de la fenêtre pour être en cohérence avec ce message ? (vla-get-objectid (vlax-ename->vla-object ValVP)) ps : je pense comprendre que tu souhaites ressortir toutes les valeurs forcées dans chaque fenêtre (calque gelé, couleur autre, etc...) ? @+
