Slice 3D object 15 mm above at 30 degrees

Slice 3D object 15 mm above at 30 degrees

Anonymous
Not applicable
1,051 Views
3 Replies
Message 1 of 4

Slice 3D object 15 mm above at 30 degrees

Anonymous
Not applicable

Hi to everyone,

 

I have a rectangular 3D object with this dimensions: Length = 300 mm, width = 100 mm and thickness = 10 mm.

 

This piece I would like to slice it 15 mm above from bottom left corner to 30 degrees. (like in picture number 2).

 

I have made a routine in Autolisp, but doesn't work like I want because the routine slice the piece from bottom left corner. (like in picture  number 3).

 

Could you help me to make a routine which slice the rectangular 3D piece 15 mm above bottom left corner at 30 degrees? (like in picture number 2).

 

Here I have attached my routine:

 

(defun C:89 ()
  (COMMAND "-OSNAP" "END")
  (setq p1 (getpoint "\nSelecteaza primul colt de jos: "))
  (setq p2 (getpoint "\nSelecteaza al doilea colt de pe aceeasi linie: "))
  (if (= (cadr p1) (cadr p2))
    (progn
      (if (< (car p1) (car p2))
    (progn
            ;(setq y1 (eval (+ 15.0 (cadr pct1))))        ;y punct ofset 15 mm - cioc
            (setq p3 (list (car p1) (eval (+ 15.0 (cadr p1))) 0.0))        ;y punct ofset 15 mm - cioc
            (setq i (eval (/ 200 (sqrt 3))))        ;ipotenuza
            (setq co (eval (/ i 2)))        ;cateta opusa
            (setq p4 (list (eval (+ (car p1) 100)) (eval (+ (cadr p3) co)) 0.0))    ;punct 4 de sectionare
            (setq p5 (list (eval (+ (car p1) 100)) (eval (- (cadr p3) 2)) 0.0))    ;punct selectie pt corpul ce ramane netaiat
            (setq ob (ssget))    ;comanda de selectie a obiectului
            (command "slice" ob "" p3 p4 p5)
            (prompt "\nSelecteaza obiectul ce trebuie taiat:")    ;mesaj pt selectia obiectului
            (princ)
                
    )
    )
    )
    )
    )

 

Thank you very much!

0 Likes
Accepted solutions (2)
1,052 Views
3 Replies
Replies (3)
Message 2 of 4

_gile
Consultant
Consultant
Accepted solution

Hi,

 

You should take care of running osnaps.

Try with:

(command "_.slice" ob "" "" "_non" p3 "_non" p4 "_non" p5)


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 3 of 4

dbhunia
Advisor
Advisor
Accepted solution

Hi

 

You also can try this.....(Take care of "OSMODE")

 

(defun C:89 ()
(setq OSM (getvar "OSMODE"))
(COMMAND "-OSNAP" "END")
(setq p1 (getpoint "\nSelecteaza primul colt de jos: "))
(setq p2 (getpoint "\nSelecteaza al doilea colt de pe aceeasi linie: "))
(if (= (cadr p1) (cadr p2))
    (progn
      (if (< (car p1) (car p2))
    (progn
            ;(setq y1 (eval (+ 15.0 (cadr pct1))))        ;y punct ofset 15 mm - cioc
            (setq p3 (list (car p1) (eval (+ 15.0 (cadr p1))) 0.0))        ;y punct ofset 15 mm - cioc
            (setq i (eval (/ 200 (sqrt 3))))        ;ipotenuza
            (setq co (eval (/ i 2)))        ;cateta opusa
            (setq p4 (list (eval (+ (car p1) 100)) (eval (+ (cadr p3) co)) 0.0))    ;punct 4 de sectionare
            (setq p5 (list (eval (+ (car p1) 100)) (eval (- (cadr p3) 2)) 0.0))    ;punct selectie pt corpul ce ramane netaiat
            (setq ob (ssget))    ;comanda de selectie a obiectului
	    (COMMAND "OSMODE" 0)
            (command "slice" ob "" p3 p4 p5)
	    (COMMAND "OSMODE" OSM)
            (prompt "\nSelecteaza obiectul ce trebuie taiat:")    ;mesaj pt selectia obiectului
            (princ)
                
    )
    )
    )
    )
    )

 


Debashis Bhunia
Co-Founder of Geometrifying Trigonometry(C)
________________________________________________
Walking is the First step of Running, Technique comes Next....
Message 4 of 4

Anonymous
Not applicable

Your solution has helped me! Thank you very much for your help!

0 Likes