Giải bài toán về sắp xếp tối ưu các hình chữ nhật

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Tôi đang tập tành về VBA, nhờ các bạn hướng dẩn cho code đễ điểu khiển việc quay tự động AutoShape theo thời gian... Trong file này, muốn quay thì phải bấm vào Button... Các bạn giúp tôi 1 code sao cho khi tôi bấm vào nút QUAY thì AutoShape sẽ quay... đúng 1 vòng thì dừng hoặc sau khoảng thời gian định trước thì dừng..
ANH TUẤN
 

File đính kèm

anhtuan1066 đã viết:
Tôi đang tập tành về VBA, nhờ các bạn hướng dẩn cho code đễ điểu khiển việc quay tự động AutoShape theo thời gian... Trong file này, muốn quay thì phải bấm vào Button... Các bạn giúp tôi 1 code sao cho khi tôi bấm vào nút QUAY thì AutoShape sẽ quay... đúng 1 vòng thì dừng hoặc sau khoảng thời gian định trước thì dừng..
ANH TUẤN

Quay vèo 1 cái hay quay từ từ như kim đồng hồ hả bác ???


Thân!
 
Upvote 0
Ah... là quay từ từ như đồng hồ vậy! Tôi nhớ ko lầm thì lúc trước Bắp có làm món này rồi... thậm chí là dễ như ăn khoai.. hi.. hi.. Nhưng giờ ko nhớ nó nằm đâu mà tìm nữa...
Bắp giúp giùm với
ANH TUẤN
 
Upvote 0
Soibien ơi, mình đang tập tành thôi mà... code này cũng rất đơn giản, nhưng thú thật là tôi ko biết cách nào biến đổi thành "cái của tôi" dc... Có thể cho tôi 1 code nào đó thực tế hơn ko?
ANH TUẤN

Mục đích của tôi là làm như thế này đây (xem file)... nhưng thay vì bấm "Tới" và "Lui" từng chút 1 thì mình muốn bấm 1 phát thôi... nó sẽ tới lui đến khi bấm "Dừng" hoặc sau 1 khoảng thời gian nào đó
Các bạn giúp với
 

File đính kèm

Upvote 0
anhtuan1066 đã viết:
Tôi đang tập tành về VBA, nhờ các bạn hướng dẩn cho code đễ điểu khiển việc quay tự động AutoShape theo thời gian... Trong file này, muốn quay thì phải bấm vào Button... Các bạn giúp tôi 1 code sao cho khi tôi bấm vào nút QUAY thì AutoShape sẽ quay... đúng 1 vòng thì dừng hoặc sau khoảng thời gian định trước thì dừng..
ANH TUẤN

Bác xem cái này nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào các bạn, tui có 1 ý tưởng này, tui nghĩ là phù hợp với đề tài này. Tui làm trong ngành cơ khí, gặp 1 vấn đề phải khai triển tôn, vấn đề là sắp xếp những mảnh hình chữ nhật trên 1 tấm tôn sao cho khi cắt sẽ hợp lý nhất, sau khi bấm nút Add thì Autoshape 1 sẽ được Add vào Autoshape 2 với kích thước đã định (Tất nhiên là Size của Autoshape sẽ thay đổi theo chiều dài, chiều rộng đã định), sau đó ta sẽ điều chỉnh vị trí của Autoshape 1 cho hợp lý bằng 4 nút Up, Down, Right, Left. Sau đó tiếp tục Add các Autoshape khác.....Các bạn xem file đính kèm nhé!!!....
 

File đính kèm

Upvote 0
cong đã viết:
Chào các bạn, tui có 1 ý tưởng này, tui nghĩ là phù hợp với đề tài này. Tui làm trong ngành cơ khí, gặp 1 vấn đề phải khai triển tôn, vấn đề là sắp xếp những mảnh hình chữ nhật trên 1 tấm tôn sao cho khi cắt sẽ hợp lý nhất, sau khi bấm nút Add thì Autoshape 1 sẽ được Add vào Autoshape 2 với kích thước đã định (Tất nhiên là Size của Autoshape sẽ thay đổi theo chiều dài, chiều rộng đã định), sau đó ta sẽ điều chỉnh vị trí của Autoshape 1 cho hợp lý bằng 4 nút Up, Down, Right, Left. Sau đó tiếp tục Add các Autoshape khác.....Các bạn xem file đính kèm nhé!!!....

