Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Nâng Cao Lệnh Chia Dim, Nối Dim


  • Please log in to reply
4 replies to this topic

#1 tamkt

tamkt

    biết vẽ polygon

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

Đã gửi 06 August 2017 - 09:54 PM

Em có 2 cái lisp sưu tầm, do Em download về, mà lâu quá rồi nên không nhớ nguồn gốc.

1. Lisp chia dim ( hiện tại cứ click là chia )

2. Lisp nối dim ( chọn 2 dim là tự nối với nhau thành 1 dim )

 

Mong mọi người giúp Em nâng cao lên

1. Lisp chia dim ( hiện tại cứ click là chia ), thêm option 2

       +  click là chia

       +  nhập số lần để chia đều, ví dụ chia 10 thì nhập 10, dim tự chia ra 10 phần bằng nhau

 

2. Lisp nối dim ( chọn 2 dim là tự nối với nhau thành 1 dim ), thêm option 2

       +  chọn nhiều dim => nối với nhau thành 1 dim

 

http://www.cadviet.c...__cat_dim_2.lsp

http://www.cadviet.c...d__noi_dim_.lsp

 

Mong mọi người giúp Em.


  • 0

#2 tvgtyb08

tvgtyb08

    biết vẽ spline

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

Đã gửi 07 August 2017 - 01:27 PM

Bạn Up nhầm lisp chia DIM rồi


  • 0

#3 tamkt

tamkt

    biết vẽ polygon

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

Đã gửi 07 August 2017 - 05:53 PM

Bạn Up nhầm lisp chia DIM rồi

Thì là lisp chia dim mà Bạn, nhưng ý mình muốn nhờ mọi người nâng cấp lên đó.


  • 0

#4 Bee

Bee

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 367 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 08 August 2017 - 09:06 PM

Em có 2 cái lisp sưu tầm, do Em download về, mà lâu quá rồi nên không nhớ nguồn gốc.

1. Lisp chia dim ( hiện tại cứ click là chia )

2. Lisp nối dim ( chọn 2 dim là tự nối với nhau thành 1 dim )

 

Mong mọi người giúp Em nâng cao lên

1. Lisp chia dim ( hiện tại cứ click là chia ), thêm option 2

       +  click là chia

       +  nhập số lần để chia đều, ví dụ chia 10 thì nhập 10, dim tự chia ra 10 phần bằng nhau

 

2. Lisp nối dim ( chọn 2 dim là tự nối với nhau thành 1 dim ), thêm option 2

       +  chọn nhiều dim => nối với nhau thành 1 dim

 

http://www.cadviet.c...__cat_dim_2.lsp

http://www.cadviet.c...d__noi_dim_.lsp

 

Mong mọi người giúp Em.

Tóm tắt cái lisp trên tí thôi. Không dài dòng các kiểu. Trường hợp đặc biệt là các dim cùng hàng và chân dim dài như nhau nhé. 

Nghịch thử nhé ^_^

(defun c:merge ()
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq lst nil)
      (setq pt (cdr (assoc 10 (entget (ssname ss 0)))))
      (foreach dim (ssnamex ss)
	(if (= 'ename (type (cadr dim)))
	  (progn
	    (setq lst (cons (cdr (assoc 13 (entget (cadr dim)))) lst))
	    (setq lst (cons (cdr (assoc 14 (entget (cadr dim)))) lst))
	  )
	)
      )
      (setq lst (vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
      (command "erase" ss "")
      (command "dimrotated"
	       (RtD (angle (car lst)
			   (car (reverse lst))
		    )
	       )
	       (car lst)
	       (car (reverse lst))
	       pt
      )
    )
  )
  (princ)
)
(defun RtD (r) (* 180.0 (/ r pi)))

  • 0

#5 tamkt

tamkt

    biết vẽ polygon

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

Đã gửi 09 August 2017 - 01:20 PM

 

Tóm tắt cái lisp trên tí thôi. Không dài dòng các kiểu. Trường hợp đặc biệt là các dim cùng hàng và chân dim dài như nhau nhé. 

Nghịch thử nhé ^_^

(defun c:merge ()
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq lst nil)
      (setq pt (cdr (assoc 10 (entget (ssname ss 0)))))
      (foreach dim (ssnamex ss)
	(if (= 'ename (type (cadr dim)))
	  (progn
	    (setq lst (cons (cdr (assoc 13 (entget (cadr dim)))) lst))
	    (setq lst (cons (cdr (assoc 14 (entget (cadr dim)))) lst))
	  )
	)
      )
      (setq lst (vl-sort lst '(lambda (e1 e2) (< (car e1) (car e2)))))
      (command "erase" ss "")
      (command "dimrotated"
	       (RtD (angle (car lst)
			   (car (reverse lst))
		    )
	       )
	       (car lst)
	       (car (reverse lst))
	       pt
      )
    )
  )
  (princ)
)
(defun RtD (r) (* 180.0 (/ r pi)))

Cám ơn Anh Bee, quá tuyệt vời. 


  • 0