Chuyển đến nội dung
Diễn đàn CADViet
Duyphupc

các sử dụng tài nguyên trong list đã chọn!?

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

em đang phải vẽ vòng bi với các kích thước cho trước là

d: Độ lớn trục

D:Đường kính vòng bi

B:Độ dày vòng bi

Các bác có thể giúp em code tạo một cái list cho trước rồi người dùng nhập đầu vào là d tiếp đến sẽ tìm trong list và trả ra các giá trị là D và B k ạ!! Thanhk các Bác nhiều

  • Vote giảm 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
 (setq then-lst (list '(8 2 2 1.2 1)   '(10 3 3 1.8 1.4)

(setq obi-lst('(12 5 6) '(4 8 9) '(5 7 8) )

giả sử thông số đầu của các list là thông số trục!! Bạn giúp tớ code cho người dùng nhập vào một thông số trục rồi chương trình tìm và so sánh trong list rồi đưa ra một danh sách gồm 3 phần tử.

(defun vetruc (;|dt km k1 k2 k3 k hn kct vtv|; / ans)
  (setq dt-lst  (list -10  10  10.5 11   11.5 12   14   15 16
17   18  19   20   21 22   24   25 26
28   30  32   34   35 36   38   40 42
45   48  50   52   55 60   63   65 70
75   80  85   90   95 100  105  110 115
120  125  130  140  150 160  10000

 

      )
(defun vetruc (;|dt km k1 k2 k3 k hn kct vtv|; / ans)
  (setq dt-lst  (list -10  10  10.5 11   11.5 12   14   15 16
17   18  19   20   21 22   24   25 26
28   30  32   34   35 36   38   40 42
45   48  50   52   55 60   63   65 70
75   80  85   90   95 100  105  110 115
120  125  130  140  150 160  10000
 
(defun vetruc (;|dt km k1 k2 k3 k hn kct vtv|; / ans)
  (setq dt-lst  (list -10  10  10.5 11   11.5 12   14   15 16
17   18  19   20   21 22   24   25 26
28   30  32   34   35 36   38   40 42
45   48  50   52   55 60   63   65 70
75   80  85   90   95 100  105  110 115
120  125  130  140  150 160  10000

 

      )
 (setq then-lst (list '(8 2 2 1.2 1)   '(10 3 3 1.8 1.4)
'(12 4 4 2.5 1.8)  '(17 5 5 3 2.3)
'(22 6 6 3.5 2.8)  '(30 8 7 4 2.8)
'(38 10 8 5 3.3)   '(44 12 8 5 3.3)
'(50 14 9 5.5 3.8) '(58 16 10 6 4.3)
'(65 18 11 7 4.4)  '(75 20 12 7.5 4.9)
'(85 22 14 9 5.4)  '(95 25 14 9 5.4)
'(110 28 16 10 6.4)
'(130 32 18 11 7.4)
'(150 36 20 12 8.4)
'(170 40 22 13 9.4)
'(200 45 25 15 10.4)
'(230 56 32 20 12.4)
 
'(12 4 4 2.5 1.8)  '(17 5 5 3 2.3)
'(22 6 6 3.5 2.8)  '(30 8 7 4 2.8)
'(38 10 8 5 3.3)   '(44 12 8 5 3.3)
'(50 14 9 5.5 3.8) '(58 16 10 6 4.3)
'(65 18 11 7 4.4)  '(75 20 12 7.5 4.9)
'(85 22 14 9 5.4)  '(95 25 14 9 5.4)
'(110 28 16 10 6.4)
'(130 32 18 11 7.4)
'(150 36 20 12 8.4)
'(170 40 22 13 9.4)
'(200 45 25 15 10.4)
'(230 56 32 20 12.4)
      )
  • Vote giảm 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âu hỏi của bạn đã lãnh đủ 2 dấu trừ của ai đó tặng, ấy là do bạn mà thôi.

 

(defun C:OBI( / obi-lst d vitri)
 (setq obi-lst '((12 5 6) (4 8 9) (5 7 8)))
 (initget 7) (setq d (getint "\nNhap do lon truc: "))
 (if (setq vitri (vl-position d (car obi-lst)))
  (list d (nth vitri (cadr obi-lst)) (nth vitri (caddr obi-lst)))
  (alert "Khong co B va D tuong ung voi gia tri d")))
 
  • 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

Nếu ít có thể tạo dạng '(  (d1  D1  B1)

                                        (d2  D2  B2)

                                        (d3  D3 B3)

                                         .......

                                      )

 

 

Muốn truy xuất giá trị nào dùng hàm (foreach i ....) duyệt tất cả các tập hợp con trong tập hợp trên , nếu có  (car i) = phần tử so sánh thì trả về (cadr i) (caddr i)...

Hình như nếu dùng dạng ( d1 . ( D1 B1)) rồi dùng hàm assoc cũng được và nhanh hơn, nhưng giờ chưa có máy có Cad, và cũng chưa có giữ liệu ban đầu chính thức nên mình không kiểm tra được

 

 

 

Nếu số liệu nhiều và để tiện cho việc lấy data tập nguồn (từ txt,quét ...) thì phần tạo danh sách ban đầu, có thể dùng hàm mapcar

 

 

 


(setq lst1 '(12 5 6) lst2 '(4 8 9) lst3 '(5 7 8))

(mapcar '(lambda(x y x) (list x y z)) lst1 lst2 lst3)

 

hix, không có cad chưa kiểm duyệt đâu 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


×