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

Lập trình Autolisp vẽ cụm chi tiết trục ra của hộp giảm tốc bánh răng trụ 1 cấp

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

Anh/ chị nào có thể giúp e phần code lập trình Autolisp vẽ tự động cụm chi tiết trục ra của hộp giảm tốc bánh răng trụ 1 cấp vs ạ? E cảm ơn nhiều 

 

Đa số các anh/ chị viết lisp đều không phải là dân cơ khí, nhưng rất nhiệt tình viết lisp cho dân cơ khí! :) :) :)

Các chi tiết lắp trên trục  ra có nhiều loại khác nhau, cả bên trong ổ lẫn bên ngoài ổ....

Anh có thể gửi hình  vẽ cụm chi tiết lắp trên trục ra của hộp giảm tốc bánh răng trụ 1 cấp lên đây đượ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

 

Đa số các anh/ chị viết lisp đều không phải là dân cơ khí, nhưng rất nhiệt tình viết lisp cho dân cơ khí! :) :) :)

Các chi tiết lắp trên trục  ra có nhiều loại khác nhau, cả bên trong ổ lẫn bên ngoài ổ....

Anh có thể gửi hình  vẽ cụm chi tiết lắp trên trục ra của hộp giảm tốc bánh răng trụ 1 cấp lên đây được không???

anh / chị giúp em viết lisp bánh răng trụ răng nghiêng . Nhập các thông số z ,m ,beta để tính thông số bánh răng.

em cảm ơn nhiều .

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 có viết một lisp, nhưng không biết là do lỗi nào. Mong anh chị sửa giúp. 

 

