Carboleum
Membres-
Compteur de contenus
228 -
Inscription
-
Dernière visite
-
Jours gagnés
2
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Carboleum
-
Ok, j'ai trouvé: <F12> et DYNMODE à une valeur négative. Merci encore
-
Oui, quand on connait les nom des images. Et puis, au nombre de clics, ca tient pas la route ;-) une solution consisterai à réécrire la commande _erase dans le genre: parcours de la sélection, si c'est une image -> xdetach, sinon erase. C'est pas très compliqué, mais si une autre solution existe ?... avant que je ne m'y attèle. En tous cas, merci Steven
-
Merci à vous deux, J'ai pas trouvé le DYN dans la barre d'en bas, mais je dois être trop réfractaire aux clicodrômes ;-) Par contre, tu m'as mis sur la voie, en tapant DYN, j'ai découvert la variable DYNMODE que j'ai mise à zéro. Ha! vive l’auto-complétion! Concernant le #, ce sera bien utile dans la programmation de petites macros de dessin. A ce propos, comment réagit les anciennes version d'autocad à ce # ? Je voudrais vérifier la compatibilité ascendante, mais je n'ai que des <= 2009 sous la main. A bientôt, Bruno
-
Hello, A chaque fois que je supprime une image, acad me demande si je veux détacher mon image. (cfr pièce jointe) Or, j'ai beaucoup d'images et OUI, je veux détacher les images que je supprime. Seulement, il faut répondre pour chaque image. J'ai des images composées de tiles (tuile en français ?) parfois très nombreuses. Je voudrais répondre OUI une fois pour toutes... Est-ce géré par une variable système ? Une option quelque part ? Ou est-ce qu'il faut travailler avec des réacteurs ? Merci, Bruno
-
Bonjour, Je me suis aperçu que acad2012 ajoute systématiquement un @ à chaque entrée de coordonnées à la main. Or bon, mes coordonnées ne sont pas relatives... ce sont des coordonnées, qui commencent à zéro,zéro. J'ai essayé en tapant *12,12 ca fonctionne, mais j'imagine que ça fonctionne par rapport au scu général. Je cherche donc à pouvoir rentrer des coordonnées absolues dans l'ucs courant. Existe-il une variable système gérant cela ? Merci d'avance, Bruno
-
CTRL-W ?
-
Routine compatible toutes version Autocad ?
Carboleum a répondu à un(e) sujet de stugeol dans Débuter en LISP
Utiliser les _ + commandes anglaises: (command "_line" ...) à la place de (command "ligne" ...) -
comment faire une fonction si?
Carboleum a répondu à un(e) sujet de fiesta13310 dans Débuter en LISP
non! progn permet juste de rassembler plusieurs expressions lisp en une seule. Tu l'utiliseras quand tu veux exécuter plusieurs actions dans un if. En effet la fonction if a 3 arguments: (if <condition> <action si ok> <action sinon>) si tu veux exécuter plusieurs action si ok, tu les regroupe dans un progn. Par contre si tu as plusieurs condition en même temps; tu dois utiliser la fonction and dans les conditions. ce qui donne: (if (and <condition 1> <condition 2>) (progn <action si ok 1> <action si ok 2> ...) (progn <action sinon 1> <action sinon 2> ...)) -
comment faire une fonction si?
Carboleum a répondu à un(e) sujet de fiesta13310 dans Débuter en LISP
tu peux imbriquer les if: (if (< n1 n2) ; alors: (if (= 0 a) ; alors: (progn ...) ; sinon: (progn ...) ) ; end if ; sinon: (progn ...) ); end if -
comment faire une fonction si?
Carboleum a répondu à un(e) sujet de fiesta13310 dans Débuter en LISP
Pas besoin de cond ni de if pour celà: (setq L1 (+ (* A 0.2))) -
Récupérer les valeurs des edit_box
Carboleum a répondu à un(e) sujet de bidouille37 dans Débuter en LISP
Tu dois faire calculer u au moment du click sur "Ok" (defun c:test (/ Id Mmax ht bw fcd) (defun analyse_contenu_dcl () (setq Mmax (atof(get_tile "Mmax"))) (setq ht (atof(get_tile "ht"))) (setq bw (atof(get_tile "bw"))) (setq fcd (atof(get_tile "fcd"))) (setq u (+ Mmax ht bw fcd)) (alert (strcat"La valeur du moment réduit est de " (rtos (float u)))) ) (setq Id (load_dialog "test.dcl")) (new_dialog "main" Id) (action_tile "accept" "(analyse_contenu_dcl)") (start_dialog) (unload_dialog Id) (princ) ) (pas testé, mais le principe est bon) -
Sélectionner des poignées au-dessus d'une image
Carboleum a répondu à un(e) sujet de DaWeeD_Gab dans AutoCAD 2012
La réponse ne serait-elle pas ici? ;-) -
[Résolu] Remise à zéro de la largeur des polylignes
Carboleum a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Peux-tu mettre un lien d'ici vers ce post ? -
en même temps, le midi est plutôt au sud... ok je sors -->[] ;-)
-
[Résolu] Remise à zéro de la largeur des polylignes
Carboleum a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Ben ca avance, non?! ;) J'ai une bonne nouvelle pour toi: si tu fais ceci, tu garderas les options de la commande pline (setvar ...) (command "pline") (while (/= 0 (getvar "cmdactive")) (command pause)) (setvar ...) à ce propos, il y avait une erreur dans mon code précédent: (while (getvar "cmdactive") ...) ne s’arrête jamais car (getvar "cmdactive") renvoie soit 1 soit 0 et jamais nil! pour les error, le principe est de redéfinir la fonction *error*. Cette fonction est appelée dès l'interpréteur Lisp rencontre une erreur. Il suffit de redéfinir la fonction *error* avec (setvat "épaisseur polyline" 0) /!\ Il s'agit d'une erreur liée à ta fonction et DOIT être locale à ta fonction. Le schéma est le suivant: (defun ma_fonction (arg1 arg2 / var1 var2 *error*) ; /!\ *error* DOIT être locale /!\ ; gestion des erreurs (defun *error* (msg) (setvar "épaisseur polyline" 0) (print msg)) ; gestion de l'environnement de travail (setvar "épaisseur polyline" épaisseur_choisie) (command ....) ; la fonction proprement dite (while ....) ; retour à l'environnement initial (setvar "épaisseur polyline" 0) ) Il existe des structures (defun my_error ...) (defun my_function () (setq *olderror* *error* *error* my_error) ..... (setq *error* *olderror*) ) mais je trouve ca un peu lourd. edit: Bryce a été plus rapide que moi ;-) -
[Résolu] Remise à zéro de la largeur des polylignes
Carboleum a répondu à un(e) sujet de Karmelie dans Débuter en LISP
ok au temps pour moi. remplaces setvar par getvar -> (getvar "cmdactive") et comme t'es en français, ajoute un _ devant le pline -> (command "_pline") -
Avec des explications et illustrations comme celle-ci, c'est en effet assez simple. Merci!
-
[Résolu] Remise à zéro de la largeur des polylignes
Carboleum a répondu à un(e) sujet de Karmelie dans Débuter en LISP
Comme l'a remarqué Bryce, le problème vient du fait que tu ne sors pas correctement de la commande "pline". (setvar "plinewid" qqch) (command "pline" (setq p (getpoint "\nFirst :"))) (while (setvar "cmdactive") (command (setq p (getpoint "\nNext :" p)))) ; tant que la commande pline est active, la routine attend un point (command "") ; ici on sort de la commande pline (setvar "plinewid" 0) Après il y a la gestion des erreurs, mais ca c'est une autre histoire ;-) -
Quoi vous avez fait un bbq sans moi ?!?? ;-)
-
À côté du feu avec une flammekueche et un gewurztraminer, il fait toujours chaud. :-D
-
C'est parce que c'est pas une commande. Voici un raccourci qui te servira de commande: (defun c:killpolice () (bl:mtext-killpolice (car (entsel)))) La commande est alors killpolice
-
Un petit up pour ce post: Je voudrais pas avoir l'air d'insister, mais les RSS, ca serait vachement bien. ;-)
-
tu nous invites pour un petit barbec ?
-
J'ai ce qu'il te faut: (defun bl:mtext-killpolice (entity / object string regex newstring) (or vlax-create-object (vl-load-com)) (setq object (vlax-ename->vla-object entity)) (setq string (vla-get-textstring object)) (setq regex (vlax-create-object "vbscript.regexp")) (vlax-put-property regex 'pattern "\\{\\\\f[^;]+;([^}]+)}") (vlax-put-property regex 'global :vlax-true) (setq newstring (vlax-invoke-method regex 'replace string "$1")) (vlax-release-object regex) (vla-put-textstring object newstring)) (vla-get-textstring (vlax-ename->vla-object (car (entsel)))) te montrera comment AutoCAD identifie les passages de textes dont la typologie a été forcée. La police est forcée via la structure {\\f...;texte dont la police est forcée}. Avec une expression régulière, il est possible de supprimer le {\\f...; et le } Attention s'il y a un } dans ton texte, ca va merder. PS/ est-ce qu'un modo pourrait déplacer ce sujet vers le forum ad hoc (Pour aller plus loin en Lisp), merci :-)
-
A ce propos: toujours pas de RSS actif ?
