Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
auto89

Bài Toán Khó Nhờ Các Pro Autolisp Giải Giúp

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

em có khối hình hộp kích thước : a  x t x r và vát  cạnh xung quanh khối hộp là n x 45 độ, em muốn thể hiện hình này lên 3 hình chiếu: thẳng góc, cạnh, bằng. khi gõ lệnh em nhập giá trị thực của: a, t, r và n  và nó tự đông xuất ra 3 hình chiếu của khối hộp có kích thước như vậy.

- cho em hỏi bài toán này có lập autolisp được không

-nếu lập được pro nào rảnh thì giúp em với nhé.  bản vẽ của em nó là thế này:http://www.cadviet.com/upfiles/6/154289_khoi_hop_3.pdf

Xin cám ơn mọi người đã ghé qua xem.

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

Mấy cái này Autolisp làm cái rẹt, nhưng nếu bạn đưa ra được lý do thuyết phục thì khả dĩ.

(Xem thêm ở chữ ký của tôi, ý đầu tiên. Và đó cũng lý do để ai đó có thể giúp bạn hay không)

  • Vote tăng 2

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ám ơn bác Doan Van Ha tuy bài toán này  vẽ rất đơn giản nhưng mà nó hay được lặp lại và nó cũng là bài toán mình mới học để tập viết, ý tưởng của mình thế này . định nghĩa số thực t,a,r,n và xác định tọa độ các điểm trên hình chiếu theo t, a, r, n và dung lệnh line để nối các điểm của từng hình chiếu lại với nhau, nhưng ý tưởng này của mình đã bị that bại thảm hại ở ngay dòng nối  thử line đầu tiên trên hình chiếu bang :​

 ( defun c : ctb ( / t a r n ))

(setq t ( getreal ( "/ngia tri cua t :")))

(setq a ( getreal ( "/ngia tri cua a:")))

(setq r (getreal ( "/ngia tri cua r :")))

(setq ​n (getreal ( "/ngia tri cua n :")))

(command "line" "0,0,0" "t,0,0" "")

(princ))

bác nào biết chỉ dùm em với ạ

  • 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

cám ơn bác Doan Van Ha tuy bài toán này  vẽ rất đơn giản nhưng mà nó hay được lặp lại và nó cũng là bài toán mình mới học để tập viết, ý tưởng của mình thế này . định nghĩa số thực t,a,r,n và xác định tọa độ các điểm trên hình chiếu theo t, a, r, n và dung lệnh line để nối các điểm của từng hình chiếu lại với nhau, nhưng ý tưởng này của mình đã bị that bại thảm hại ở ngay dòng nối  thử line đầu tiên trên hình chiếu bang :​

 ( defun c : ctb ( / t a r n ))

(setq t ( getreal ( "/ngia tri cua t :")))

(setq a ( getreal ( "/ngia tri cua a:")))

(setq r (getreal ( "/ngia tri cua r :")))

(setq ​n (getreal ( "/ngia tri cua n :")))

(command "line" "0,0,0" "t,0,0" "")

(princ))

bác nào biết chỉ dùm em với ạ

- Đỏ: khó tin, vì đây chỉ là 1 bài tập vẽ kỹ thuật.

- Xanh: nếu tập viết thì bí chỗ nào hỏi chỗ đó, đừng y/c kiểu này.

- Cách vẽ line từ điểm A(x1,y1,z1) đến điểm B(x2,y2,z2):

(command "line" (list x1 y1 z1) (list x2 y2 z2) "")

  • Vote tăng 2

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

em không có gì nói dối các bác cả các bác thì không dùng nhưng em thường dùng đi dùng lại cái khối hộp này. em xin tiếp nhận sự chỉ bảo của bác Doan Van Ha và em tự lập và xin sự chỉ bảo thêm của mọi người, em đã tự lập nó ra khối hộp nhưng khi thêm n  để vát c vào thì bị lỗi ngay, kết quả như sau :

 khi không có n:

mã đoạn code của em nó 

