Chuyển đến nội dung
Diễn đàn CADViet
AutoTay.com

ARrray theo kiểu MEasure (DIVide)

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

Có cách nào Array Block theo 1 Spline bất kỳ nhưng khoảng cách giữa các Block lại cách đều nhau theo chiều thẳng (chứ ko phải cách đều nhau theo chiều dài của Spline)?

Mong được giúp đỡ!

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ách nào Array Block theo 1 Spline bất kỳ nhưng khoảng cách giữa các Block lại cách đều nhau theo chiều thẳng (chứ ko phải cách đều nhau theo chiều dài của Spline)?

Mong được giúp đỡ!

Thủ công thì vẻ vòng tròn sau đó copy để lấy giao điể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
Thủ công thì vẻ vòng tròn sau đó copy để lấy giao điểm.

Block đối tượng lại, Chú ý chọn Base piont của Block là điểm tâm mà sẽ nằm trên SPL, Sau đó dùng lệnh Me

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
Block đối tượng lại, Chú ý chọn Base piont của Block là điểm tâm mà sẽ nằm trên SPL, Sau đó dùng lệnh Me

Cách này ko được bạn ah!

Kết quả thu được là các Block chỉ cách nhau 1 khoảng bằng nhau theo chiều dài của Spline.

Chắc phải dùng lisp............

Bác nào rành món nay giúp em với!

Thanhssssssssssssssssssssssssss

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ách này ko được bạn ah!

Kết quả thu được là các Block chỉ cách nhau 1 khoảng bằng nhau theo chiều dài của Spline.

Chắc phải dùng lisp............

Bác nào rành món nay giúp em với!

Thanhssssssssssssssssssssssssss

Của bạn đây. Mình mới làm cho bạn theo trục x. Bạn xem có đúng ý bạn không nhé.

