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

nhờ sửa lisp

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

chào anh em cad việt. hôm nay tớ có 1 lisp xuất các hình chiếu từ solid ra các hình chiếu top, font, back, left, right và iso.. nhờ các pro chỉnh các khuyết điểm sau.

kd1. mỗi lần xuất chỉ được 1 solid

kd2. khoảng cách giữa các hình chiếu (top, font, left...) lúc xuất ra lúc thì xa quá. lúc thì chồng lên nhau..

xin các bậc tiền bối giúp em

sửa về kd1: chọn được nhiều solid 1 lần.

sửa về kd2: tự động điều chỉnh khoảng cách giữa các hình chiếu dựa vào đối tượng solid gốc.

 

Thực ra đây là chuỗi lệnh trong cad...(xin lỗi các anh em tớ chưa bàn tới hướng chiếu tiêu chuẩn ở đây)http://www.cadviet.com/upfiles/3/122369_xcxuat_6_hinh_chieuf2_1.lsp

thao tác lệnh như sau.

1-di chuyển ucs vào chính giữa tâm chi tiết  (vì đây là chi tiết 3d solid nên tớ không biết làm sao xác định tâm chính xác)

2- sau đó di chuyển chi tiết solid 1 khoảng ( b­ước này quyết định khoảng cách giữa các hình chiếu mà tớ hỏi các bạn trên kd2( khuyết điểm 2)-bước này mình làm thủ công là chọn 2 điểm trên màn hình.

3_ chuyển sang layout dùng lệnh solprof xuất hình chiếu top ( bước thì chuẩn men_không phải bàn cãi)

4_sau đó là rotate3d  solid theo cùng chiều kim đồng hồ quanh trục x.( ở bước này mới chính thức xác định khoảng cách khoảng cách tương đối với solid gốc hay là khoảng cách các hình chiếu sau khi kết thúc chuỗi lệnh => dùng lệnh solprof xuất hình chiếu ta được hình chiếu right. next  rotae3d trở về vị trí top..

làm các bước tương tự như vây với các hướng xuay khác nhau ta được các hình chiếu left, form.back, iso

 

tóm lại: theo tớ những yếu tố ảnh hưởng tới 2 khuyết điểm trên đó là.

1-không xác định được tâm chính xác của solid( chỉ chon theo thủ công)

2-từ việc xác định tâm không chính xác nên lúc di chuyển solid cũng ảnh hưởng

 

ý tưởng:

-dùng hàm gì đó để xác  dịnh các tâm chính xác của các solid vì mỗi lần xuất thì ucs phải nằm tại tâm chi tiết ( có thể kết hợp nhiều hàm với hàm while. khả năng lisp tớ có hạn

-tự động xác dịnh khoảng cách dựa vào solid gốc trên bước 2

thật sự tớ chỉ hiểu có vậy thôi. mong anh em chỉ giáo. có gì sai mong anh em lượng thứ.

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 anh em cad việt. hôm nay tớ có 1 lisp xuất các hình chiếu từ solid ra các hình chiếu top, font, back, left, right và iso.. nhờ các pro chỉnh các khuyết điểm sau.

kd1. mỗi lần xuất chỉ được 1 solid

kd2. khoảng cách giữa các hình chiếu (top, font, left...) lúc xuất ra lúc thì xa quá. lúc thì chồng lên nhau..

xin các bậc tiền bối giúp em

sửa về kd1: chọn được nhiều solid 1 lần.

sửa về kd2: tự động điều chỉnh khoảng cách giữa các hình chiếu dựa vào đối tượng solid gốc.

 

Thực ra đây là chuỗi lệnh trong cad...(xin lỗi các anh em tớ chưa bàn tới hướng chiếu tiêu chuẩn ở đây)http://www.cadviet.com/link/?f=upfiles/3/122369_xcxuat_6_hinh_chieuf2_1.lsp&w=81845

thao tác lệnh như sau.

1-di chuyển ucs vào chính giữa tâm chi tiết  (vì đây là chi tiết 3d solid nên tớ không biết làm sao xác định tâm chính xác)

2- sau đó di chuyển chi tiết solid 1 khoảng ( b­ước này quyết định khoảng cách giữa các hình chiếu mà tớ hỏi các bạn trên kd2( khuyết điểm 2)-bước này mình làm thủ công là chọn 2 điểm trên màn hình.

3_ chuyển sang layout dùng lệnh solprof xuất hình chiếu top ( bước thì chuẩn men_không phải bàn cãi)

4_sau đó là rotate3d  solid theo cùng chiều kim đồng hồ quanh trục x.( ở bước này mới chính thức xác định khoảng cách khoảng cách tương đối với solid gốc hay là khoảng cách các hình chiếu sau khi kết thúc chuỗi lệnh => dùng lệnh solprof xuất hình chiếu ta được hình chiếu right. next  rotae3d trở về vị trí top..

làm các bước tương tự như vây với các hướng xuay khác nhau ta được các hình chiếu left, form.back, iso

 

tóm lại: theo tớ những yếu tố ảnh hưởng tới 2 khuyết điểm trên đó là.

1-không xác định được tâm chính xác của solid( chỉ chon theo thủ công)

2-từ việc xác định tâm không chính xác nên lúc di chuyển solid cũng ảnh hưởng

 

ý tưởng:

-dùng hàm gì đó để xác  dịnh các tâm chính xác của các solid vì mỗi lần xuất thì ucs phải nằm tại tâm chi tiết ( có thể kết hợp nhiều hàm với hàm while. khả năng lisp tớ có hạn

-tự động xác dịnh khoảng cách dựa vào solid gốc trên bước 2

thật sự tớ chỉ hiểu có vậy thôi. mong anh em chỉ giáo. có gì sai mong anh em lượng thứ.


 

 

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
    (setq dt (ssget))
    (setq ol (mapcar 'vlax-ename->vla-object(vl-remove-if 'listp (mapcar 'cadr (ssnamex dt)))))
    (foreach e ol
        (vla-getboundingbox e 'bl 'tr)
        (setq bl (safearray-value bl)  tr (safearray-value tr))
        (if p1
            (setq p1 (mapcar 'min p1 bl)  p2 (mapcar 'max p2 tr))
            (setq p1 bl p2 tr))
    )
 

Nhớ đặt p1, p2 là biến cục bộ hoặc set = nil

p1, p2 là tọa độ max, min của hình hộp bao quanh dt

Từ p1, p2 tính ra các điểm khác VD a là trung điểm p1, p2

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

xin lỗi bạn ndtnv đoạn mã lisp trên tớ không hiểu tác dụng của nó, bạn có thể giải thích rỏ công dụng và ứng dụng trong lisp xuất hình chiếu của mình đượ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

Đăng nhập để thực hiện theo  

×