Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
hahavvvv22

Get điểm center curve nằm trong block.

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

Em chào anh chị và mọi người, hiện tại em đang muốn get center của ssget chọn vào (mục đích dùng cho hình Oval). Em gặp lỗi khi ssget là một arc nằm trong block. A/c giúp e với ạ. Em cảm ơn nhiều ạ. 

 

(defun c:getcen ()

  (setq qq (ssget))

  (setq p3 (osnap (vlax-curve-getStartPoint (vlax-ename->vla-object (ssname qq 0))) "cen"))

  (princ p3)

)

 

screenshot_1681282971.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

Để lấy dữ liệu đối tượng (Arc) trong block bạn dùng:

(setq sel (nentsel))
(setq arc (car sel))
(setq pt (cdr (assoc 10 (entget arc))))

Tuy nhiên pt lại là tọa độ trong Block Editor (OCS), muốn sang WCS thì phải cộng với tọa độ tâm Block chứa Arc đó.

Tọa độ tâm Block có thể lấy trong này (nếu ko muốn entsel thêm phát nữa)

(caddr sel)

Bạn có thể tham khảo trong 1 đống hàm loằng ngoằng ở bài này:

https://www.cadtutor.net/forum/topic/63984-getting-a-point-of-an-entity-inside-a-block-as-wcs-coordinates/

 

Mình cũng ko biết lisp nó có hàm trực tiếp chuyển từ OCS sang WCS ko nữa, nhờ các pro giải đáp

  • Like 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
7 phút trước, Duong Nhat Duy đã nói:

Để lấy dữ liệu đối tượng (Arc) trong block bạn dùng:


(setq sel (nentsel))
(setq arc (car sel))
(setq pt (cdr (assoc 10 (entget arc))))

Tuy nhiên pt lại là tọa độ trong Block Editor, muốn sang WCS thì phải cộng với tọa độ tâm Block chứa Arc đó.

Tọa độ tâm Block có thể lấy trong này (nếu ko muốn entsel thêm phát nữa)


(caddr sel)

Bạn có thể tham khảo trong 1 đống hàm loằng ngoằng ở bài này:

https://www.cadtutor.net/forum/topic/63984-getting-a-point-of-an-entity-inside-a-block-as-wcs-coordinates/

vâng. em cảm ơn a nhiều ạ <3

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
Đăng nhập để thực hiện theo  

×