Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hovidu

Nhờ Sửa Lại Lisp Cut

Các bài được khuyến nghị

Chào cả nhà,

 

Do không tìm thấy trong diễn đàn nên em đành lập topic nhờ các bro sửa hộ em cái lisp cắt đối tượng như lisp của em dưới đây.

 

 

 

http://www.cadviet.com/upfiles/5/13214_cut.lsp

 

Cách sử dụng: gõ lệnh CUT, chọn điểm đầu điểm cuối rồi kích thước phần Z ở giữa

Em muốn thay đổi Z giống như trong file cad kèm theo bên dưới nhưng không biết làm sao, nhờ các bro sửa giúp.

 

 

 

http://www.cadviet.com/upfiles/5/13214_cut_muon_sua.dwg

 

Em cám ơn nhiều nhé!

 

 

 

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn dùng lisp này

(defun c:CUT (/ p1 p2 p3 p4 p5 p6 pm lst)
  (prompt "\nExpansion symbol. ")
  (or #dist (setq #dist 0))
  (if (and (setq p1 (getpoint "\nFirst point : "))
	   (setq p2 (getpoint "\nSecond point : " p1))
	   (setq #dist
		  (cond
		    ((getdist (strcat "\nHow big ? <" (rtos #dist 2 2) ">: ")
		     )
		    )
		    (#dist)
		  )
	   )
      )
    (progn
      (setq p1 (trans p1 1 0)
	    p2 (trans p2 1 0)
	    pm (polar p1 (angle p1 p2) (/ (distance p1 p2) 2))
	    ;p3 (polar pm (+ (angle p1 p2) (/ pi 2)) (/ #dist 2))
	    ;p4 (polar pm (- (angle p1 p2) (/ pi 2)) (/ #dist 2))
	    ;p5 (polar pm (angle p1 p2) (/ #dist 6))
	    ;p6 (polar pm (angle p2 p1) (/ #dist 6))

	    p5 (polar pm (angle p1 p2) (/ #dist 2))
	    p6 (polar pm (angle p2 p1) (/ #dist 2))
	    p3 (polar p6 (+ (angle p6 p5) (/ pi 2)) (/ #dist 3))
	    p4 (polar p5 (+ (angle p5 p6) (/ pi 2)) (/ #dist 3))
      )
      (setq Lst	(list '(0 . "LWPOLYLINE")
		      '(100 . "AcDbEntity")
		      '(100 . "AcDbPolyline")
		      (cons 90 6)
		      (cons 70 0)
		)
      )
      (foreach PP (list p1 p6 p3 p4 p5 p2)
	(setq Lst (append Lst (list (cons 10 PP))))
      )
      (entmakex Lst)
    )
  )
  (princ)
)
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Bạn dùng lisp này

(defun c:CUT (/ p1 p2 p3 p4 p5 p6 pm lst)
  (prompt "\nExpansion symbol. ")
  (or #dist (setq #dist 0))
  (if (and (setq p1 (getpoint "\nFirst point : "))
	   (setq p2 (getpoint "\nSecond point : " p1))
	   (setq #dist
		  (cond
		    ((getdist (strcat "\nHow big ? <" (rtos #dist 2 2) ">: ")
		     )
		    )
		    (#dist)
		  )
	   )
      )
    (progn
      (setq p1 (trans p1 1 0)
	    p2 (trans p2 1 0)
	    pm (polar p1 (angle p1 p2) (/ (distance p1 p2) 2))
	    ;p3 (polar pm (+ (angle p1 p2) (/ pi 2)) (/ #dist 2))
	    ;p4 (polar pm (- (angle p1 p2) (/ pi 2)) (/ #dist 2))
	    ;p5 (polar pm (angle p1 p2) (/ #dist 6))
	    ;p6 (polar pm (angle p2 p1) (/ #dist 6))

	    p5 (polar pm (angle p1 p2) (/ #dist 2))
	    p6 (polar pm (angle p2 p1) (/ #dist 2))
	    p3 (polar p6 (+ (angle p6 p5) (/ pi 2)) (/ #dist 3))
	    p4 (polar p5 (+ (angle p5 p6) (/ pi 2)) (/ #dist 3))
      )
      (setq Lst	(list '(0 . "LWPOLYLINE")
		      '(100 . "AcDbEntity")
		      '(100 . "AcDbPolyline")
		      (cons 90 6)
		      (cons 70 0)
		)
      )
      (foreach PP (list p1 p6 p3 p4 p5 p2)
	(setq Lst (append Lst (list (cons 10 PP))))
      )
      (entmakex Lst)
    )
  )
  (princ)
)

Cám ơn bạn nhiều nhé, đúng cái mình đang cần

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×