bru
Membres-
Compteur de contenus
22 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par bru
-
Il me semble avoir déjà résolu ce genre de problème avec la variable measurement. cfr help autocad. [Edité le 26/2/2008 par bru]
-
salut et bienvenue, pose tes question, nous y répondrons (dans la mesure du possible ;^)
-
tout simplement en placant (command "_undo" "_begin") en debut de code et (command "_undo" "_end") en fin de code.
-
il me semble que (ssget) serait meilleur, de telle manière à pouvoir selectionner plusieurs objects
-
je comprends pas très bien la démarche, pourquoi ne pas faire : (command "_insert") ou (si autre commande à faire après): (command "_insert" pause pause pause pause pause) ou (plus joli): (command "_insert") (repeat 5 (command pause)) ou encore (pour les puristes): (command "_insert") (while (= 1 (getvar "cmdactive")) (command pause)) sinon, je conseille d'utiliser (initget) PS: très pratique la variable cmdactive ;-)
-
je ne sais pas à quoi sert vl-list*, mais ca ressemble étrangement à Command: (cons 3 2) (3 . 2) Command: (cons 3 (cons 2 3)) (3 2 . 3) Command: (cons 3 (cons 2 (cons 2 3))) (3 2 2 . 3) Command: (car (cons 3 (cons 2 (cons 2 3)))) 3 Command: (cdr (cons 3 (cons 2 (cons 2 3)))) (2 2 . 3) ceci ressemble étrangement à celà: http://www.ensias.ma/ens/kassou/cours/coursEP/donn_hier1.htm à+
-
attention dans le cas s'une association (8 . "mon_layer"), Command: (cdr '(8 . "mon_layer")) "mon_layer" Command: (cadr '(8 . "mon_layer")) Error: bad argument type: consp "mon_layer" à +
-
usenet : fr.rec.bricolage est très actif (même si certaines personnes sont casses-bonbon ;-) pour lire ces forums: http://www.webatou.net par exemple
-
regen --> regenère la viewport courrante regenall --> regenère toutes les viewpotrs si tu es dans le modelspace : pas de différence visible dans le paperspace: selon l'endroit où tu travailles (paper ou vport), regen va regenerer soit le paperspace soit le viewport courrant
-
ca arrive quand tu dessines une porte (un exemple) dans un fichier vide, que tu en fais un bloc "porte", et que tu l'enregistres sous "porte.dwg". lors de l'insertion du fichier "porte.dwg", le bloc "porte" est redéfini dans le nouveau dessin et fait référence au fichier "porte.dwg"... qui est lui-même composé du bloc "porte". il s'agit alors d'une référence récursive. remède: aller dans le fichier "porte.dwg", exploser le bloc "porte", purger le tout, puis réenregistrer le fichier "porte.dwg" normalement ca devrait marcher
-
l'homme qui revait d'être une hotesse de l'air ?
-
et d'ailleurs, une petite function géniale: (defun sslist (ss / n lst) (if (= 'PICKSET (type ss)) (repeat (setq n (sslength ss)) (setq lst (cons (ssname ss (setq n (1- n))) lst)) ) ) ) avec cela: (mapcar '(lambda (x) (command "_.circle" (cdr (assoc 10 (entget x))) "_diameter" "2.0")) (sslist (ssget '((2 . "bind")))) ) checkez les parrenthèses ;)
-
une impressionnante foire aux questions: http://www.newz.net/acadplus/page5101.htm traduction française de la "FAQ AutoLISP comp.cad.autocad" un peu vieillote mais largement suffisant pour un débutant bonne lecture ;-)
-
(defun c:grouper () (command "_-group" "_create")) (defun c:degrouper () (command "_-group" "_explode")) non ?
-
Pour ceux que cela intéresse: http://xarch.tu-graz.ac.at/autocad/stdlib/html/stdl13xv.htm#entmake je sais que l'on peut trouver les sources de ces functions sur le site xarch, mais je ne parviens plus a mettre la main dessus... à bientôt Bruno
-
tu parles des lignes de codes affichées lors d'erreur, par "étages" depuis la fonction qui a plantée jusqu'au (defun ...), comme sous acad14 ? pour ma part, je trouvais cela bien pratique ;-) ca change des enigmatiques "; error: bad association list: (D)" sais tu comment réactiver celà sous acad2k ?
-
Oui, c'est bien ca que je disais: mais perso, je trouve ca lourd, encombrant, et n'offre aucune souplesse... c'est justement pour cela que je m'oriente vers les entmake: pour son économie de moyens. entmake dépose un element dans un dessin. command est obligé de chambouler l'environnement de travail pour devoir le remettre en place.;; si il le veut bien !
-
Ok! mais alors tu mets un (setvar "cmdecho" 0) ;-) Je ne pense pas: les plines aux encombrants vertex tournent toujours sous 2000. Et il me semble que AutoDESK a une philosophie de compatibilité ascendante: les fonctions vlisp du fait de leur vl- n'ecrasent pas les fonctions autolisp, lui même compatible avec l'ancestral diesel. En effet une lwpolyline ne tournera pas sous AutoCAD 14, mais (command "ucs" "n" "ob") non plus puisque jusqu'en acad14, il fallait faire (command "ucs" "e") si je me souviens bien. 1 partout ;-) DANGER !!! si pour une raison ou pour une autre, l'objet voulu n'est pas crée, (entlast) pointera un autre objet (le VRAI dernier)! on est là pour ca ;-)
-
Sans doute, mais pas si sûr: par exemple: (defun c: tx () (setq l (getvar "clayer")) (setvar "clayer" "my_layer") (command "textstyle" "my_text_style") (command "text" blablabla) (command "textstyle" "previous") (setvar "clayer" l) ) en cas d'erreur, on sort de la routine, le layer et le texstyle courant ont changé, il faut alors redefinir la fonction *error*, du genre: (defun *error* (msg) (if l (setvar "clayer" l)) ( changement de textstyle ) ( que faire en cas d'undo ???) (setq *error* olderror) ) et, evidemment: (setq olderror *error*) et (setq *error* olderror) sans oublier les erreur éventuelles dans *error*, ce qui a pour conséquence de ne pas récupérer la fonction *error* d'origine !!! avec la méthode (entmake): (entmake (list (cons 0 "TEXT") (cons 8 *DIM*) (cons 10 (setq p (getpoint))) (cons 40 textheight) (cons 1 (rtos (roundx 0.1 (cadr p)))) (cons 7 "£-dim") )) ) en cas d'erreur, on sort de la function et c'est tout: l'environnement de travail n'a pas changé. donc pas besoin de gestion d'erreur. c'est propre, très clair! à vrais dire, je trouve que finalement le entmake est plus simple, et beaucoup plus souple, malgré ce qu'il y parrait Deux autres avantages: - les réacteurs: il faut de toutes facon un entmake ou du moins un entmod - avec entmakex, tu récupères l'element crée, que tu peux dont modifier, deleter, ssadder, enfin, plein de truc... ;-) Bruno
-
ah ok! j'ai trouvé, ca fonctionne, il manquait: (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") ce qui n'était pas nécéssaire dans la création des textes ou des lines pour ceux à qui ca intéresse: le code minimal pour une lwpline: (entmake (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 2) ;; nbre de points (cons 10 (getpoint)) (cons 10 (getpoint)) ))
-
Bonjour à tous, J'ai obté pour la programmation de style: (entmake (list (cons 0 "LINE") (cons 10 (getpoint)) (cons 11 (getpoint)) ) ) plutôt que (command "line" (getpoint) (getpoint) "") et ce, pour une très simple raison: plus besoin de se placer dans un layer puis de revenir au précédent, idem pour les osnap, textstyle, et autres machin-bidules une line, ca marche, un texte, ca marche (layer, textstyle, justification, taille) par contre une polyline, là je seche... j'y a mis tous les codes dxf (sauf, le ename, handle) présent dans autre polyline, rien à faire, ca prend pas ! quelqu'un connait-il la subtilité à utiliser dans le cadre de la création d'une polyline par entget ? merci d'avance... Bruno
-
il date de 1958, pour etre précis ... http://deptinfo.unice.fr/~roy/histoire.html