(defun c:ctb(/ b a r n)  

(setq t(getreal"\ngia tri cua t :"))

(setq a(getreal"\ngia tri cua a:"))

(setq r(getreal"\ngia tri cua r :"))

(setq ​n(getreal"\ngia tri cua n :"))

(command "line" (list 0 0 0) (list 0 t 0) (list a t 0) (list a 0 0) "c" "")

(command "line" (list 0 (+ t 10) 0) (list 0 (+ t r 10) 0) (list a (+ t r 10) 0) (list a (+ t 10) 0) "c" "")

(princ))

 

nhưng em thêm n vào để vát C thì bị lỗi:

 

 

(defun c:ctb(/ b a r )  

(setq t(getreal"\ngia tri cua t :"))

(setq a(getreal"\ngia tri cua a:"))

(setq r(getreal"\ngia tri cua r :"))

(setq ​n(getreal"\ngia tri cua n :"))

(command "line" (list n 0 0) (list 0 n 0) (list 0 (- t n) 0) (list n t 0) (list (- a n) t 0) (list a (- t n) 0) (list a n 0) (list (- a n) 0 0) "c" "")

(princ))

 

 

 và nó thông báo lỗi như sau:

   Command: ; error: bad argument type: numberp: nil

em thay n bằng 2 thì nó lại vát C được !? :

mã đoạn code của em nó:(defun c:ctb(/ b a r n)  

(setq t(getreal"\ngia tri cua t :"))

(setq a(getreal"\ngia tri cua a:"))

(setq r(getreal"\ngia tri cua r :"))

(setq ​n(getreal"\ngia tri cua n :"))

(command "line" (list 2 0 0) (list 0 2 0) (list 0 (- t 2) 0) (list 2 t 0) (list (- a 2) t 0) (list a (- t 2) 0) (list a 2 0) (list (- a 2) 0 0) "c" "")

(princ))

cuối cùng thì em bỏ n đi và thay bằng 2:

(defun c:ct2(/ b a r)

(setq t(getreal"\ngia tri cua t :"))

(setq a(getreal"\ngia tri cua a:"))

(setq r(getreal"\ngia tri cua r :"))

(command "line" (list 2 0 0) (list 0 2 0) (list 0 (- t 2) 0) (list 2 t 0) (list (- a 2) t 0) (list a (- t 2) 0) (list a 2 0) (list (- a 2) 0 0) "c" "")

(command "line" (list 0 (+ t 10) 0) (list 0 (+ t r 10) 0) (list a (+ t r 10) 0) (list a (+ t 10) 0) "c" "")

(command "line" (list 2 (+ t 10) 0) (list 2 (+ t r 10) 0) (list (- a 2) (+ t r 10) 0) (list (- a 2) (+ t 10) 0) "c" "")

(command "line" (list (+ a 10) (+ t 10) 0) (list (+ a 10) (+ t r 10) 0) (list (+ a 10 t) (+ t r 10) 0) (list (+ a 10 t) (+ t 10) 0) "c" "")

(command "line" (list (+ a 12) (+ t 10) 0) (list (+ a 12) (+ t r 10) 0) (list (+ a 8 t) (+ t r 10) 0) (list (+ a 8 t) (+ t 10) 0) "c" "")

(princ))

các pro chỉ giáo em với để em thêm vát C tùy ý như thế này thì vát C to quá!!!!!!!!!!!!

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

Bài toán của bạn đây.


Thực hiên lệnh "VE"  để vẽ nhé. 


Kích thước thì bạn tự DIM lấy vậy.   :D   :D   :D


 


Góp ý chút với bạn:


1. Bài vẽ có nhiều điểm. Bạn nên đặt tên cho từng điểm đễ dễ kiểm soát trong quá trình viết lisp.


2. Các điểm tuân theo quy luật thì bạn dùng hàm (Polar....) sẽ trực quan hơn.


 


http://www.cadviet.com/upfiles/6/124641_ve_1.lsp


  • 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

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

×