(defun c:arspl ()
 (setq bl (car (entsel "\nChon doi tuong can array"))
spl (car (entsel "\nChon spline duong dan"))
kc (getreal "\nNhap khoang cach can array: ")
dcb (cdr (assoc 10 (entget bl)))
listep (ACET-GEOM-OBJECT-END-POINTS spl)
p1 (car listep)
p2 (cadr listep)
)
   (if (> (car p1) (car p2))
     (progn
(setq p1 (cadr listep)
      p2 (car listep))
)
     )
 (setq giao T tt 0 pxl p1 listgiao nil)
(while (/= giao nil)
 (setq pxl (list (+ (car pxl) tt) 0.0 0.0))
 (command "xline" "v" pxl "")
 (setq el (entlast))
 (setq giao (acet-geom-intersectwith el spl 1))
 (setq listgiao (append giao listgiao))
 (command "erase" el "")
 (setq tt kc)
 )
 (setq i 0)
(repeat (length listgiao)
 (command "copy" bl "" dcb (nth i listgiao))
 (setq i (1+ 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
Của bạn đây. Mình mới làm cho bạn theo trục x. Bạn xem có đúng ý bạn không nhé.

Theo mình hiểu thì khoảng cách bạn í tính theo đường chim bay chứ phông phải chiếu xuống 1 trục nào đâu bạ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
Theo mình hiểu thì khoảng cách bạn í tính theo đường chim bay chứ phông phải chiếu xuống 1 trục nào đâu bạn.

Đúng là thế!

Mình có rất nhiều hình vẽ phải vẽ theo kiểu này. Vẽ thủ công theo kiểu vẽ hình tròn với bán kính là khoảng cách giữa các Block sẽ mất rất nhiều thời gian.

Cảm ơn Phamngoctu, và cả Duy nữa! Các bạn thật nhiệt tình! :)

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
Theo mình hiểu thì khoảng cách bạn í tính theo đường chim bay chứ phông phải chiếu xuống 1 trục nào đâu bạn.

Theo em thì bạn AutoTay chỉ cần đưa cái đường chim bay về trục x sau khi ẩy xong thì trả về nhue cũ là đượ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
Đúng là thế!

Mình có rất nhiều hình vẽ phải vẽ theo kiểu này. Vẽ thủ công theo kiểu vẽ hình tròn với bán kính là khoảng cách giữa các Block sẽ mất rất nhiều thời gian.

Cảm ơn Phamngoctu, và cả Duy nữa! Các bạn thật nhiệt tình! :)

A mình hiểu ý bạn rồi. Mình sẽ sửa lại cho bạ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
Đúng là thế!

Mình có rất nhiều hình vẽ phải vẽ theo kiểu này. Vẽ thủ công theo kiểu vẽ hình tròn với bán kính là khoảng cách giữa các Block sẽ mất rất nhiều thời gian.

Cảm ơn Phamngoctu, và cả Duy nữa! Các bạn thật nhiệt tình! :)

Bạn dùng thử code này xong cho ý kiến nhé

(defun c:arspl ()
(setq bl (car (entsel "\nChon doi tuong can array"))
spl (car (entsel "\nChon spline duong dan"))
kc (getreal "\nNhap khoang cach can array: ")
dcb (cdr (assoc 10 (entget bl)))
listep (ACET-GEOM-OBJECT-END-POINTS spl)
p1 (car listep)
p2 (cadr listep)
)
(setq pxl p1)
(command "copy" bl "" dcb pxl)
(command "circle" pxl kc "")
(setq el (entlast))
(setq lgiao (acet-geom-intersectwith el spl 2))
(setq pxl (car lgiao))
 (setq lgiao (list 0 0 0))
(command "erase" el "")
(while (> (length lgiao) 1)
 (command "copy" bl "" dcb pxl)
(command "circle" pxl kc "")
(setq el (entlast))
(setq lgiao (acet-geom-intersectwith el spl 2))
(if (equal (car lgiao) pl1 0.001)
 (setq giao (cadr lgiao))
 (setq giao (car lgiao))
)
(setq pl1 pxl)
(setq pxl giao)
(command "erase" el "")
)
)

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ủ công thì vẻ vòng tròn sau đó copy để lấy giao điểm.

có bác nào biết địa chỉ mấy cái block bàn ghế văn phòng làm việc chỉ dùm em cái.em đang cần cái này để làm đồ án mà chưa có thank các bác nhju

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ắc Phamngoctu đã thử rùi. Nhưng ko hiểu sao mình ko làm được!hix......

Sau khi nhập lệnh, mình ko chọn được đối tượng. Và mặc dù ko chọn được đt máy vẫn báo "chon spl duong dan" và "nhap khoang cach can array". :)

Mong được giúp đỡ thêm! Mình mới vẽ CAD nên có thể còn tiếp thu chậm, mong anh em thông cảm!

Thank các bạn nhiềuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

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ắc Phamngoctu đã thử rùi. Nhưng ko hiểu sao mình ko làm được!hix......

Sau khi nhập lệnh, mình ko chọn được đối tượng. Và mặc dù ko chọn được đt máy vẫn báo "chon spl duong dan" và "nhap khoang cach can array". :)

Mong được giúp đỡ thêm! Mình mới vẽ CAD nên có thể còn tiếp thu chậm, mong anh em thông cảm!

Thank các bạn nhiềuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

Sau khi nhập lệnh thì bạn chỉ chọn được đối tượng đơn thôi không chọn được nhóm đối tượng. khi chọn đối tượng thì bạn phải pick trúng đối tượng. Pick trật là hỏng hết. Nếu bạn muốn array nhóm đối tượng thì bạn phải block nó lại trước. Nếu nhu cầu của bạn muốn array nhóm đối tượng mình sẽ sửa cho bạ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

Command: arspl

 

Chon doi tuong can array

Chon spline duong dan

Nhap khoang cach can array: 100

; error: no function definition: ACET-GEOM-OBJECT-END-POINTS

 

Kết quả Bạm có thể giải thích cho mình vì sao được chứ?

Thanhssssssssssssssssssss

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
Command: arspl

 

Chon doi tuong can array

Chon spline duong dan

Nhap khoang cach can array: 100

; error: no function definition: ACET-GEOM-OBJECT-END-POINTS

 

Kết quả Bạm có thể giải thích cho mình vì sao được chứ?

Thanhssssssssssssssssssss

Bạn thêm dòng (vl-load-com) vào đầu đoạn code là được.

  • 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


×