Cám ơn bạn đã chia sẻ, nhưng tiếc quá, hình như marcro trong file này hình như là bị "BKAV" ăn hết rồi, bạn có file nào khác không?
 
Upvote 0
Hi SoiBien,
File đính kèm của tui chỉ là ý tưởng thôi! Mong mọi người cùng chia sẻ kinh nghiệm...
 
Upvote 0
cong đã viết:
Hi SoiBien,
File đính kèm của tui chỉ là ý tưởng thôi! Mong mọi người cùng chia sẻ kinh nghiệm...

à, nếu vậy thì bài này nên là một bài toán tối ưu, chứ còn dùng 4 nút đó thì... lôi bằng tay nhanh hơn bạn ạ. Còn tối ưu như thế nào thì nhờ các bác nào có cách giải hay thì cho một chút ý kiến.

P.s : tối ưu này chắc là tối ưu diện tích phải không bác? độ dày mỗi nhát cắt là bao nhiêu đơn vị hả bác?
 
Upvote 0
Đúng vậy, tôi cũng nghĩ đây là bài toán tối ưu thôi.. dựa vào chiều dài rông cho trước đễ tính ra số tấm tôn nhiều nhất có thể cắt dc... Tuy nhiên, kết quả báo "có thể cắt dc 5 tấm tôn" chẳng hạn.. nhưng cắt như thế nào mới là điều mình cần biết... Nên bài bạn Cong đưa ra cũng khá thực tế... Nhìn trực tiếp vào hình ta sẽ biết dc "CÁCH CẮT TÔN"
 
Upvote 0
Một tấm lớn cắt ra nhiều tấm nhỏ có cùng kích thước thì còn dễ, đằng này yêu cầu là nhiều tấm nhỏ có kích thước khác nhau mới khó, cái này chắc phải nhờ các chuyên gia về giải thuật mới được.
 
Upvote 0
SoiBien đã viết:
Một tấm lớn cắt ra nhiều tấm nhỏ có cùng kích thước thì còn dễ, đằng này yêu cầu là nhiều tấm nhỏ có kích thước khác nhau mới khó, cái này chắc phải nhờ các chuyên gia về giải thuật mới được.
vậy bây giờ mình làm đơn giản hơn 1 chút: 1 tấm tôn có kích thước xác định trước, dc cắt ra thành nhiều mảnh, mỗi mảnh có kích thước giống nhau... Vậy số mảnh lớn nhất có thể cắt là bao nhiêu? Và cắt như thế nào?
Trong cty tôi cũng có làm việc với bài toán này, chuyên dùng cắt vật liệu, có điều họ ko làm bằng Excel... Họ có 1 phần mềm riêng, đặt vật liệu vào bàn, máy tính tự động dò tìm và ra dc kết quả tối ưu nhất đồng thời tự động cắt luôn... Tôi đễ ý là việc sắp xếp các mảnh dc hiển thị ngay trên máy tính và việc sắp xếp này ko theo trật tự nhất định.. Chỉ với 1 tiêu chí là làm sao cho phần vật liệu thừa đạt nhỏ nhất
Ko biết với Excel thì làm thế nào? E rằng hơi căng
 
