hi need a pup-up for my lisp

hi need a pup-up for my lisp

archana96
Enthusiast Enthusiast
341 Views
5 Replies
Message 1 of 6

hi need a pup-up for my lisp

archana96
Enthusiast
Enthusiast

hi I have a LISP file when i use a command its shows options in the command line but I need those options look in the pup-up message 

0 Likes
342 Views
5 Replies
  • Lisp
Replies (5)
Message 2 of 6

cadffm
Consultant
Consultant

You are talking about 

Working with Programmable Dialog Boxes DCL

Sebastian

0 Likes
Message 3 of 6

komondormrex
Mentor
Mentor

@archana96 

hey,

you can try keywording, like in the following

 

(defun round_25 (x / a)
(if (zerop (setq x (fix (abs x)) a (rem x 25)))x(+ x(- 25 a))))
(defun c:BEAMBOTEXT ()
(setq pt1 nil pt2 nil pt3 nil pt4 nil pt5 nil pt6 nil pt7 nil pt8 nil pt9 nil pt10 nil pt11 nil pt12 nil n1 nil n2 nil n3 nil n4 nil n5 nil n6 nil n7 nil n8 nil n9 nil n10 nil n11 nil n12 nil n13 nil n14 nil dis1 nil dis2 nil
dis3 nil x1 nil x2 nil)
;;;  (princ "\nSelect an option:")
;;;  (princ "\n1. Option 1: SIMPLY SUPPORTED BOTH ENDS")
;;;  (princ "\n2. Option 2: SIMPLY SUPPORTED LEFT END")
;;;  (princ "\n3. Option 3: SIMPLY SUPPORTED RIGHT END")
;;;  (princ "\n4. Option 4: BOTH ENDS FIXED")

(if (/= 3 (getvar 'dynmode)) (setvar 'dynmode 3))
(if (null ends_choice_saved) (setq ends_choice_saved "Both")) 
(initget "Both Left Right Fixed")
(if (null (setq ends_choice (getkword (strcat "\nPick ends option [Both/Left/Right/Fixed] <" ends_choice_saved "> :"))))
  (setq ends_choice ends_choice_saved)
  (setq ends_choice_saved ends_choice)
)
   ;; Prompt the user for input and store the result in a variable
;;;  (setq choice (getint "\nEnter the number of your choice (1-4): "))
  ;; Define two variables to hold the result based on the user's choice
  (cond
    ((= ends_choice "Both")
     (setq num1 0.1)  ;; First value for Option 1
     (setq num2 0.1)  ;; Second value for Option 1
     ;(princ (strcat "\nYou chose Option 1: var1 = " var1 ", var2 = " var2))
	)
    ((= ends_choice "Left")
     (setq num1 0.1)  ;; First value for Option 2
     (setq num2 0.15)  ;; Second value for Option 2
     ;(princ (strcat "\nYou chose Option 2: var1 = " var1 ", var2 = " var2))
	)
    ((= ends_choice "Right")
     (setq num1 0.15)  ;; First value for Option 3
     (setq num2 0.1)  ;; Second value for Option 3
     ;(princ (strcat "\nYou chose Option 3: var1 = " var1 ", var2 = " var2))
	)
     
    ((= ends_choice "Fixed")
     (setq num1 0.15)  ;; First value for Option 4
     (setq num2 0.15)  ;; Second value for Option 4
     ;(princ (strcat "\nYou chose Option 4: var1 = " var1 ", var2 = " var2))
	)
;;;    (T
;;;     (princ "\nInvalid choice, please select a number between 1 and 4.")
;;;    )
  )
(setq pt1 (getpoint "\nSelect first point: "))
(setq pt2 (getpoint "\nSelect second point: "))
(setq pt3 (getpoint "\nSelect third point: "))
(setq pt4 (getpoint "\nSelect fourth point: "))
(setvar "osmode" 0)
(setq n3 (list (car pt1) (cadr pt2)))
(setq n4 (list (car pt2) (cadr pt2)))
(setq n5 (list (car pt3) (cadr pt2)))
(setq n6 (list (car pt4) (cadr pt2)))
  (setq dis1 (distance n3 n4))
  (setq dis2 (distance n4 n5))
  (setq dis3 (distance n5 n6))
;(setq x2 (list (+ 250 (car pt2)) (cadr pt2) 0.0))
(setq pt5 (polar n4 0 (+ -25 (round_25(+ (/ dis1 -2)(* (+ (/ dis1 2) dis2 (/ dis3 2)) num1)))))) 
(setq pt6 (polar n5 0 (+ 25 (* -1 (round_25(+ (/ dis3 2) (* (* (+ (/ dis1 2) dis2 (/ dis3 2)) num2) -1))))))) 
(setq pt7 (polar n4 1.570796327 100)) 
(setq n11 (list (car pt5) (cadr pt7)))
(setq n12 (list (car pt6) (cadr pt7)))
(setvar 'clayer "REINF")
(command "Line" n11 n12 "")
(setq n13 (list (+ -50 (car n11)) (+ 50 (cadr n11)) 0.0))
(command "Line" n11 n13 "")
(setq n14 (list (+ 50 (car n12)) (+ 50 (cadr n12)) 0.0))
(command "Line" n12 n14 "")
(setvar 'clayer "DIM")
(setvar 'textstyle "RS")
(command "-dimstyle" "r" "D100")
(setq n7 (list (car pt2) (+ -250 (cadr pt2)) 0.0))
 (command "._dimlinear"
   "_non"
   n4
   "_non"
   pt5
   "_non"
   n7
 )
 (command "._dimlinear"
   "_non"
   n5
   "_non"
   pt6
   "_non"
   n7
 )
)
(setvar "osmode" 16383)
(princ "\nType BEAMBOTEXT to start the program.")
(princ)

 

0 Likes
Message 4 of 6

Sea-Haven
Mentor
Mentor

I don't use initget anymore so here is an alternative. The Multi radio buttonslsp is auto loaded so save in a support path or (load "c:\\yourpath\\Multi radio buttons.lsp")

 

(initget "Both Left Right Fixed")
(if (not AH:Butts)(load "Multi radio buttons.lsp")) ; loads the program if not loaded already
; you can reset default button to user pick
(setq ends_choice (ah:butts 1 "V"   '("Please choose" "Both" "Left" "Right" "Fixed"))) 	; ans holds the button picked value as a string

 

  

SeaHaven_1-1739408848983.png

There is also a dynamic input on the screen option I will let some one else post that code.

 

0 Likes
Message 5 of 6

archana96
Enthusiast
Enthusiast

IT IS NICE FOR ME BUT WHEN I USED IT ONCE THE OSNAP WAS OFFED SO  I DONT WANT TO OFF OSNAP

0 Likes
Message 6 of 6

komondormrex
Mentor
Mentor

@archana96 

well it was in the original code, but try the following mod to it too 

efun c:BEAMBOTEXT ()
(setq pt1 nil pt2 nil pt3 nil pt4 nil pt5 nil pt6 nil pt7 nil pt8 nil pt9 nil pt10 nil pt11 nil pt12 nil n1 nil n2 nil n3 nil n4 nil n5 nil n6 nil n7 nil n8 nil n9 nil n10 nil n11 nil n12 nil n13 nil n14 nil dis1 nil dis2 nil
dis3 nil x1 nil x2 nil)
;;;  (princ "\nSelect an option:")
;;;  (princ "\n1. Option 1: SIMPLY SUPPORTED BOTH ENDS")
;;;  (princ "\n2. Option 2: SIMPLY SUPPORTED LEFT END")
;;;  (princ "\n3. Option 3: SIMPLY SUPPORTED RIGHT END")
;;;  (princ "\n4. Option 4: BOTH ENDS FIXED")

(if (/= 3 (getvar 'dynmode)) (setvar 'dynmode 3))
(if (null ends_choice_saved) (setq ends_choice_saved "Both")) 
(initget "Both Left Right Fixed")	; komondormrex
(if (null (setq ends_choice (getkword (strcat "\nPick ends option [Both/Left/Right/Fixed] <" ends_choice_saved "> :"))))	; komondormrex
  (setq ends_choice ends_choice_saved)
  (setq ends_choice_saved ends_choice)
)
   ;; Prompt the user for input and store the result in a variable
;;;  (setq choice (getint "\nEnter the number of your choice (1-4): "))
  ;; Define two variables to hold the result based on the user's choice
  (cond	; komondormrex
    ((= ends_choice "Both")
     (setq num1 0.1)  ;; First value for Option 1
     (setq num2 0.1)  ;; Second value for Option 1
     ;(princ (strcat "\nYou chose Option 1: var1 = " var1 ", var2 = " var2))
	)
    ((= ends_choice "Left")
     (setq num1 0.1)  ;; First value for Option 2
     (setq num2 0.15)  ;; Second value for Option 2
     ;(princ (strcat "\nYou chose Option 2: var1 = " var1 ", var2 = " var2))
	)
    ((= ends_choice "Right")
     (setq num1 0.15)  ;; First value for Option 3
     (setq num2 0.1)  ;; Second value for Option 3
     ;(princ (strcat "\nYou chose Option 3: var1 = " var1 ", var2 = " var2))
	)
     
    ((= ends_choice "Fixed")
     (setq num1 0.15)  ;; First value for Option 4
     (setq num2 0.15)  ;; Second value for Option 4
     ;(princ (strcat "\nYou chose Option 4: var1 = " var1 ", var2 = " var2))
	)
;;;    (T
;;;     (princ "\nInvalid choice, please select a number between 1 and 4.")
;;;    )
  )
(setq pt1 (getpoint "\nSelect first point: "))
(setq pt2 (getpoint "\nSelect second point: "))
(setq pt3 (getpoint "\nSelect third point: "))
(setq pt4 (getpoint "\nSelect fourth point: "))
;(setvar "osmode" 0)	; komondormrex
(setq n3 (list (car pt1) (cadr pt2)))
(setq n4 (list (car pt2) (cadr pt2)))
(setq n5 (list (car pt3) (cadr pt2)))
(setq n6 (list (car pt4) (cadr pt2)))
  (setq dis1 (distance n3 n4))
  (setq dis2 (distance n4 n5))
  (setq dis3 (distance n5 n6))
;(setq x2 (list (+ 250 (car pt2)) (cadr pt2) 0.0))
(setq pt5 (polar n4 0 (+ -25 (round_25(+ (/ dis1 -2)(* (+ (/ dis1 2) dis2 (/ dis3 2)) num1)))))) 
(setq pt6 (polar n5 0 (+ 25 (* -1 (round_25(+ (/ dis3 2) (* (* (+ (/ dis1 2) dis2 (/ dis3 2)) num2) -1))))))) 
(setq pt7 (polar n4 1.570796327 100)) 
(setq n11 (list (car pt5) (cadr pt7)))
(setq n12 (list (car pt6) (cadr pt7)))
(setvar 'clayer "REINF")
(command "Line" "_non" n11 "_non" n12 "")	; komondormrex
(setq n13 (list (+ -50 (car n11)) (+ 50 (cadr n11)) 0.0))
(command "Line" "_non" n11 "_non" n13 "")	; komondormrex
(setq n14 (list (+ 50 (car n12)) (+ 50 (cadr n12)) 0.0))
(command "Line" "_non" n12 "_non" n14 "")	; komondormrex
(setvar 'clayer "DIM")
(setvar 'textstyle "RS")
(command "-dimstyle" "r" "D100")
(setq n7 (list (car pt2) (+ -250 (cadr pt2)) 0.0))
 (command "._dimlinear"
   "_non"
   n4
   "_non"
   pt5
   "_non"
   n7
 )
 (command "._dimlinear"
   "_non"
   n5
   "_non"
   pt6
   "_non"
   n7
 )
)
;(setvar "osmode" 16383)	; komondormrex
(princ "\nType BEAMBOTEXT to start the program.")
(princ)
0 Likes