Chuyển đến nội dung
Diễn đàn CADViet
hokudai

Nối đỉnh các đường line thành polyline

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

Chào cả nhà,

Mình có rất nhiều đoạn line. Giúp mình tạo lisp để nối đỉnh tất cả những đoạn line (như đường màu đỏ trong hình minh họa). 

Mình cám ơn!1v0f.png

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

Chào cả nhà,

Mình có rất nhiều đoạn line. Giúp mình tạo lisp để nối đỉnh tất cả những đoạn line (như đường màu đỏ trong hình minh họa). 

Mình cám ơn!1v0f.png

Hy vọng đúng ý chủ thớt.

(defun c:plj(/ lst st end ss)
  ;; By : Gia_Bach 2014
  (vl-load-com)
  (if (and(setq ss (ssget (list (cons 0 "LINE") )) )
	  (> (sslength ss) 1))
    (progn
      (foreach obj (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))	
	(if (< (cadr (setq st (vlax-curve-getStartPoint obj)))(cadr (setq end (vlax-curve-getEndPoint obj))))
	  (setq lst (cons (list (car end)(cadr end))lst))
	  (setq lst (cons (list (car st)(cadr st))lst))) )
      (setq lst (apply 'append (vl-sort lst '(lambda(x y) (< (car x) (car y))))))
      (vla-addLightweightpolyline
	(vla-get-modelspace (vla-get-ActiveDocument (vlax-get-Acad-Object)))
	(vlax-make-variant(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length lst)))) 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

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


×