Kenter Posted July 30, 2010 Posted July 30, 2010 ****Code needs a layer called note to be made already**** What I want to do is to present the options the same way AutoCAD does with its own comman options, for exemple in the text command: [Align/Fit/Center/Middle/Right/TL/TC/TR/ML/MC/MR/BL/BC/BR]: Is possible to do something similar. The advantage is that the user can see the options and these reduces the errors. Is it also possible to set mnemonic shortcuts (like the uppercase in the above native command, A, F, C, M, R and so on) and the user can indicate a choice by typing (only) the mnemonic character. Any pointers would be helpful. Thanks in advance. This is my program and what I want it to do is instead of typing in what material is to be used, the user could pick from a selection and it would be input automatically rather than typing. For exapmle: command: tef ..material... [brass/Steel/ColdRolled...etc] (note: if you pick Brass, it will put 'BR-60-40-Muntz' beside 'material=') Kenter TEF Good.lsp Quote
alanjt Posted July 30, 2010 Posted July 30, 2010 eg. (initget 0 "Pizza Burger fiSh") (getkword "\nWhat would you like? [Pizza/Burger/fiSh]: ") Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 eg. (initget 0 "Pizza Burger fiSh") (getkword "\nWhat would you like? [Pizza/Burger/fiSh]: ") checken Invalid option keyword. No checken:cry: Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 (edited) You did forget to re-set the old OSMODE and CLAYER in your Lisp. (setq cl (getvar "CLAYER")) (setvar "CLAYER" "NOTE") (setq cs (GETVAR "OSMODE")) (setvar "OSMODE" 0) ....... your codes running... ......... [color="red"](setvar "osmode" cs) (setvar "clayer" cl)[/color] I think the sentence that has been given by Alan is enough for you to update your codes ...... Regards Tharwat Edited July 31, 2010 by Tharwat Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 Here is a complete example for your question ...... must be satisfied (initget 0 "Brass Steel ColdRolled") (setq a (getkword "\n Specify the Material [brass/Steel/ColdRolled]: ")) (command "text" "J" "C" pause "0.187" "0" (strcat "Material =" a)) Regards Tharwat Quote
Lee Mac Posted July 31, 2010 Posted July 31, 2010 This is perhaps how I might code your program: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:tef [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] *error* LM:lst->str LM:Text mLst [b][color=RED])[/color][/b] [i][color=#990099];; © Lee Mac 2010[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b] msg [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#a52a2a]"*BREAK,*CANCEL*,*EXIT*"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\n** Error: "[/color][/b] msg [b][color=#a52a2a]" **"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:lst->str [b][color=RED]([/color][/b] lst del [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] del [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:Text [b][color=RED]([/color][/b] pt hgt str lay [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entmakex[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#a52a2a]"TEXT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b] lay[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]10[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]40[/color][/b] hgt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]1[/color][/b] str[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]7[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=DARKRED]'[/color][/b]TEXTSTYLE[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]71[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]72[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]11[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] mLst [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#a52a2a]"Brass"[/color][/b] . [b][color=#a52a2a]"BR-60-40-Muntz"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#a52a2a]"Steel"[/color][/b] . [b][color=#a52a2a]"ST-60-40-Muntz"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#a52a2a]"Coldrolled"[/color][/b] . [b][color=#a52a2a]"CR-60-40-Muntz"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] i [b][color=BLUE]/[/color][/b] p [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] p [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#a52a2a]"\nSpecify Point <Exit> : "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] p [b][color=RED]([/color][/b][b][color=BLUE]trans[/color][/b] p [b][color=#009900]1[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] string offset [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]""[/color][/b] string[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]LM:Text [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] p[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] p[b][color=RED])[/color][/b] offset[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#009999]0.187[/color][/b] string [b][color=#a52a2a]"NOTE"[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"Quantity="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *qty* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=#009900]4[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getint[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\nSpecify Quantity <"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *qty* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] *qty* [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=#009900]1[/color][/b] [b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#a52a2a]"> : "[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] *qty* [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"Material="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *mat* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]car[/color][/b] mLst[b][color=RED])[/color][/b] [b][color=#a52a2a]" "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getkword[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\nSpecify Material ["[/color][/b] [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]car[/color][/b] mLst[b][color=RED])[/color][/b] [b][color=#a52a2a]"/"[/color][/b][b][color=RED])[/color][/b] [b][color=#a52a2a]"] <"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *mat* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] *mat* [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caar[/color][/b] mLst[b][color=RED])[/color][/b] [b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#a52a2a]"> : "[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] *mat* [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] mLst [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"Thickness="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *thk* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]initget[/color][/b] [b][color=#009900]6[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getdist[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"\nSpecify Thickness <"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] *thk* [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b] *thk* [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=#009999]1.0[/color][/b] [b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#a52a2a]"> : "[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] *thk* [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#a52a2a]"NAME="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] [b][color=#a52a2a]"\nSpecify Name: "[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]itoa[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#a52a2a]"MACHINE=Trumpf L2530 PLUS"[/color][/b] [b][color=RED])[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009999]1.0[/color][/b] [b][color=#009999]1.3[/color][/b] [b][color=#009999]1.6[/color][/b] [b][color=#009999]1.9[/color][/b] [b][color=#009999]2.2[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=RED])[/color][/b] [b][color=#009900]0[/color][/b] [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b] [b][color=RED])[/color][/b] Quote
alanjt Posted July 31, 2010 Posted July 31, 2010 checkenInvalid option keyword. No checken:cry: You did forget to re-set the old OSMODE and CLAYER in your Lisp. (setq cl (getvar "CLAYER")) (setvar "CLAYER" "NOTE") (setq cs (GETVAR "OSMODE")) (setvar "OSMODE" 0) ....... your codes running... ......... [color=red](setvar "osmode" cs) (setvar "clayer" cl)[/color] I think the sentence that has been given by Alan is enough for you to update your codes ...... Regards Tharwat Here is a complete example for your question ...... must be satisfied (initget 0 "Brass Steel ColdRolled") (setq a (getkword "\n Specify the Material [brass/Steel/ColdRolled]: ")) (command "text" "J" "C" pause "0.187" "0" (strcat "Material =" a)) Regards Tharwat I love it. You tell me I'm wrong, then tell the OP that I'm right, then use the method I suggested in another example. Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 You got it wrong, I love it. You tell me I'm wrong, I did not tell you that you are wrong, That was just a small joke. then tell the OP that I'm right And this is the approval. then use the method I suggested in another example. of course, Me and others still learning and must get expert's suggestions untill being able to give ours. That's it ...... feel free. Best regards Tharwat Quote
alanjt Posted July 31, 2010 Posted July 31, 2010 You got it wrong, I did not tell you that you are wrong, That was just a small joke. You say otherwise.:wink: checkenInvalid option keyword. No checken:cry: Quote
Lee Mac Posted July 31, 2010 Posted July 31, 2010 I think it was meant to be a joke saying that you didn't include 'chicken' as an option... Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 You say otherwise.:wink: I am very honest person, and I do not say two words in different directions. Honest and Modest are my main bold headlines in life. Tharwat Quote
Lee Mac Posted July 31, 2010 Posted July 31, 2010 I am very honest person... ...Honest and Modest are my main bold headlines in life. LMAO :lol: So that's why you blatently tried to pass off my code as your own the other day - we must have a different definition of the word 'honest'... Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 LMAO :lol: So that's why you blatently tried to pass off my code as your own the other day - we must have a different definition of the word 'honest'... I am sorry, I did not get you well..... the core meaning of your words are still hidden to me !!!! Quote
alanjt Posted July 31, 2010 Posted July 31, 2010 I am sorry, I did not get you well..... the core meaning of your words are still hidden to me !!!! You put your name on his work. Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 That's right , but I declared that clearly. If I am not , I won't declared it or even mention it. .... that's must be added to my record . Regards, Quote
Lee Mac Posted July 31, 2010 Posted July 31, 2010 That's right , but I declared that clearly. Surely you can see the wrong in copying something and changing the name to your own? If you are going to use code that you find, you should not modify the code without stating that which you have changed, and it goes without saying that you should keep all headers/notices that the original author has included - and if these don't exist, you should provide a link to where the code was obtained. Quote
alanjt Posted July 31, 2010 Posted July 31, 2010 You also ONLY said anything about it being Lee's originally AFTER I pointed it out. Adding two lines of code to someone's work does not make it yours and you sure as hell can't take a subroutine with a library prefix and change it to yours. Quote
Tharwat Posted July 31, 2010 Posted July 31, 2010 You also ONLY said anything about it being Lee's originally AFTER I pointed it out. Adding two lines of code to someone's work does not make it yours and you sure as hell can't take a subroutine with a library prefix and change it to yours. of course the hell is you ...... undoubtly. your are the trouble maker .... Quote
alanjt Posted July 31, 2010 Posted July 31, 2010 of course the hell is you ...... undoubtly. your are the trouble maker .... No trouble, only truth, baby. :wink: Be right back...time to make some popcorn You forgot the awesome popcorn-eating-GIF...:lol: Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.