Python-Snippet-Sammlung mit Kino4d

Es ist nur ein Memo, aber es ist eine Sammlung von Schnipsel, wenn Sie Python mit c4d schreiben.

Holen Sie sich das Objekt selbst mit dem Python-Tag

python


op.GetObject()
#op zeigt das Tag selbst an

Aktuellen Frame abrufen

python


frame=doc.GetTime().GetFrame(doc.GetFps())

Holen Sie sich ein Objekt mit einem beliebigen Namen

python


#Perfekte Übereinstimmung
obj = doc.SearchObject("OBJNAME")
#Teilweise Übereinstimmung
obj = doc.SearchObjectInc("OBJNAME")

Erhalten Sie globale Koordinaten

python


obj = doc.SearchObject("OBJNAME")
#globale Koordinaten=Produkt von globalMatrix und lokalen Koordinaten
pos = obj.GetMg() * c4d.Vector(0,0,0)

http://www.c4dcafe.com/ipb/forums/topic/78408-get-points-global-position/

Scheitelpunkt holen

python


import c4d
obj = op.GetObject()
v = obj.GetPoint(0)#Holen Sie sich den 0. Scheitelpunkt

#Freund
#obj.GetAllPoints()
#obj.SetAllPoints()

Arbeitsverzeichnispfad abrufen

projDir


import c4d
import os
projDir = os.path.normpath(doc.GetDocumentPath())

Aktualisieren Sie das Eingabeaufforderungssystem

In Kino4d wird möglicherweise etwas nicht aktualisiert. Ergreifen Sie daher Maßnahmen dagegen. Ich bin mir nicht sicher. Es scheint andere Möglichkeiten zu geben

python


obj = op.GetObject()
obj.Message(c4d.MSG_UPDATE)
c4d.EventAdd()

Dynamisches Hinzufügen / Löschen von Objekten

Verwenden Sie doc.InsertObject. Der Würfel wird in jedem Frame zu zufälligen Positionen hinzugefügt. Ein Beispiel zum Löschen eines Würfels mit 0 Frame.

python



import c4d
import random

def main():
    obj = op.GetObject()
    cube = c4d.BaseObject(c4d.Ocube)
    
    #set random position
    cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] = 1000 * (random.random()-0.5)
    cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] = 1000 * (random.random()-0.5)
    cube[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] = 1000 * (random.random()-0.5)
    
    doc.InsertObject(cube,op.GetObject(),None,True)
    
    frame = doc.GetTime().GetFrame(doc.GetFps())

    # if time is 0, delete all chiled objcts
    if frame==0:    
        while not obj.GetDown() is None:            
            tgt = obj.GetDown() # get obj's child
            print tgt 
            tgt.Remove()

json laden und speichern

python


	import json
	
	#Belastung
    with open("hoge.json', 'r') as f:
        dic = json.load(f)

	#Geh zu dic
 
 	#sparen
    with open("hoge.json', 'w') as f:
        json.dump(dic, f, sort_keys=True, indent=4)

Holen Sie sich Kinder

python


children = op.GetObject().GetChildren();
print len(children);
print children;
    

Holen Sie sich Kinder von aktiven Objekten

Versuchen Sie, den Namen auszugeben

python


#Sie können alles erhalten, indem Sie mit allen ausgewählten Kindern Folgendes tun
objs = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)
    
for obj in objs:
	print obj.GetName()

GetActiveObjects https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d.documents/BaseDocument/index.html?highlight=getactiveobject#BaseDocument.GetActiveObjects

Index des ausgewählten Polygons anzeigen

python


import c4d

def PrintPolygon(obj):
    if not isinstance(obj, c4d.PolygonObject):
        return
    ply = obj.GetAllPolygons()
    hoge = obj.GetPolygonS();
    
    for c in xrange(obj.GetPolygonCount()):
        if hoge.IsSelected(c):
            print ply[c].c,",",ply[c].b,",",ply[c].a,","

def main():
    PrintPolygon(op.GetObject())

Bringen Sie die ausgewählten Scheitelpunkte zur Konsole

python


import c4d

def SelectPoints(obj):
    if not isinstance(obj, c4d.PointObject):
        return None
    sel_pts = obj.GetPointS()
    res_pts = []
    for c1 in xrange(obj.GetPointCount()):
        if sel_pts.IsSelected(c1):
            res_pts.append([c1, obj.GetPoint(c1)])
    return res_pts

def main():
    objs = op.GetObject()
    res = SelectPoints(objs)
    if not res:
        return

    print objs.GetName()

    for c in xrange(len(res)):
        print res[c][0], res[c][1]

http://villager-and-c4d.cocolog-nifty.com/blog/2011/02/c4d-python-3ec7.html

Verwenden Sie globale Variablen

python


import c4d

hoge=0

def main():
    global hoge
    hoge = hoge + 1
    print hoge

Wie schreibe ich Python mit c4d

http://qiita.com/_nabe/items/9c1ff9ad47be7476571f

Recommended Posts

Python-Snippet-Sammlung mit Kino4d
Schreiben wir Python mitinema4d.
Python-Snippet
Laden Sie fbx aus Python mitinema4d
FizzBuzz in Python3
Scraping mit Python
Snippet für die Vollbit-Suche mit Python
Statistik mit Python
Scraping mit Python
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Serielle Kommunikation mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Python (3) Dominer ORM-Sammlung
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten
Sprachanalyse mit Python
Denken Sie an Yaml mit Python
Erste Schritte mit Python
Verwenden Sie DynamoDB mit Python
Zundko Getter mit Python
Behandle Excel mit Python
Ohmsches Gesetz mit Python
Primzahlbeurteilung mit Python
Löse Mathe mit Python
Python ab Windows 7
Heatmap von Python + matplotlib