C4DLounge.eu - Cinema 4D Gebruikers Forum  

Go Back   C4DLounge.eu - Cinema 4D Gebruikers Forum > RESOURCES > Vragen >>> > Plugins & Scripts/Python/Coffee/Xpresso

Reply
 
Thread Tools Display Modes
  #1  
Old 11th January 2019
pgrooff pgrooff is offline
Senior Member
 
Join Date: Aug 2009
Posts: 819
Default Bin packaging

Heeft iemand ervaring met Bin Packaging?
Ik wil een aantal rechthoeken met verschillende afmetingen optimaal over een plane verdelen.
__________________
Kijk ook eens op mijn YouTube Channel of mijn Cinema4d Blog.
Reply With Quote
  #2  
Old 11th January 2019
douwe's Avatar
douwe douwe is offline
Admin Team
 
Join Date: Feb 2010
Posts: 1,891
Default

Quote:
Originally Posted by pgrooff View Post
Heeft iemand ervaring met Bin Packaging?
Ik wil een aantal rechthoeken met verschillende afmetingen optimaal over een plane verdelen.
Heb wat dit soort uitdagingen betreft enkel met circle packing gespeeld, lang geleden.

Maar je bent handig met Python.
Ken je rectpack ? Dat is een collectie algo's voor knapsacking.

Dat zou je vlot een packing moeten kunnen opleveren.

Wel benieuwd wat je er van gaat maken !
Reply With Quote
  #3  
Old 12th January 2019
pgrooff pgrooff is offline
Senior Member
 
Join Date: Aug 2009
Posts: 819
Default

Goede tip, bedankt.
Alleen een external python module installeren lukt me nog niet.
Ik kan python in een command window opstarten, maar python setup.py install geeft dan een melding dat setuptools niet gevonden kan worden.
Nu lijkt het mij dat cinema 4d python dit toch moet hebben, maar ik weet niet waar en niet hoe.
Heb jij misschien wat aanwijzingen?
__________________
Kijk ook eens op mijn YouTube Channel of mijn Cinema4d Blog.
Reply With Quote
  #4  
Old 12th January 2019
douwe's Avatar
douwe douwe is offline
Admin Team
 
Join Date: Feb 2010
Posts: 1,891
Default

Zit nu niet in de buurt van cinema, maar deze link brengt wellicht raad : http://www.plugincafe.com/forum/foru...+python+module
Reply With Quote
  #5  
Old 12th January 2019
pgrooff pgrooff is offline
Senior Member
 
Join Date: Aug 2009
Posts: 819
Default

De door jou aangegeven post snap ik niet helemaal.
rectpack lijkt een aantal source packages, dus misschien hoef ik geen set-up te doen?
Hoewel de doc wel aangeeft setup.py wel te doen.

De post geeft een verwijzing naar een andere nieuwere post, die iets doet met localimport. Maar dan is het mij onduidelijk hoe de rectpack packages heet of waar die staat.

with localimport('res/modules'):
import some_package
assert 'some_package' not in sys.modules

Hier een stukje code, die de volgende message geeft:
Code:
File "C:\Program Files\MAXON\CINEMA 4D R20.038\plugins\bin\bin command v01.pyp", line 56, in Execute
    from rectpack import newPacker
ImportError: No module named rectpack
Code:
import c4d
from c4d import plugins, gui
import os, sys
#import 

PLUGIN_ID_BIN_COMMAND = 1039121978
pluginString = "Bin Command v01"
   
# localimport-v1.7.3-blob-mcw99
import base64 as b, types as t, zlib as z; m=t.ModuleType('localimport');
m.__file__ = __file__; blob=b'\
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'
exec(z.decompress(b.b64decode(blob)), vars(m)); _localimport=m;localimport=getattr(m,"localimport")
del blob, b, t, z, m;  

    
class BINLIB(c4d.plugins.CommandData):

    def Execute(self, doc):
        with localimport(''):
            import rectpack
        assert rectpack not in sys.modules
        
        from rectpack import newPacker

        rectangles = [(100, 30), (40, 60), (30, 30),(70, 70), (100, 50), (30, 30)]
        bins = [(300, 450), (80, 40), (200, 150)]

        packer = newPacker()

        # Add the rectangles to packing queue
        for r in rectangles:
            packer.add_rect(*r)

        # Add the bins where the rectangles will be placed
        for b in bins:
            packer.add_bin(*b)

        # Start packing
        packer.pack()

        print "Bin Command executed."
        return True

if __name__ == '__main__':
    
    bmp = c4d.bitmaps.BaseBitmap()
    dir, file = os.path.split(__file__)
    fn = os.path.join(dir, "res", "BinCommand.png")
    bmp.InitWith(fn)
 
    okyn = plugins.RegisterCommandPlugin(PLUGIN_ID_BIN_COMMAND, pluginString, 0, bmp, "", BINLIB())
    if (okyn): print pluginString + " initialized."
    else: print "Error initializing " + pluginString
Attached Files
File Type: zip bin packing test.zip (115.1 KB, 1 views)
__________________
Kijk ook eens op mijn YouTube Channel of mijn Cinema4d Blog.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT +2. The time now is 10:03.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Met trots gehost door Webdesign bureau Graphic Violence.
(c) C4DLounge.eu . All documents on this forum are owned by their respective creators and may not be sold or republished in any way.