MiniMinus
Membres-
Compteur de contenus
25 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par MiniMinus
-
OK et merci pour les réponses. Je vais devoir me mettre aux raccourcis. Moi qui ne voulait pas de trop (c'est plus dur de pianoter que de glisser la souris !! lolll) mais tout le monde me le dit pour tous les programmes alors je vais m'y coller. Encore merci MiniMinus
-
Bonjour, Cela fait deux fois que cela arrive : les icones sont remplacées par des carrés noirs dans l'éditeur LISP. Aurrais-je tapé une mauvaise commande ou un marabout m'aurait-il jeté un sort ?La première fois, j'ai réinstallé Autocad mais là, je préfère plus. A L'AIDE !!!! MiniMinus
-
Coordonnées relatives ou absolues
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci à tous les deux L'ignare que je suis, ne connaissais pas "OSMODE". Encore une chose que j'ai apprise. Je progresse, je progresse... Encore vingt ans et je pourrais passer à cinquante lignes de programme. MiniMinus -
Bonsoir à tous Avant toute chose, pourrait-on me dire ce que signifie l'apostraophe ( ' ) devant certaines données. Ceci étant fait, j'ai fait un petit programme pour dessiner un poteau (à partir de mon fichier txt des profils) vu de profil (c-à-d 2 lignes d'épaisseur d'aile à equidistance de l'axe), mais je n'arrive pas à avoir le bon dessin. Mes lignes ne sont pas toutes parallèles alors que les points de coordonnées sont exacts. Quelqu'un pourrait-il me dire si c'est une question de coordonnées absolues ou relatives et comment remédier à ce problème? Merci d'avance MiniMinus PS : je sais qu'il y a moyen de faire plus court mais pour l'instant j'essaye surtout que cela marche correctement. (je ferais des oeuvres d'art plus tard :D ) Programme : (defun LireFic (); / choix Profil x MonFic) (setq MonFic "C:/Documents and Settings/Manuel/Application Data/Autodesk/AutoCAD 2004/R16.0/fra/Support/Fichier_Profils.txt") (setq x (open MonFic "r")) (setq choix (getstring "Le profil :")) (while (/= choix Profil) (setq Profil (read-line x)) (if (= Profil "fin") (progn (princ "Profil non répertorié !!!") (close x) (exit) ) ) (setq Haut (read-line x)) (setq Large (read-line x)) (setq Ame (read-line x)) (setq Aile (read-line x)) (setq Conge (read-line x)) ) (close x) (princ) ) (defun main (); / l1 l2 l3 h1 h2 h3 X1 X2 Y1 Y2 Xtemp Ytemp) (setq P1 (getpoint "1er point :") P2 (getpoint P1 "2ème point :") X1 (car P1) Y1 (cadr P1) X2 (car P2) Y2 (cadr P2)) (if (< Y2 Y1) (setq Xtemp X1 Ytemp Y1 X1 X2 Y1 Y2 X2 Xtemp Y2 Ytemp) ) (setq l1 0 h1 0 l2 0 h2 0 l3 0 h3 0) (LireFic) (setq l1 (- X2 X1) h1 (- Y2 Y1) alpha (atan h1 l1)) (setq alpha (- (/ pi 2) alpha)) (setq l2 (* (/ (atof Haut) 2) (cos alpha))) (setq h2 (* (/ (atof Haut) 2) (sin alpha))) (setq l3 (* (- (/ (atof Haut) 2) (atof Aile)) (cos alpha))) (setq h3 (* (- (/ (atof Haut) 2) (atof Aile)) (sin alpha))) (princ (strcat (rtos l2) " " (rtos h2) "===" (rtos l3) " " (rtos h3))) (setq P3 (list (- X1 l2) (+ Y1 h2))) (setq P4 (list (- X2 l2) (+ Y2 h2))) (setq P5 (list (- X1 l3) (+ Y1 h3))) (setq P6 (list (- X2 l3) (+ Y2 h3))) (setq P7 (list (+ X1 l3) (- Y1 h3))) (setq P8 (list (+ X2 l3) (- Y2 h3))) (setq P9 (list (+ X1 l2) (- Y1 h2))) (setq P10 (list (+ X2 l2) (- Y2 h2))) (command "_line" P1 P2 "") (command "_line" P3 P4 "") (command "_line" P5 P6 "") (command "_line" P7 P8 "") (command "_line" P9 P10 "") (princ) )
-
Merci à tous Pour ma part, j'ai choisi pour le moment la solution à Patrick_35 qui est la plus simple pour moi qui veut me contenter pour l'instant d'AutoLISP. J'ai mis le mot "fin" à la fin de mon fichier pour le tester même quand je rajoute des profils. Ce ne doit pas être la méthode la plus orthodoxe mais pour l'instant j'en suis encore aux balbutiements. MiniMinus
-
Merci à tous pour vos différentes réponses. l faut maintenant que j'étudie tout cela (des maux de tête en perspective !!!). Hier, j'avais retenu la solution de Patrick_35 (qui marche très bien) mais seulement il me faut lire 6 lignes par profil or je ne voudrais en lire qu'une seule par profil. La solution de BonusCad me semble prometteuse car je me retrouve alors avec le nom du profil puis une liste avec ses caractéristiques. Pour une recherche avant extraction, cela devrait être plus rapide. Une petite question subsidiaire : quelles sont les limites d'un programme pour qu'il puisse tourner sous LT ? En effet, je crée mes routines sous version complète (ce qui est évident !! loll) mais elles devront principalement tourner sous version LT. MiniMinus
-
Bonsoir à toutes et à tous Quelqu'un peut-il me dire comment écrire un fichier avec le bloc-note pour que le petit programme ci-dessous puisse le lire ? Je n'arrive pas à séparer le nom du profil de ses mensurations. Le programme me met l'erreur suivante : ; erreur: type d'argument incorrect: consp "IPE80 80 46 3.8 5.2 5". J'ai essayé en mettant des parenthèses, des apostrophes, des virgules mais rien n'y fait. Merci MiniMinus Routine : (defun c:LireFic () (setq MonFic "C:/Documents and Settings/Manuel/Application Data/Autodesk/AutoCAD 2004/R16.0/fra/Support/Fichier_Profils.txt") (setq x (open MonFic "r") ct 0) (while (< ct 43) (setq Profil (read-line x)) (princ Profil) (princ "\n") (setq debut (car Profil)) (princ debut) (setq ct (1+ ct)) ) (close x) (princ) ) Fichier : (du moins quelques lignes seulement mais il en compte 42) IPE80 80 46 3.8 5.2 5 IPE100 100 55 4.1 5.7 7 IPE120 120 64 4.4 6.3 7 IPE140 140 73 4.7 6.9 7 IPE160 160 82 5.0 7.4 9
-
Merci pour les réponses. Je vais essayer de voir ça ce soir (il est 6h). Patrick, voici en faite le fichier que je voudrais me constituer : ("Profil","Largeur","Hauteur","Aile","Ame","Congé"). Seul "Profil" serait alphanumérique et cela me servirait à dessinait des attaches, profils,..en entrant seulement le nom du profil. Je n'y mettrais que les plus courants (IPE, HEA,UPN) quitte à les faire choisir dans une boîte de dialogue. Encore merci à tous. MiniMinus
-
Bonjour, Je voudrais créer un fichier de données utilisable dans mes routines, dont chaque enregistrement aurait à peu près la forme suivante : ("nom", "val1", "val2", "val3","val4", "val5"). Ce fichier aurait un nombre fini d'enregistrements. Aussi voilà ma question : vers quel genre de commandes dois-je me diriger pour étudier la question ? Je voudrais aussi que mon fichier soit accessible à chaque nouvelle application (dessin). Quelqu'un peut-il me diriger dans l'une ou l'autre direction ? Je ne demande pas une routine mais plutôt vers quel paragraphe de l'aide me diriger et peut-être une petite explication du principe. Merci à tous ceux qui me répondront et bonsoir à tous. MiniMinus :casstet:
-
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci BonusCad Je vais étudier ton programme mais seulement ce week-end car je n'aurais pas assez de temps avant. (Si je veux bien comprendre, je dois prendre mon temps ! Que veux-tu ! C'est ça les vieux !). Ton programme est plus conséquent que mes petites routines, du moins par rapport à ma connaissance du langage. Encore merci @+ MiniMinus -
Jouer avec les arguments ou sans ?
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Tout d'abord merci à vous deux. Gile je peux te dire que tu avais été clair mais c'est certainement moi qui n'avait pas compris qu'avec "c:fonction" , on ne pouvait pas donner d'argument (toujours la fatigue car ENORMEMENT de boulot plus apprendre le LISP !!!!). Mais ce coup-ci la leçon est retenue. Merci également Tiboulen pour le racourci. Je l'avais remarqué après avoir écrit mes routines et comme c'était le passage d'argument qui me gênait, je n'avais rien changé. Pour ce qui est d'écrire des fonctions d'une ligne, il est dit "Qu'il faut diviser pour régner". Aussi je crée des petites routines que je peux manipuler plus facilement et ainsi mieux les comprendre. Mais ne vous en faites pas, quand je veux les utiliser vraiment, j'insère simplement la ligne de code dans le programme. Je trouve que c'est plus facile pour moi cerner le langage au début. En tous cas, cela réchauffe le coeur de ne pas se sentir seul dans cette froide jungle du langage informatique. MiniMinus -
Voilà les petites routines que j'ai concoctées pour pouvoir faire appel à un calque avant de créer un objet puis remettre l'ancien actif. Seulement, si je mets "Nom1" en argument, cela bloque. Par contre telles qu'elles sont là, elles fonctionnent très bien. Quelqu'un peut-il m'expliquer pourquoi ? Merci et bonne journée à tous MiniMinus -------------------------------------------------------------------------------------------- Sans arguments... (defun c:Chang_Calq () (setq Nom1 (getstring "Nom du calque :")) (setq old_lay (getvar "clayer")) (if (not (tblsearch "LAYER" Nom1)) (c:creer_calq) (setvar "clayer" Nom1) ) (princ) ) (defun c:Remet_Calq ( ) (setvar "clayer" old_lay) ) (defun c:creer_calq ( ) (command "_layer" "E" Nom1 "CO" 3 "" "") ) ------------------------------------------------------------------------------------------------------------- ... et avec argument: (defun c:Chang_Calq (Nom1 / ) (setq Nom1 (getstring "Nom du calque :")) (setq old_lay (getvar "clayer")) (if (not (tblsearch "LAYER" Nom1)) (c:creer_calq) (setvar "clayer" Nom1) ) (princ) ) (defun c:Remet_Calq ( ) (setvar "clayer" old_lay) ) (defun c:creer_calq ( Nom1 / ) (command "_layer" "E" Nom1 "CO" 3 "" "") )
-
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile, pour l'explication. J'ai cependant trouvé sans consulter l'aide en anglais. Ma femme est américaine et j'en ai parfois marre de l'anglais surtout pour le côté technique. Simplement avec un peu de logique, beaucoup d'essais et de l'observation, on y arrive aussi parfois. Je voulais te demander : t'es tout seul sur ce site ? Il n'y a que toi à me répondre ! loll Je plaisante. Je te souhaite une bonne soirée et encore merci pour ton aide et ta disponibilité. MiniMinus -
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
A tous et particulièrement à Gile, Merci car j'apprends beaucoup avec vous. J'ai donc trouvé mon erreur. Il ne faut pas mettre l'appel de la fonction "BlsFace" dans "progn" mais après le "unload_dialog". Ok j'ai résolu ce tout petit problème (ce qui n'est pas un grand exploit) mais je ne peux pas expliquer pourquoi. Si quelqu'un peut me l'expliquer, il est le bienvenu. J'ai bien une petite idée que je vous soumet pour ce qu'elle vaut : tant que la boîte de dialogue n'est pas fermée, les variables ne sont pas véritablement mises à jour. Bon dimanche à tous. MiniMinus -
Erreur: type d\'argument incorrect
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile, Mais je ne comprends pas car ma variable "Dia_Cho" prend bien la valeur dont j'ai besoin. C'est au passage à la fonction "BlsFace" que cela bloque. Après l'appel "(BlsFace Dia_Cho)", ma variable "Dia_Cho" a bien la valeur 24 (en exemple) mais la variable "Dia" est à "nil". Même avec des réels. J'ai quand même essayé ta façon et cela ne marche pas ! Il est des mondes où tout n'est qu'illusions, je crois !!! Pas facile le LISP. MiniMinus -
Salut Dans le programme ci-dessous, lors de l'appel de la fonction "BlsFace", je reçois le message d'erreur suivant : "; erreur: type d'argument incorrect: numberp: nil". Alors que je peux manipuler la variable "Dia_Cho" en la multipliant,.. je n'arrive pas à la transmettre à l'argument "Dia". Je vois bien que c'est une erreur de type mais je n'arrive pas à la cerner. Quelqu'un pourrait-il eclaircir ma lanterne. D'avance merci. MiniMinus Programme : (defun C:DesBls (/ dcl_id ) (setq dcl_id (load_dialog "Diametre.dcl")) (if (not (new_dialog "Info_Diametre" dcl_id)) (exit) ) (action_tile "choix" "(Quel_Dia $value)") (action_tile "accept" "(progn (BlsFace Dia_Cho ) (done_dialog) )" ) (start_dialog) (unload_dialog dcl_id) (princ) ) ( defun BlsFace ( Dia / Axe DemAxe Cent XCent YCent PoinHa PoinBa PoinGa PoinDo ObjCer ) (setq Axe (+ Dia 20) DemAxe (/ Axe 2) Cent (getpoint "Entrer le centre du boulon : ") XCent (car Cent) YCent (cadr Cent) PoinHa (list XCent (+ YCent DemAxe)) PoinBa (list XCent (- YCent DemAxe)) PoinGa (list (- XCent DemAxe) YCent) PoinDo (list (+ XCent DemAxe) YCent)) (command "_line" PoinHa PoinBa "") (command "_line" PoinGa PoinDo "") (command "_circle" Cent (/ Dia 2)) (setq ObjCer (entlast)) (command "_.hatch" "_s" ObjCer "") (princ) ) (defun Quel_Dia (quel / ) (cond ((= quel "dix") (setq Dia_Cho 10)) ((= quel "dou") (setq Dia_Cho 12)) ((= quel "sez") (setq Dia_Cho 16)) ((= quel "vin") (setq Dia_Cho 20)) ((= quel "qua") (setq Dia_Cho 24)) ((= quel "sep") (setq Dia_Cho 27)) ((= quel "tre") (setq Dia_Cho 30)) ) ) Boîte de dialogue : Info_Diametre : dialog { label = "Test Edit_box"; alignment = left; : boxed_radio_row { key = "choix"; : radio_button { label = "ø10"; key = "dix"; } : radio_button { label = "ø12"; key = "dou"; is_default = true; } : radio_button { label = "ø16"; key = "sez"; } : radio_button { label = "ø20"; key = "vin"; } : radio_button { label = "ø24"; key = "qua"; } : radio_button { label = "ø27"; key = "sep"; } : radio_button { label = "ø30"; key = "tre"; } } : row { : spacer { width = 30; } : button { key = "accept"; label = "OK"; fixed_width = true; is_default = true; alignment = centered; } : button { label = "Cancel"; is_cancel = true; key = "cancel"; width = 8; fixed_width = true; } } }
-
Plus d\'hachures après effacement
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile C'est impeccable MiniMinus -
Plus d\'hachures après effacement
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Gile ! J'ai essayé mais cela ne fonctionne toujours pas après avoir effacé les précédents essais à l'écran !!! A voir quand elle sera appelée par une autre routine. Bonne journée. MiniMinus -
Plus d\'hachures après effacement
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Encore une fois merci Gile, Pour le point 1 : j'ai créé la routine avec un argument car je compte l'appeler à partir d'autres fonctions. Toujours le dessin de mon attache! Point 2: OK pour les variables. J'avais très bien compris les variables locales mais pas du tout les variables globales. Je croyais qu'il fallait les déclarer comme dans d'autres langages. Pour le style : comme je débute, je préfère faire ainsi pour plus de lisibilité et de compréhension. Je ne suis pas du tout contre les commandes imbriquées mais pas au commencement de l'apprentissage. Je crois que c'est une des choses qui rebute le plus les novices (en tout cas moi oui). Point 3 : là, j'ai un peu m...é mais il faut dire que j'étais crevé. Je voulais simplement créer le jeu de sélection, le mettre "vide" puis l'utiliser (c'est là que l'on voit que je n'ai pas compris toutes les nuances du LISP!!!). Enfin la contrôler à l'écran. Point 4 : OK je ferais comme tu dis. Mais je voudrais savoir où tu trouves la syntaxe exacte des commandes. Pour ma part, je l'éxécute sous AutoCad en notant les manipulations que je dois faire puis j'essaye de retranscrire cela dans l'éditeur LISP. Enfin encore MERCI pour la correction. Tu es vraiment le bon samaritzin de ce site !!! Bye MiniMinus -
Bonjour à tous ! J'ai concocté le petit programme ci-après pour symboliser un boulon (ce n'est vraiment pas extraordinaire) et il fonctionne correctement jusqu'à ... ce que j'efface les objets qui sont à l'écran. Après il ne me noirci plus le cercle et attend une sélection d'objets !!! Pour qu'il refonctionne correctement, je dois recharger le programme dans AutoCad. Quelqu'un peut-il m'expliquer où j'ai fait l'andouille ? MiniMinus ( defun C:BlsFace ( Dia / ) (setq ObjCer "") (setq ObjCer (ssadd)) (setq Axe (+ Dia 20)) (setq DemAxe (/ Axe 2)) (setq Cent (getpoint "Entrer le centre du boulon : ")) (setq XCent (car Cent)) (setq YCent (cadr Cent)) (setq PoinHa (list XCent (+ YCent DemAxe))) (setq PoinBa (list XCent (- YCent DemAxe))) (setq PoinGa (list (- XCent DemAxe) YCent)) (setq PoinDo (list (+ XCent DemAxe) YCent)) (command "ligne" PoinHa PoinBa "") (command "ligne" PoinGa PoinDo "") (command "cercle" Cent (/ Dia 2) "") (setq ObjCer (entlast)) (command "_.hatch" "s" ObjCer "") (princ ObjCer) (princ) )
-
Dialog Box : récupérer les valeurs
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
:cool: Un très grand merci Gile ! Cela marche mais j'ai du être plus modeste avec ma boîte de dialogue. J'ai retiré les radio_button. Mais comme j'ai les mêmes intentions que toi : seulement utiliser les boîtes de dialogues pour entrer des données, cela ne me gêne pas trop (il faut maintenant que j'apprenne à récupérer les réponses des radio_button et des popup_list !!!). Je ferais plusieurs boîtes de dialogue différentes, c'est tout. A ce propos, dois-je d'abord mettre toutes les lignes de mon programme puis ouvrir mes boîtes une à une ou mettre les lignes concernant la première boîte puis l'ouvrir, puis mettre les lignes pour la seconde puis l'ouvrir et ainsi de suite... En tous cas : UN GRAND MERCI (J'étais pas loin de tout envoyer sur les roses.) ^Boîte de dialogue Info_Attache : dialog { label = "Test Edit_box"; alignment = left; : column { : edit_box { label = "Ep. :"; key = "Epais"; } : edit_box { label = "Larg. :"; key = "Larg"; } : button { key = "accept"; label = "OK"; fixed_width = true; alignment = centered; } : button { label = "Cancel"; is_cancel = true; is_default = true; key = "cancel"; width = 8; fixed_width = true; } } } Programme (defun C:Vasy (/ dcl_id eppl lapl ) (setq dcl_id (load_dialog "Attache2.dcl")) (if (not (new_dialog "Info_Attache" dcl_id)) (exit) ) (action_tile "Epais" "(setq eppl $value)") (action_tile "Larg" "(setq lapl $value)") (action_tile "accept" "(progn (MaFonction eppl lapl ) (done_dialog))" ) (start_dialog) (unload_dialog dcl_id) (princ) ) (defun Mafonction ( ep la ) (princ (strcat "\nEpaisseur : " ep "\nLargeur : " la ) ) (textscr) ) MiniMinus -
Dialog Box : récupérer les valeurs
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile pour les corrections. Cela me permet de comprendre un peu mieux la logique du langage. Cependant après avoir essayé tes versions, il apparait que la variable est toujours égale à "nil". Est-ce normal ? MiniMinus -
Dialog Box : récupérer les valeurs
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
OK ! JE N'Y ARRIVE PAS !!! QUEL ANE JE SUIS !!! Voilà ce que j'ai essayé : Définition de la boîte de dialogue sauvegardée sous "Attache.dcl" Info_Attache : dialog { label = "Qualité des boulons"; key ="manu"; alignment = left; : column { : row { height = 3; label = "Platine d'assemblage"; : edit_box { label = "Ep. :"; key = "Epais"; } : spacer { width = 7; }[/surligneur] : edit_box { label = "Larg. :"; key = "Larg"; } : spacer { width = 7; } : edit_box { label = "Long. :"; key = "Long"; } } : column { height = 10; label = "Boulons"; : row { spacer_0; : column { Diametre; Qualite; spacer_0; } } } : button { key = "accept"; label = "OK"; is_default = true; fixed_width = true; alignment = centered; } } } Diametre : radio_row { label = "Diamètre :"; key = "DiaBls"; : radio_button { label = "ø10"; is_default = true; value = 1; } : radio_button { label = "ø12"; } : radio_button { label = "ø16"; } : radio_button { label = "ø20"; } : radio_button { label = "ø24"; } : radio_button { label = "ø27"; } } Qualite : radio_row { label = "Qualité :"; key = "QualBls"; : radio_button { label = "HM 4.6"; is_default = true; value = 1; } : radio_button { label = "HM 6.8"; } : radio_button { label = "HM 8.8"; } : radio_button { label = "HR 8.8"; } : radio_button { label = "HR 10.9"; } }[/i] et voici le petit programme sauvegardé sous "Hello.lsp" (que d'imagination" (defun C:Vasy( / dcl_id ) (setq dcl_id (load_dialog "Attache.dcl")) (if (not (new_dialog "Info_Attache" dcl_id)) (exit) ) (mode_tile "Epais" 0) (setq eppl (get_tile "Epais")) ;(action_tile "Epais" "((setq eppl (get_tile \"Epais\"))(princ eppl))") (princ "eppl =") (princ eppl) (princ "lapl =") (princ lapl) (start_dialog) (unload_dialog dcl_id) (princ) ) ...et bien je n'arrive pas à imprimer les valeurs de "Epais" !!! Je dois être vraiment nul. Merci d'avance à celui qui pourra m'expliquer mon erreur MiniMinus -
Dialog Box : récupérer les valeurs
MiniMinus a répondu à un(e) sujet de MiniMinus dans Débuter en LISP
Merci Gile Je n'en pouvais plus d'essayer toutes les syntaxes possibles. J'essaye de suite. Encore merci. Je trouve le site très sympa. MiniMinus -
Bonjour à tous. Je suis nouveau aussi bien sur le site qu'en programmation Visual Lisp. Cela fait un mois que je me tape la lecture (en anglais) des documentations que j'ai pu trouvé. J'ai donc commencé à programmer doucement (sans rien créer de tangible mais cela viendra bien un jour ! Je ne désespère pas) et je n'arrive pas à récupérer les données entrées dans une boîte de dialogue. Comment faire ? Au secours ! J'ai les neurones qui partent en confiture (enfin les deux seules que j'avais). Merci à tous. MiniMinus
