Ergebnis 1 bis 9 von 9

Thema: Kleine Polygonkrper aus gesamten Krper herausfiltern

  1. #1
    C4Dnetwork-Supporter Avatar von fLuppster
    Registriert seit
    20.05.2013
    Ort
    Erfurt
    Beitrge
    1.190
    Software
    CINEMA 4D R15

    Standard Kleine Polygonkrper aus gesamten Krper herausfiltern

    Gibt es irgendein Skript/Workflow/sonstwas um aus einem Mesh (besteht aus vielen verschiedenen, zusammengesetzten Krpern) z. B. alle Krper die aus weniger als 10 Polys bestehen auszuwhlen bzw. zu lschen?

    Nicht mglich! 0 Nicht mglich!
    C4D R15 / Vectorworks 2014 / Win10
    i7 4790K / 32GB RAM / Titan XP + 1080 Ti / Octane / Corona

  2. #2
    Benutser Avatar von rownn
    Registriert seit
    17.12.2011
    Ort
    DDB
    Beitrge
    630
    Software
    MSA

    Standard

    Hey,

    schnell und schmutzig.
    Probier das mal. Im Dialog kannst du die Polygonanzahl einstellen und selektiert werden dann die Punkte. Habs nicht krass getestet und es ist kein Undo drin.

    Ansonsten knnte man das ganze beliebig erweitern.

    Code:
    import c4d
    from c4d import gui
    #Welcome to the world of Python
    GROUP = 1000
    NUMBER = 1001
    DO = 1002
    
    class Dlg(gui.GeDialog):
        
        num = 0
    
        def CreateLayout(self):
            self.GroupBegin(GROUP, c4d.BFH_SCALEFIT, cols=5)
            self.AddEditNumberArrows(NUMBER, c4d.BFH_LEFT)  
            self.AddButton(DO, c4d.BFH_LEFT, name="Select")
            self.GroupEnd()
            return True
        
        def InitValues(self):
            self.SetLong(NUMBER, 0, min = 0, max = 1000000000)
            return True
    
        def Command(self, id, msg):    
            if id==DO:
                self.num = self.GetLong(NUMBER)
                self.Close()    
            return True
    
    def main():
        if not op: return
        if not op.CheckType(c4d.Opolygon): return
        
        dlg = Dlg()
        dlg.Open(c4d.DLG_TYPE_MODAL, xpos=100, ypos=100, defaultw=350, defaulth=10)
        
        res = op.GetClone()
        
        c4d.utils.SendModelingCommand(command = c4d.MCOMMAND_EXPLODESEGMENTS,
                                        list = [res],
                                        mode = c4d.MODELINGCOMMANDMODE_POLYGONSELECTION,
                                        bc = c4d.BaseContainer(),
                                        doc = doc)
                                        
        children = res.GetChildren()
        pnts = []
        for child in children:
            if child.GetPolygonCount() < dlg.num: pnts += child.GetAllPoints()
            
        bs = op.GetPointS()
        bs.DeselectAll()
        
        opPoints = op.GetAllPoints()
        for i in xrange(len(opPoints)):
            if opPoints[i] in pnts: bs.Select(i)
            
        c4d.EventAdd()
    
    if __name__=='__main__':
        main()
    Gre
    rownn

    Edit: Code in ScriptManager kopieren und 'Execute' klicken.

    Nicht mglich! +2 Nicht mglich!
    Gendert von rownn (11.01.2017 um 16:41 Uhr)

  3. #3
    C4Dnetwork-Supporter Avatar von fLuppster
    Registriert seit
    20.05.2013
    Ort
    Erfurt
    Beitrge
    1.190
    Software
    CINEMA 4D R15

    Standard

    Ich glaube ich bin zu doof das richtig einzustellen. Knntest du es mal in einer Testszene zeigen bitte? Vielen Dank schonmal.

    Nicht mglich! 0 Nicht mglich!
    C4D R15 / Vectorworks 2014 / Win10
    i7 4790K / 32GB RAM / Titan XP + 1080 Ti / Octane / Corona

  4. #4
    Benutser Avatar von rownn
    Registriert seit
    17.12.2011
    Ort
    DDB
    Beitrge
    630
    Software
    MSA

    Standard

    Hier ein kleiner Film.

    Nicht mglich! +2 Nicht mglich!

  5. #5
    C4Dnetwork-Supporter Avatar von fLuppster
    Registriert seit
    20.05.2013
    Ort
    Erfurt
    Beitrge
    1.190
    Software
    CINEMA 4D R15

    Standard

    Aaah, danke! Bei mir ging es die ganze Zeit nicht, weil ich Werte ber 100 eingesetzt habe. Gibts da ne Mglichkeit da mehr auszuwhlen? (Habe es zwar auf amateurhafte Art und Weise versucht im Code zu suchen, aber nichts gefunden)

    Nicht mglich! 0 Nicht mglich!
    C4D R15 / Vectorworks 2014 / Win10
    i7 4790K / 32GB RAM / Titan XP + 1080 Ti / Octane / Corona

  6. #6
    Benutser Avatar von rownn
    Registriert seit
    17.12.2011
    Ort
    DDB
    Beitrge
    630
    Software
    MSA

    Standard

    Ja, is mir auch gefallen dass es diese Obergrenze gibt... hab ich aber ignoriert, da es ja um Objekte mit kleiner Polygonanzahl geht
    Ich schau mal.

    Edit: Hab den Code oben aktualisiert.

    Nicht mglich! +1 Nicht mglich!

  7. #7
    Erfahrener Benutzer Avatar von LennO
    Registriert seit
    27.06.2006
    Beitrge
    1.991
    Software
    KEINE

    Standard

    h. Ja, luft aber unter Python 3 sicherlich nicht.

    Hier versagst aber so oder so, sys.maxint (existiert nichtmehr ) und sys.maxsize sorgen dafr dass das Feld garkeinen Wert mehr zurckliefert. Tatschlich funktioniert es auch mit dem tatschlichen Maximum eines Int64 als Zahl ausgeschrieben nicht. Ein hoher Wert als Maximum wie 100000000000000 funktioniert

    Nicht mglich! +1 Nicht mglich!

  8. #8
    Benutser Avatar von rownn
    Registriert seit
    17.12.2011
    Ort
    DDB
    Beitrge
    630
    Software
    MSA

    Standard

    Hab ma ein CommandData-Plugin draus gemacht, damit man nicht jedes mal das Script neu aufrufen muss um Vernderungen zu sehen. Undo und noch ein bissl was anderes is jetzt drin.



    Wenn was nicht funktionieren sollte, gebt Kund.

    Viele Gre
    rownn
    Angehngte Dateien Angehngte Dateien

    Nicht mglich! +9 Nicht mglich!

  9. #9
    C4Dnetwork-Supporter Avatar von fLuppster
    Registriert seit
    20.05.2013
    Ort
    Erfurt
    Beitrge
    1.190
    Software
    CINEMA 4D R15

    Standard

    Wahnsinn, danke! Ab in den Adventskalender damit, den kann man doch auch noch im Nachhinein auffllen.

    Nicht mglich! +2 Nicht mglich!
    C4D R15 / Vectorworks 2014 / Win10
    i7 4790K / 32GB RAM / Titan XP + 1080 Ti / Octane / Corona

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gste: 1)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
  •