(defun c:brang ()
 ;; tao cac lop (layer)
  (setq clay (getvar "clayer"))
  (command "-layer" "m" "_mss.bao" "c" 7 "" "lt" "continuous" "" "")
  (command "-layer" "m" "_mss.dut" "c" 6 "" "lt" "hidden" "" "")
  (command "-layer" "m" "_mss.tam" "c" 1 "" "lt" "center" "" "")
  (command "-layer" "m" "_mss.ren" "c" 1 "" "lt" "continuous" "" "")
  (command "-layer" "m" "_mss.cat" "c" 8 "" "lt" "continuous" "" "")
  (command "-layer" "m" "_mss.phantom" "c" 9 "" "lt" "phantom" "" "")
  (command "-layer" "m" "_mss.pro" "c" 5 "" "lt" "continuous" "" "")
  (command "-layer" "m" "_mss.text" "c" 1 "" "lt" "continuous" "" "")
  (setvar "clayer" clay)
  
  (setvar "cecolor" "white")
  (setvar "osmode" 0)
  (setq g0   0
g45 (* pi 0.25)
g90 (* pi 0.5)
g135 (* pi 0.75)
g180 pi
g270 (* pi 1.5)
  )
  ;;nhap cac thong so can thiet
  (setq dt (getreal "\n nhap duong kinh truc lap banh rang:<30> "))
  (initget 6)
  (if (null dt)
    (setq dt 30)
  )  
  (setq m 2)
  ;|(setq lst '((1.25) (1.5) (2) (2.5) (3) (4) (5) (6) (8) (10) (12)
   )
)
  (initget 6)
  (setq m2 (getreal "\nNhap vao modun:<2> "))
  (if (null m2)
    (setq m2 2)
  )
  (setq m1 (assoc m2 lst))
  (while (null m1)
    (prompt
      "\nNhap modun chua theo tieu chuan, yeu cau nhap lai!"
    )
    (setq m2 (getreal "\nNhap lai:"))
    (setq m1 (assoc m2 lst))
    (setq m (nth 0 m1))
  )
  (setq z (getreal "\nNhap so rang >=17 <20>:"))
  (if (null z)
    (setq z 20)
  )
  (while (< z 17)
    (setq z (getreal "\n nhap lai so rang:"))
  )
  (setq beta (getreal "\nNhap goc nghieng rang <=20 <15>:"))
  (if (null beta)
    (setq beta 15)
  )
  (while (> beta 20)
    (setq beta (getreal "\n nhap lai goc nghieng rang:"))
  )|;
  ;;Thong so banh rang nghieng
  (setq d1 (fix (/ (* m z) (cos (/(* beta pi) 180)))) ;duong kinh vong chia
ddr (fix (+ d1 (* 2 m))) ;duong kinh dinh rang
dcr (fix (- d1 (* 2.5 m))) ;duong kinh chan rang
lm (fix (* 1.5 dt)) ;chieu dai mayo so bo
  )
  ; Ve banh rang nghieng
  (setq p1 (getpoint "\nChon diem tam banh rang:")
        p2 (polar p1 g180 lm)
)
  (command "-layer" "m" "_mss.tam" "")
  (command ".pline" p1 p2"")
  (setq p3 (polar p2 g90 (* dt 0.5))
p4 (polar p2 g90 (* dcr 0.5))
p5 (polar p2 g90 (* d1 0.5))
p6 (polar p5 g45 (/(* 2 (- (* ddr 0.5) (* d1 0.5))) (sqrt 2))
p10 (polar p1 g90 (* dt 0.5))
p9 (polar p1 g90 (* dcr 0.5))
p8 (polar p1 g90 (* d1 0.5))
p7 (polar p8 g135 (/(* 2 (- (* ddr 0.5) (* d1 0.5))) (sqrt 2))
)
  (command "-layer" "m" "_mss.bao" "")
  (command ".pline" p2 p3"")
  (command ".pline" p1 p10"")
  (setq ss (ssadd))
  (command ".pline" p3 p4 p9 p10"")
  (ssadd (entlast) ss)
  (command ".pline" p9 p8"")
  (command ".pline" p8 p7"")
  (command ".pline" p4 p5"")
  (command ".pline" p5 p6"")
  (command ".pline" p6 p7"")
  (command "-layer" "m" "_mss.tam" "")
  (command ".pline" p5 p8"")
  
  ; ve mat cat
  
  (command "-layer" "m" "_mss.cat" "")
  (command "-hatch" "s" ss "" "p" "ansi31" 35 0 "")  
       (princ) 
)

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

Hề hề hề,

File lisp của bạn có khá nhiều lỗi.

Một số lỗi mình phát hiện được như sau:

1/-  ;|(setq lst '((1.25) (1.5) (2) (2.5) (3) (4) (5) (6) (8) (10) (12)

Dòng code này có dấu " ; "đầu dòng nên đã bị vô hiệu hóa. Như vậy các dòng code có chứa các ngoặc đóng của các hàm quote và setq sẽ là bị thừa do chưa vô hiệu hóa nó.

Giả sử không vô hiệu hóa dòng code này, tứ là không có dấu "; " thì dòng code này cũng sai vì trong lisp không có hàm nào là (1.25) (1.5) ...... cả.

Nếu bạn muốn tạo một list gồm các giá trị số này thì nó sẽ phải là (list 1.25 1.5 2 .........) Các phần tử trong đó cách nhau một khoảng trắng.

Nếu bạn muốn có một list dạng ((1.25) (1.5) (2).....) thì bạn cần có thêm các hàm quote hoặc hàm (list 1.5) ( list 1.25) bên trong cái hàm quote của bạn.

2/- Do bạn đã vô hiệu hóa dòng code này nên biến lst chưa hình thành. vậy nên các hàm (assoc m2 lst) là vô nghĩa. Bạn cũng nên xem lại định nghĩa hàm (assoc ....) bởi theo mình nghĩ thì hàm (assoc ...) không áp dụng được với trường hợp biến lst của bạn cấu tạo như vậy.

3/- Bạn lưu ý việc nhập giá trị biến m2. Theo đó biến này là một số thực chứ không phải số nguyên. Do đó dù bạn nhập là 2 lisp vẫn hiểu đó là 2.0 và như vậy hàm (assoc m2 lst) sẽ hoạt động không đúng.

4/- Những chỗ khác mình chưa check được hết nên bạn hãy chỉnh sửa lại những điều trên rồi chạy thử lisp xem có còn bị lỗi nữa không 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

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  

×