Upvote 0
Hi anhtuan1066, SoiBien
Thật ra chương trình anhtuan1066 đề cập đến tui chưa gặp lần nào, ngoài thực tế tui đã gặp trường hợp như vậy nè: hình dạng cần cắt rất nhiều (tam giác, chữ nhật, đa giác, ...) tất cả hình dạng này đều được sắp xếp lên 1 tấm tôn bằng tay sao cho tối ưu nhất (ở đây tui thấy người ta sắp xếp bằng Autocad), sau đó xuất hình đó sang máy cắt tôn CNC (cắt bằng Oxy-Acetylen). Ý tưởng của tui ban đầu là làm cho hình chữ nhật thôi, sau đó có thể phát triển thêm cho hình dạng khác. Tui đang bí vấn đề sau:
- Add được nhiều autoshape và các autoshape đó không bị lấp bởi autoshape đại diện cho tấm tôn.
- lập trình cho nút Up, Down, Right, Left để điều chỉnh autoshape vừa mới add.
Mong các bạn giúp đỡ! thanks
 
Upvote 0
Đúng rồi... cty tôi cũng dùng CNC đễ cắt vật liệu, có điều ko dùng Acad đễ làm việc sắp xếp đâu... người ta có 1 chương trình hẳn hoi, tự động hoàn toàn từ A tới Z... Tất cả nhiệm vụ của mình là cho chương trình biết các kích thước...
Có điều nếu làm việc này bằng Excel thì tôi ko biết có làm dc ko?
 
Upvote 0
Chỉ là di chuyển, thì tham khảo:

cong đã viết:
Hi anhtuan1066, SoiBien
thực tế đã gặp trường hợp như vậy nè: hình dạng cần cắt rất nhiều (tam giác, chữ nhật, đa giác, ...) tất cả hình dạng này đều được sắp xếp lên 1 tấm tôn bằng tay sao cho tối ưu nhất (ở đây tui thấy người ta sắp xếp bằng Autocad), sau đó xuất hình đó sang máy cắt tôn CNC (cắt bằng Oxy-Acetylen). Ý tưởng của tui ban đầu là làm cho hình chữ nhật thôi, sau đó có thể phát triển thêm cho hình dạng khác. Tui đang bí vấn đề sau:
- Add được nhiều autoshape và các autoshape đó không bị lấp bởi autoshape đại diện cho tấm tôn.
- lập trình cho nút Up, Down, Right, Left để điều chỉnh autoshape vừa mới add.
Mong các bạn giúp đỡ! thanks
Bạn đến mục trò chơi, xem file http://giaiphapexcel.com/forum/showthread.php?t=1604 của mình thử, chưa chắc giúp được bạn gì đâu!

/)/hưng vẫn mạnh dạn gợi í!
 
Upvote 0
Quay trở lại với bài toán QUAY OBJECT.. nói thật tôi cũng chưa thể thấu đáo dc tất cả, kễ cả những bài mà các bạn giới thiệu... Vì code dài quá, chạy thì dc nhưng ko hiểu... Theo các bạn thì trong file của tôi nên thêm cái gì nữa thật đơn giản đễ Object có thể tự động quay dc...
Tôi đang mày mò với VBA nên khó mà theo kịp những file đã hoàn chỉnh! Mong các bạn hiểu cho!
 
Upvote 0
anhtuan1066 đã viết:
Quay trở lại với bài toán QUAY OBJECT.. nói thật tôi cũng chưa thể thấu đáo dc tất cả, kễ cả những bài mà các bạn giới thiệu... Vì code dài quá, chạy thì dc nhưng ko hiểu... Theo các bạn thì trong file của tôi nên thêm cái gì nữa thật đơn giản đễ Object có thể tự động quay dc...
Tôi đang mày mò với VBA nên khó mà theo kịp những file đã hoàn chỉnh! Mong các bạn hiểu cho!

Nếu đơn giản quá thì cũng phải có hàm ontimer để nó chạy mỗi s một ít, còn muốn tới là tới lui là lui thì buộc phải thêm mấy biến + thay button của bác là control.

em up cho bác 2 file, 2 là file đơn giản nhất là làm cho nó quay, bác chẳng làm gì được ngoài việc ngồi ngó nó quay

file 1 thì bác muốn tới thì tới, muốn lui thì lui, ngưng giữa chừng cũng được
 

File đính kèm

Upvote 0
ctrl+break là phím nào zậy mình tìm hoài mà không thấy
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom