-
Compteur de contenus
2 764 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Bred
-
lancer une fonction contenue dans une variable
Bred a répondu à un(e) sujet de harksin dans Débuter en LISP
Salut, Je ne comprends pas : quand tu fais un (setq nomdumodule "beton") tu met juste la chaine "béton" dans la variable nomdumodule. "béton" est différent de ta fonction beton Tu as deux possibilités : (defun c:test1 () (princ "test 1") (princ) ) (defun test2 () (princ "test 2") (princ) ) pour appeler test1 : (c:test1) pour appeler test2 : (test2) -
LISP pour creer une presentation depuis une zone de l\'espace objet
Bred a répondu à un(e) sujet de pitt13 dans Routines LISP
... je viens de le tester sur la 2011, ça fonctionnes toujours... (qu'est-ce qu'il est bon le gars qu'à fait ça !) :P - Tu lances CEP - tu sélectionnes un cadre (un bloc) - tu sélectionnes ensuite par une fenêtre de capture tous les cadres que tu veux traiter (si tu les veux dans l'ordre, faut les sélectionner un par un) - tu donnes le nom de l'onglet (ici F00) - tu valides. - tu laisses faire. Pour que tu n'ai pas d'erreur, tu paramètres un onglet (que tu pourras supprimer ensuite) tous comme tu veux : L'imprimante, le zoom, etc... en cadran bien la fenêtre sur un de tes folio. -
LISP pour creer une presentation depuis une zone de l\'espace objet
Bred a répondu à un(e) sujet de pitt13 dans Routines LISP
salut, Ce que tu viens d'expliquer est exactement ce que devrait faire le lisp "CEP". Mais ça fait longtemps qu'il a été fait, et je ne l'ai pas testé sur les dernières.... quelle version d'Autocad utilises tu ? -
Salut, Si ce n'est sur les raccourcis, aucune idée. Par contre, si c'est les outils de modifications, vois pour déverrouiller les calques....
-
Salut, cmdecho permet de ne pas avoir les commandes passer dans le lisp écrient sur la ligne de commande (cela fait plus propre). Par contre, et là ça commence à être un peu plus délicat, c'est que si tu changes la valeur de cette variable, mais qu'il y a une erreur ou une interruption utilisateur pendant le déroulement du lisp (esc), la valeur n'est pas re-initialisé, et tu te retrouve donc avec "plus rien" sur ta ligne de commande.... (et c'est le cas dans tous lisp où tu modifieras des variables). pour éviter ce problème, il faut créer une gestion d'erreur (et c'est d'ailleurs (gile) qui m'a appris comment faire... comme un peu tout -en lisp-) Mais cela est peut-être encore un peu compliqué pour tes premiers lisp, saches tout de même que cela existe. Le seul conseil que je rajouterai (mais pour un code aussi succin ce n'est pas obligatoire... mais cela permet de s'habituer à la lecture/écriture) c'est que tu peux éviter d'écrire tous les (setq.... à la suite : comme cela : (setq L (getreal "\nLongueur baffle: ") Ep (getreal "\nEpaisseur baffle: ") N (getint "\nNombre de baffles: ") Ec (getreal "\nEcartement des baffles: ") P0 (getpoint "\nPt d'insertion PAS: ")) ... et aussi essaye de ne pas écrire des lignes inutiles en remplissant des variables inutilement : remplace (setq P1 (list (+ (car P0) L Ec) (+ (cadr P0) (* N (+ Ep Ec))))) (command "rectangle" P0 P1) par (command "rectangle" P0 (list (+ (car P0) L Ec) (+ (cadr P0) (* N (+ Ep Ec)))))
-
OK, je penses avoir compris, je n'aie pas map mais ça doit être cela : Construit ta liste avec la fonction list (enlève apostrophe avant la " (") : (ade_qrydefine ([b]list[/b] "" "" "" "SQL ([b]list[/b] var1 "SURFACE > 8 AND DESCRIPTION = 'BUREAU'")"")) [Edité le 21/1/2011 par Bred]
-
Salut, c'est assez difficile de te répondre, mais si j'ai bien compris l'erreur doit venir de là : (ade_qrydefine '("" "" "" "SQL" (var1 "SURFACE > 8 AND DESCRIPTION = 'BUREAU'")"")) pour assembler plusieurs chaines ensemble, utilise la fonction "strcat". (strcat "toto" " va " "se promener") = "toto va se promener"
-
Salut, grâce à l'éditeur Visual lisp intégrer à AutoCAD, tu peux compiler tes lisps en un fichier .vlx normalement non re-travaillable.
-
question de structure (CopyObjects)
Bred a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Re, Si j'ai bien tout suivi, ton but est donc de faire un déplacer, mais comme tu dois traiter un très grand nombre d'objet, tu passe par la création de bloc constitué de toute tes entités que tu déplace puis explose ? Si c'est cela, je pense que tu fais en partie fausse route : ce qui ralenti le déplacement d'un objet est je pense en premier lieu l'affichage. Je n'ai pas essayer, mais pour passer outre l'affichage, l'un des moyens est de ne plus afficher tes objets à l'écran au moment du déplacement et du "raffichage". Voir de travailler sur ton fichier sans l'ouvrir grâce aux fonctions ObjectDbx (http://www.cadxp.com/sujetXForum-13402.htm) -
question de structure (CopyObjects)
Bred a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Re, j'avoue ne pas comprendre ta question alors.... Que cherches-tu a faire exactement ? (PS : nous sommes bien d'accord que tu es dans le forum lisp ?) -
question de structure (CopyObjects)
Bred a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Salut, Tu veux donc faire un déplacer mais en changeant le handle de ton entité ? En autolisp, commande copier puis effacer. en vl : vla-copy puis vla-delete. [Edité le 20/1/2011 par Bred] -
Salut, Commande "Distance" (ou "di")
-
... faites un peu attention.... :( ...ou une solution parmi d'autre : tu fais "glisser" le fichier dans ta fenêtre graphique.
-
Tapes dessus avec ta tête.... ou alors relis les messages précédent.. c'est un fichier crypté, illisible. Mais si tu veux vraiment l'ouvrir, fait le avec l'éditeur de texte.... tu comprendras mieux alors.... (tu changes le .vlx par .txt)
-
Non, c'est une commande à part. Jai remarqué que pour l'orbite, il faut essayer de mettre l'ensemble du plan vers la 0.0.0 du SCG. Cela à toujours été pour moi.
-
Salut, Regarde dans l'aide "PLANDECOUPE".
-
Salut et bienvenue, Tu lance l'outils echelle, et à partir du point d'insert du bloc tu met un facteur de 0.01. si tu inserts les blocs, tu peux changer le facteur d'échelle à l'insertion dans le contrôle des unités (UNITES)
-
salut, Pour vérifier sur quelque calque est un objet, tu clic dessus, le calque de l'objet sera afficher sur le menu déroulant des calques. Pour vérifier si plusieurs objets (différents ?) sont sur le même calque, ben ça fait parti du travail du dessinateur de le faire à la création.... comment veux-tu vérifier une multitude d'objets différents éparpillés, dans un dessin ayant une multitude d'objets sur des calques différent ??? Tu peux à l'envers vérifier quel objet sont un calque avec la sélection rapide comme décrit plus haut, que vouloir de "plus automatique" ?
-
Salut, Ah ! ça c'est déjà un très bon point en comparaison au vb.net !.... Merci pour tous ces renseignements.
-
Salut, merci (gile), et tu as raison d'être pointilleux sur le vocabulaire, c'est plus parlant. Bravo pour la routin, et le test de la paire pointé est tellement simple que je m'en veux de ne pas y avoir pensé ! (or (and (atom (cdr x)) (= (cdr x) ele)) Encore merci à tous.
-
Salut, Merci pour l'idée, c'est en effet une solution.
-
... ah, zut, je coince. ça ne fonctionne pas si il y a des paires pointés... (member "U" (cons 1 "U")) = erreur....
-
... merci, mais il y a plus simple en fait : (defun assoc-full (el lst / x) (vl-remove-if '(lambda (x) (not (member el x))) lst) )
-
... j'en avais un autre mais je n'arrive pas à enlever la valeur nil de la liste.... (defun assoc-full (el lst /) (mapcar '(lambda (x) (if (member el x) x)) lst) ) (assoc-full "U" (list '(1 "U" 4) '(6 8 "U") '(5 2 8))) = ((1 "U" 4) (6 8 "U") nil)
-
Salut, je viens de faire ça, c'est pas compliqué mais ça peut-être utile je pense : (et si vous avez "plus beau...) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Assoc sur tous les éléments des sous-listes ; ; -> (assoc-full "U" (list '(1 "U" 4) '(6 8 "U") '(5 2 8)))= ((1 "U" 4) (6 8 "U")); (defun assoc-full (el lst / x) (foreach n lst (if (member el n) (setq x (append x (list n))))) x )
