Chuyển đến nội dung
Diễn đàn CADViet
sang98dhxd@gmail.com

VẼ ĐƯỜNG CHÉO CHO HÀNG LOẠT POLYLINE KÍN

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

Em chào các anh chị trong nhóm ạ, chuyện là em đang có lớp nhà là polyline kín từ 4 đỉnh trở lên em muốn vẽ đồng loạt đường chéo từ trái sang phải và là từ trên xuống dưới thì có cách nào nhanh chóng không, em mong các anh chị trong nhóm bớt chút thời gian chỉ giúp em với ạ. EM xin chân thành cảm ơn ạ

SANG.dwg

KQ.pdf

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

Thôi đành giải quyết vấn đề cho khổ chủ :))

lệnh vẽ đường chéo VDC

(defun c:VDC (/ ss i lstpt)
  (setq ss (ssget '((0 . "*POLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>") (-4 . ">") (90 . 3))))
  (repeat (setq i (sslength ss))
    (setq 
      i (1- i)
      lstpt (mapcar '(lambda (x) (if (eq 10 (car x)) (cdr x) )) (entget (ssname ss i)))
      lstpt (vl-sort (vl-remove nil lstpt) '(lambda (a b) (> (cadr a) (cadr b))))
    )
    (if (< (cos (angle (car lstpt) (last lstpt))) 0)
      (setq lstpt (vl-sort lstpt '(lambda (a b) (< (car a) (car b))))) 
    )
    (entmake (list '(0 . "LINE") (list 10 (caar lstpt) (cadar lstpt) 0) (list 11 (car (last lstpt)) (cadr (last lstpt)) 0)))
  )
  (princ)
)

đã sửa điều kiệ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

Giải ngắn, nhưng sai. Điểm bên trái + cao nhất nối điểm bên phải + thấp nhất. Kiểu gì cũng phải lọc từ Xmin, Xmax.

 

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
18 phút trước, cuongtk2 đã nói:

Giải ngắn, nhưng sai. Điểm bên trái + cao nhất nối điểm bên phải + thấp nhất. Kiểu gì cũng phải lọc từ Xmin, Xmax.

  

à em đánh giá cái trái phải trước. nếu đánh giá trên xuống thì ngược lại là được mà bác. :)

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
29 phút trước, tannguyen291 đã nói:

Thôi đành giải quyết vấn đề cho khổ chủ :))

lệnh vẽ đường chéo VDC


(defun c:VDC (/ ss i lstpt)
  (setq ss (ssget '((0 . "*POLYLINE") (-4 . "<OR") (70 . 1) (70 . 129) (-4 . "OR>") (-4 . ">") (90 . 3))))
  (repeat (setq i (sslength ss))
    (setq 
      i (1- i)
      lstpt (mapcar '(lambda (x) (if (eq 10 (car x)) (cdr x) )) (entget (ssname ss i)))
      lstpt (vl-sort (vl-remove nil lstpt) '(lambda (a b) (< (car a) (car b))))
    )
    (if (> (sin (angle (car lstpt) (last lstpt))) 0)
      (setq lstpt (vl-sort lstpt '(lambda (a b) (> (cadr a) (cadr b)))))
    )
    (entmake (list '(0 . "LINE") (cons 10 (car lstpt)) (Cons 11 (last lstpt))))
  )
  (princ)
)

 

lisp không chạy được ạ

 

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
26 phút trước, cuongtk2 đã nói:

Giải ngắn, nhưng sai. Điểm bên trái + cao nhất nối điểm bên phải + thấp nhất. Kiểu gì cũng phải lọc từ Xmin, Xmax.

 

Anh Cường ơi chỉ cần có đường chéo bất kì cũng được ạ, miễn là quét được hết các nhà dạng polyline đó và thêm đường chéo thôi 

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
11 phút trước, sang98dhxd@gmail.com đã nói:

lisp không chạy được ạ

máy mình chạy bình thường. máy bạn k chạy thì chắc là ... do bạn thôi :))

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

@tannguyen291Máy không chạy có thể là do :

1. Thiếu hàm.

2. Biến toàn cục đổi sang biến cục bộ, nên máy chú nó OK vì biến đó đang trong bộ nhớ. Nhưng sang máy người khác thì nó chưa có giá trị đó. Chú chỉ cần đóng Cad mở lại mà vẫn chạy được là đúng,

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
1 phút trước, cuongtk2 đã nói:

@tannguyen291Máy không chạy có thể là do :

 1. Thiếu hàm.

2. Biến toàn cục đổi sang biến cục bộ, nên máy chú nó OK vì biến đó đang trong bộ nhớ. Nhưng sang máy người khác thì nó chưa có giá trị đó. Chú chỉ cần đóng Cad mở lại mà vẫn chạy được là đúng,

2. thì không thể nào.

1. thì ... cái này do cad chứ lisp của em thuần tuý lisp. còn chưa dùng đến vla , vlax, expresstool, hàm phụ trợ.

Lisp này máy mac còn chạy chứ nói gì Cad LT

 

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
7 phút trước, tannguyen291 đã nói:

@cuongtk2 @Doan Van Ha có khi nào thi thoảng cad bị sao đó không cho entmake line (10 x y) mà phải (10 x y z) không các bác nhỉ.

Viết (10 x y) rất nhiều rồi nhưng chưa bao giờ bị err, vì khi viết thiếu Z thì nó mặc định Z=0 rồi.

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
3 phút trước, Doan Van Ha đã nói:

Viết (10 x y) rất nhiều rồi nhưng chưa bao giờ bị err, vì khi viết thiếu Z thì nó mặc định Z=0 rồi.

em cũng chưa bị err phát nào. ông thớt lỗi thì không chụp màn hình ngồi im ỉm. :((

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

Các anh ơi, có cách nào phân loại lớp polyline kín theo nội dung text được không ạ.
Ví dụ em vẽ nhiều hình chữ nhật, và mỗi hình bên trong có chứa 1 nội dung đánh dấu như t (nhà tạm) , b (nhà bằng)
Bây giờ em muốn lấy những hình chữ nhật hoặc polyline kín nhiều đỉnh có chứ nội dung là t thì có được không ạ

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

×