Đến nội dung


Hình ảnh
- - - - -

Nhờ Sửa Lại Lisp Cut


  • Please log in to reply
3 replies to this topic

#1 hovidu

hovidu

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 09 December 2015 - 09:13 AM

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.c...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.c...ut_muon_sua.dwg

 

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

 

 

 


  • -1
+Hoàng Việt Dũng
+University of communications and transports

#2 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 09 December 2015 - 10:10 AM

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)
)

  • 1

#3 hovidu

hovidu

    biết vẽ circle

  • Members
  • PipPip
  • 36 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 09 December 2015 - 10:36 AM

 

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


  • 0
+Hoàng Việt Dũng
+University of communications and transports

#4 namgiangduy89

namgiangduy89

    biết vẽ pline

  • Members
  • PipPip
  • 61 Bài viết
Điểm đánh giá: -19 (hơi kém)

Đã gửi 10 December 2015 - 07:40 AM

 Với lệnh này bạn vào Express -> Draw có vẻ tiên hơn


  • 0