-
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
-
Projet de routines dans plusieurs domaines...
Patrick_35 a répondu à un(e) sujet de DenisHen dans Routines LISP
Bonjour à tous Il est évident que le principal reste le lisp. Mais avoir un menu, des rubans, voir une boite de dialogue qui recense les lisps, ça en jette quand même. Et cela facilite aussi l'utilisateur, qui sait ce qu'il a, à sa disposition. @+ -
Comment savoir si une variable est un nombre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Alors la fonction READ est ton amie Par exemple (mapcar 'type (list (read "123") (read "123.456") (read "Test"))) @+ -
Comment savoir si une variable est un nombre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Il manque un quote (defun c:testechelle ( / ech1) (setq ech1 200) (if (and (= (type ech1) 'INT) (> ech1 0)) ;_ Fin:and (princ "\nNombre strictement supérieur à 0") (princ "\nCe n'est pas un nombre ou inférieur ou égale à 0") ) ;_ Fin de if (princ) ) ;_ Fin de defun @+ -
Comment savoir si une variable est un nombre
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Avec la fonction TYPE Par exemple (setq var1 0 var2 0.0 var3 "Test" ) (mapcar 'type (list var1 var2 var3)) @+ -
[Résolu] Comment décaler une polyligne ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Un exemple qui décale une polyligne existante de 5.0 (setq poly (vlax-ename->vla-object (car (entsel)))) (vlax-invoke poly 'offset 5.0) ; Pour décaler d'un coté (vlax-invoke poly 'offset -5.0) ; Pour décaler de l'autre coté @+ -
Salut Tu peux utiliser la fonction entmake avec les codes dxf Un exemple @+
-
[Résolu] Publication d'une présentation sur plusieurs feuilles
Patrick_35 a répondu à un(e) sujet de 0.o ? dans AutoCAD 2017
Salut Tu peux utiliser ce lisp qui génère les mises en pages (onglets). Ensuite, tu peux te servir de la commande publier ou bien des lisps comme par exemple MPL qui recopie la mise en page d'une présentation (onglet) vers d'autres présentations. @+ -
Comment savoir si un Lisp existe avant de le charger ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Tu as raison (gile). J'avais oublié qu'on pouvait le faire directement. @+ -
Comment savoir si un Lisp existe avant de le charger ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Pour savoir si une fonction lisp est chargé en mémoire (eval ma_fonction) Par exemple avec le lisp CAT (if (eval c:cat) (alert "Lisp CAT déjà chargé")) @+ -
Tu as raison :D @+
-
[Résolu] Problème de majuscule dans un ssget
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut On peut e,core simplifier en utilisant (cons 0 "*TEXT") @+ -
Salut Pas mieux que Lili @+
-
Salut C'est en utilisant quelle fonction ? @+
-
Retour d'une application externe
Patrick_35 a répondu à un(e) sujet de Fraid dans Pour aller plus loin en LISP
Salut Je ne sais pas quelle valeur tu attends en retour, mais tu peux aussi verifier si le process est toujours actif. Un exemple qui détruit un process en cours... (defun kill(qui / item meth1 meth2 obj WMI) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_Process") ) (vlax-for item meth2 (and (setq obj (vlax-get item 'CommandLine)) (vl-string-search (strcase qui) (strcase obj)) (if (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke (list item 'Terminate))) (vlax-invoke item 'Terminate) ) ) ) (foreach item (list WMI meth1 meth2) (vlax-release-object item) ) ) Par exemple (kill "PDFCreator.exe") @+ -
Bonjour Bonne année et bonne santé à vous tous. que 2018 vous apporte le bonheur pour vous et vos proches. Didier, tu as ce site. @+
-
Quelle est la valeur des attributs ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut @Denishen Je pense que maintenant, tu es plus qu'un novice, au vu de ce que tu partages. Tu es mure pour comprendre les fonctions type mapcar, lambda, etc... @+ -
Quelle est la valeur des attributs ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
mapcar est une boucle lambda définit une fonction anonyme Si par exemple, je souhaite ajouter 1 à tous les éléments de cette liste '(1 2 3 4 5), je fais (mapcar '1+ '(1 2 3 4 5)) Maintenant, si je souhaite ajouter 2, je fais (mapcar '(lambda(x) (+ x 2)) '(1 2 3 4 5)) @+ -
Quelle est la valeur des attributs ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Tu as raison mon crabinou On peut aussi faire ceci (mapcar '(lambda(x) (vlax-get x 'textstring)) (vl-remove-if-not '(lambda(x) (vl-position (vla-get-tagstring x) '("PROF" "ZGS"))) (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'getattributes))) @+ -
Quelle est la valeur des attributs ?
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Regarde la fonction getpropertyvalue @+ -
Bonjour Bravo Didier. Tu te lances dans un sacré projet. Le site est prometteur et si tu vas au bout, il va devenir une référence. @+
-
[Résolu] Comment savoir si une valeur est dans une liste
Patrick_35 a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut Tu as aussi la fonction vl-position. @+ -
Salut Je veux bien un exemple. A tout hasars, je met la dernière version (defun c:grf(/ att bg col dirbox dix diy doc eh fen hd KillBigFont lay lcr lst obj old px py rep rgn sel sui tab tot x y) (defun dirbox(txt / cdl rep) (if (setq cdl (vlax-create-object "Shell.Application")) (progn (and (setq rep (vlax-invoke cdl 'browseforfolder 0 txt 512 "")) (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path)) ) (vlax-release-object cdl) ) ) rep ) (defun KillBigFont (stname / ) (setq styl (tblobjname "style" stname)) (setq stlist (entget styl)) (entmod (subst (cons 4 "")(assoc 4 stlist) stlist)) (entupd styl) (princ) ) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) col 1 tot 1 x 0.0 y 0.0 eh 1.0 ; Scale rgn (getvar "LAYOUTREGENCTL") lcr (getvar "LAYOUTCREATEVIEWPORT") ) (vla-startundomark doc) (and (setq rep (dirbox "Sélectionnez le répertoire pour grouper les folios")) (setq lst (vl-directory-files rep "*.dwg" 1)) (progn (setq rep (vl-string-translate "\\" "/" rep) old (layoutlist) ) (or (eq (substr rep (strlen rep) 1) "/") (setq rep (strcat rep "/"))) (setvar "LAYOUTREGENCTL" 0) (setvar "LAYOUTCREATEVIEWPORT" 0) (foreach ele (acad_strlsort lst) (setq obj (vla-insertblock (vla-get-modelspace doc) (vlax-3d-point (list x y 0.0)) (findfile (strcat rep ele)) 1 1 1 0 ) ) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'bg 'hd))) (vlax-for sui (vla-get-textstyles doc) (or (eq (vla-get-bigfontfile sui) "") (findfile (vla-get-bigfontfile sui)) (KillBigFont (vla-get-name sui)) ) ) ) (vla-getboundingbox obj 'bg 'hd) (setq bg (vlax-safearray->list bg) hd (vlax-safearray->list hd) dix (- (car hd) (car bg)) diy (- (cadr hd) (cadr bg)) px (* dix 1.05) py (* diy 1.05) lay (itoa tot) ) (while (< (strlen lay) 2) (setq lay (strcat "0" lay)) ) (or (vl-catch-all-error-p (setq sel (vl-catch-all-apply 'vlax-invoke (list obj 'explode)))) (vla-delete obj) ) (and (vl-catch-all-error-p (vl-catch-all-apply 'vla-add (list (vla-get-layouts doc) lay))) (ssget "x" (list (cons 410 lay))) (progn (vlax-map-collection (setq sel (vla-get-activeselectionset doc)) 'vla-delete) (vla-delete sel) (setq old (vl-remove lay old)) ) ) (vla-put-activelayout doc (setq tab (vla-item (vla-get-layouts doc) lay))) (setq fen (vla-addpviewport (vla-get-block tab) (vlax-3d-point (mapcar '(lambda(a B) (/ (+ a B) 2.0)) '(0.0 0.0 0.0) (list dix diy 0.0))) dix diy)) (vla-put-layer fen "0") (vla-put-color fen "256") (vla-put-viewporton fen :vlax-true) (vla-zoomextents (vlax-get-acad-object)) (vla-display fen :vlax-false) (vla-display fen :vlax-true) (vla-put-mspace doc :vlax-true) (vla-zoomWindow (vlax-get-acad-object) (vlax-3d-point bg) (vlax-3d-point hd)) (vla-put-customscale fen eh) (vla-put-mspace doc :vlax-false) (vla-put-displaylocked fen :vlax-true) (setq tot (1+ tot) col (1+ col) x (+ x px) ) (and (eq col 11) (setq x 0.0 y (+ y py) col 1 ) ) ) (setvar "LAYOUTREGENCTL" rgn) (setvar "LAYOUTCREATEVIEWPORT" lcr) (foreach lay old (vla-delete (vla-item (vla-get-layouts doc) lay)) ) (vla-purgeall doc) ) ) (vla-endundomark doc) (princ) ) @+
-
Salut Tu as deux modifs à faire. Ensuite, pour les blocs imbriqués, c'est normal car le nom du bloc imbriqué n'est pas le même que celui qui est inséré. Donc pas de changement car la sélection se fait par nom. @+
-
Salut Peut-tu nous donner un exemple qui ne fonctionne pas avec Grf ? @+
-
Salut Tu remplaces (member (vla-get-name bl) lst) par (member (nombl bl) lst) @+
