Informieren Sie sich über die Python-Umgebung von Cinema4D

Was ist das?

Informationen zur Cinema4D Python-Umgebung und zum c4d-Modul Ich habe versucht, träge zu tauchen Es ist auch eine Erweiterung des C4D Python-Kopierbuchs, das zuvor auf der Veranstaltung verteilt wurde. Fühlend eine Fortsetzung davon ...?

Cinema4D, Befehlszeilenoptionen unter OSX usw. http://qiita.com/it_ks/items/5c052366fb8d1c9952b0

Vor dem Akzeptieren

Hier wird der Modulname also etwas verwirrend sein Apropos "** c4d **", ** Python-Modul **. Die Anwendung wird als Cinema 4D abgekürzt. Meistens.

Umgebung

OSX 10.10.5、Cinema4D R14。

python


print c4d.GetC4DVersion()

14042

Es kehrte mit einem 5-stelligen int zurück. Wenn Sie den About-Dialog betrachten, ist er in 14 und 042 unterteilt.

Die API-Version ist übrigens (▼)

python


print c4d.GetAPIVersion()

(1, 1, 2406)
#Ist das so?

Die Python-Umgebung für Cinema4D R14 ist 2.6.4.

python


print sys.version_info

(2, 6, 4, 'final', 0)

Ich werde versuchen, die Betriebssystemversion über Python zu erhalten.

python


import platform
print platform.mac_ver()
('10.10.5', ('', '', ''), 'i386')

Version Type Cinema4D hat verschiedene Qualitäten wie Broadcast und Prime under Studio, die alle enthalten sind. In Bezug auf die API scheinen diese Klassifikationen als "** Versionstyp **" bezeichnet zu werden.

python


print c4d.GeGetVersionType()

4

Der von uns verwendete Versionstyp von Cinema 4D ist "** 4 **". 4, was ist ...? Demzufolge https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/index.html#c4d.GeGetVersionType Von 0 bis 4 zu zählen ist "Cinema 4D Broadcast". Richtige Antwort!

python


print c4d.VERSIONTYPE_BROADCAST

4

Zur Zeit dir ()

Dir () ohne etwas hinein zu stecken. Überprüfen Sie die flach gelegten Werkzeuge.

python


import c4d
from c4d import gui
#Welcome to the world of Python
print dir()

['__builtins__', '__file__', '__name__', '__package__', 'c4d', 'doc', 'gui', 'op']

Ist wie etwas, das platziert werden kann, ohne etwas zu tun, Grundausstattung.

c4d

python


print type( c4d )

<type 'module'>

help( c4d )

python


Help on module c4d:
NAME
    c4d - Common module for the most required classes and functions.
FILE
    (built-in)
SUBMODULES
    bitmaps
    documents
    gui
    internals
    modules
    plugins
    storage
    threading
    utils
CLASSES
    __builtin__.object
        BaseContainer
        BaseSelect
        BaseTime
        C4DAtom
            GeListNode
                BaseList2D
                    BaseMaterial
                    BaseObject
                        CameraObject
                        PointObject
                            LineObject
                            PolygonObject
                            SplineObject
                    BaseShader
                    BaseTag
                        SelectionTag
                        TextureTag
                        VariableTag
                            NormalTag
                            PointTag
                            PolygonTag
                            SegmentTag
                            TangentTag
                            UVWTag
                    BaseView
                        BaseDraw
                    CCurve
                    CTrack
                CKey
        CPolygon
        CustomDataType
            DateTimeData
            FontData
            Gradient
            InExcludeData
            LayerSet
            MatAssignData
            PLAData
            PriorityData
            SplineData
            UnitScaleData
        DescID
        DescLevel
        HandleInfo
        Matrix
        Vector
    
    class BaseContainer(__builtin__.object)
     |  A container for individual values.
     |  
     |  Methods defined here:
     |  
     |  CopyTo(...)
     |      Copy to another BaseContainer.
     |  

(Weggelassen)

dir( c4d ) Eine enorme Menge wurde zurückgegeben und ich konnte nicht alles auf der Cinema 4D-Konsole sehen

Schauen wir uns die Anzahl der Elemente an.

python


print len(dir(c4d))

17828

stark

doc

python


print type( doc )

<type 'c4d.documents.BaseDocument'>

Das "Basisdokument" in c4d.documents scheint die wahre Identität zu sein. Andere Freunde ...

python


print dir( c4d.documents )

['AddMarker', 'BaseDocument', 'BatchRender', 'CloseAllDocuments', 'GetActiveDocument', 'GetBatchRender', 'GetFirstDocument', 'GetFirstMarker', 'InsertBaseDocument', 'InteractiveModeling_Restart', 'IsolateObjects', 'KillDocument', 'LayerObject', 'LoadDocument', 'LoadFile', 'MergeDocument', 'RenderData', 'RenderDocument', 'RunAnimation', 'SaveDocument', 'SetActiveDocument', 'SetDocumentTime', 'StopExternalRenderer', '__doc__', '__name__', '__package__']

Es sieht aus wie ein Modul für den Umgang mit Dateien (Szenendateien), die von Cinema4D, c4d.documents, verarbeitet werden.

help( doc )

python


Help on BaseDocument object:
class BaseDocument(c4d.BaseList2D)
 |  Represents a document.
 |  
 |  Method resolution order:
 |      BaseDocument
 |      c4d.BaseList2D
 |      c4d.GeListNode
 |      c4d.C4DAtom
 |      __builtin__.object
 |  
 |  Methods defined here:
 |  
 |  AddUndo(...)
 |      Perform a redo on this document (undo the last undo).
 |  
 |  AnimateObject(...)
 |      Animate a node in this document.
 |  
 |  DoRedo(...)
 |      Perform a redo on this document (undo the last undo).
 |  
 |  DoUndo(...)
 |      Perform an undo operation.
 |  
 |  EndUndo(...)
 |      End the building of multiple undo actions into a single user undo.

(Weggelassen)

dir( doc ) Diese Person konnte bis zum Ende anzeigen.

print dir( doc )

python


['AddUndo', 'AddUserData', 'AnimateObject', 'ChangeNBit', 'CheckType', 'ClearKeyframeSelection', 'CopyTo', 'DelBit', 'DoRedo', 'DoUndo', 'Edit', 'EndUndo', 'ExecutePasses', 'FindCTrack', 'FindKeyframeSelection', 'FindSceneHook', 'FindUndoPtr', 'Flush', 'FlushUndoBuffer', 'ForceCreateBaseDraw', 'GetAction', 'GetActiveBaseDraw', 'GetActiveMaterial', 'GetActiveMaterials', 'GetActiveObject', 'GetActiveObjects', 'GetActiveObjectsFilter', 'GetActiveRenderData', 'GetActiveTag', 'GetActiveTags', 'GetActiveToolData
', 'GetAllBits', 'GetAllTextures', 'GetBaseDraw', 'GetBaseDrawCount', 'GetBit', 'GetBubbleHelp', 'GetCTrackRoot', 'GetCTracks', 'GetChanged', 'GetChildren', 'GetClassification', 'GetClone', 'GetData', 'GetDataInstance', 'GetDirty', 'GetDocument', 'GetDocumentName', 'GetDocumentPath', 'GetDown', 'GetDownLast', 'GetDrawTime', 'GetFirstCTrack', 'GetFirstMaterial', 'GetFirstObject', 'GetFirstRenderData', 'GetFirstShader', 'GetFps', 'GetHelperAxis', 'GetHighest', 'GetIcon', 'GetInfo', 'GetLOD', 'GetLayerData', 
'GetLayerObject', 'GetLayerObjectRoot', 'GetListHead', 'GetLoopMaxTime', 'GetLoopMinTime', 'GetMain', 'GetMaterials', 'GetMaxTime', 'GetMinTime', 'GetMode', 'GetNBit', 'GetNLARoot', 'GetName', 'GetNext', 'GetNodeData', 'GetObjects', 'GetOrderedActiveObjects', 'GetParticleSystem', 'GetPred', 'GetRenderBaseDraw', 'GetRenderLod', 'GetSelection', 'GetSettingsInstance', 'GetSplinePlane', 'GetTime', 'GetType', 'GetTypeName', 'GetUndoPtr', 'GetUp', 'GetUserDataContainer', 'InsertAfter', 'InsertBefore', 'InsertMat
erial', 'InsertObject', 'InsertRenderData', 'InsertRenderDataLast', 'InsertShader', 'InsertTrackSorted', 'InsertUnder', 'InsertUnderLast', 'IsAlive', 'IsAxisEnabled', 'IsDocumentRelated', 'IsEditMode', 'IsInstanceOf', 'KeyframeSelectionContent', 'Message', 'MultiMessage', 'Polygonize', 'Read', 'ReadObject', 'Remove', 'RemoveUserData', 'Scale', 'SearchMaterial', 'SearchMaterialInc', 'SearchObject', 'SearchObjectInc', 'SendInfo', 'SetAction', 'SetActiveMaterial', 'SetActiveObject', 'SetActiveRenderData', 'Se
tActiveTag', 'SetAllBits', 'SetBit', 'SetChanged', 'SetData', 'SetDirty', 'SetDocumentName', 'SetDocumentPath', 'SetFps', 'SetKeyframeSelection', 'SetLOD', 'SetLayerData', 'SetLayerObject', 'SetLoopMaxTime', 'SetLoopMinTime', 'SetMaxTime', 'SetMinTime', 'SetMode', 'SetName', 'SetRenderLod', 'SetRewind', 'SetSelection', 'SetTime', 'SetUserDataContainer', 'StartUndo', 'ToggleBit', 'TransferGoal', 'Write', 'WriteObject', '__call__', '__class__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__',
 '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__']

Die Anzahl der Elemente vorerst.

python


print len(dir( doc ))
182

Übrigens sind alle Anfangsbuchstaben in Großbuchstaben geschrieben, aber kann ich mir vorstellen, dass dies alles eine Klasse ist?

python


for i in dir(doc):
    print i,':',eval('type(doc.'+i+')')

python


AddUndo : <type 'builtin_function_or_method'>
AddUserData : <type 'builtin_function_or_method'>
AnimateObject : <type 'builtin_function_or_method'>
ChangeNBit : <type 'builtin_function_or_method'>
CheckType : <type 'builtin_function_or_method'>
ClearKeyframeSelection : <type 'builtin_function_or_method'>
CopyTo : <type 'builtin_function_or_method'>
DelBit : <type 'builtin_function_or_method'>
DoRedo : <type 'builtin_function_or_method'>
DoUndo : <type 'builtin_function_or_method'>
Edit : <type 'builtin_function_or_method'>
EndUndo : <type 'builtin_function_or_method'>
ExecutePasses : <type 'builtin_function_or_method'>
FindCTrack : <type 'builtin_function_or_method'>
FindKeyframeSelection : <type 'builtin_function_or_method'>
FindSceneHook : <type 'builtin_function_or_method'>
FindUndoPtr : <type 'builtin_function_or_method'>
Flush : <type 'builtin_function_or_method'>
FlushUndoBuffer : <type 'builtin_function_or_method'>
ForceCreateBaseDraw : <type 'builtin_function_or_method'>
GetAction : <type 'builtin_function_or_method'>
GetActiveBaseDraw : <type 'builtin_function_or_method'>
GetActiveMaterial : <type 'builtin_function_or_method'>
GetActiveMaterials : <type 'builtin_function_or_method'>
GetActiveObject : <type 'builtin_function_or_method'>
GetActiveObjects : <type 'builtin_function_or_method'>
GetActiveObjectsFilter : <type 'builtin_function_or_method'>
GetActiveRenderData : <type 'builtin_function_or_method'>
GetActiveTag : <type 'builtin_function_or_method'>
GetActiveTags : <type 'builtin_function_or_method'>
GetActiveToolData : <type 'builtin_function_or_method'>
GetAllBits : <type 'builtin_function_or_method'>
GetAllTextures : <type 'builtin_function_or_method'>
GetBaseDraw : <type 'builtin_function_or_method'>
GetBaseDrawCount : <type 'builtin_function_or_method'>
GetBit : <type 'builtin_function_or_method'>
GetBubbleHelp : <type 'builtin_function_or_method'>
GetCTrackRoot : <type 'builtin_function_or_method'>
GetCTracks : <type 'builtin_function_or_method'>
GetChanged : <type 'builtin_function_or_method'>
GetChildren : <type 'builtin_function_or_method'>
GetClassification : <type 'builtin_function_or_method'>
GetClone : <type 'builtin_function_or_method'>
GetData : <type 'builtin_function_or_method'>
GetDataInstance : <type 'builtin_function_or_method'>
GetDirty : <type 'builtin_function_or_method'>
GetDocument : <type 'builtin_function_or_method'>
GetDocumentName : <type 'builtin_function_or_method'>
GetDocumentPath : <type 'builtin_function_or_method'>
GetDown : <type 'builtin_function_or_method'>
GetDownLast : <type 'builtin_function_or_method'>
GetDrawTime : <type 'builtin_function_or_method'>
GetFirstCTrack : <type 'builtin_function_or_method'>
GetFirstMaterial : <type 'builtin_function_or_method'>
GetFirstObject : <type 'builtin_function_or_method'>
GetFirstRenderData : <type 'builtin_function_or_method'>
GetFirstShader : <type 'builtin_function_or_method'>
GetFps : <type 'builtin_function_or_method'>
GetHelperAxis : <type 'builtin_function_or_method'>
GetHighest : <type 'builtin_function_or_method'>
GetIcon : <type 'builtin_function_or_method'>
GetInfo : <type 'builtin_function_or_method'>
GetLOD : <type 'builtin_function_or_method'>
GetLayerData : <type 'builtin_function_or_method'>
GetLayerObject : <type 'builtin_function_or_method'>
GetLayerObjectRoot : <type 'builtin_function_or_method'>
GetListHead : <type 'builtin_function_or_method'>
GetLoopMaxTime : <type 'builtin_function_or_method'>
GetLoopMinTime : <type 'builtin_function_or_method'>
GetMain : <type 'builtin_function_or_method'>
GetMaterials : <type 'builtin_function_or_method'>
GetMaxTime : <type 'builtin_function_or_method'>
GetMinTime : <type 'builtin_function_or_method'>
GetMode : <type 'builtin_function_or_method'>
GetNBit : <type 'builtin_function_or_method'>
GetNLARoot : <type 'builtin_function_or_method'>
GetName : <type 'builtin_function_or_method'>
GetNext : <type 'builtin_function_or_method'>
GetNodeData : <type 'builtin_function_or_method'>
GetObjects : <type 'builtin_function_or_method'>
GetOrderedActiveObjects : <type 'builtin_function_or_method'>
GetParticleSystem : <type 'builtin_function_or_method'>
GetPred : <type 'builtin_function_or_method'>
GetRenderBaseDraw : <type 'builtin_function_or_method'>
GetRenderLod : <type 'builtin_function_or_method'>
GetSelection : <type 'builtin_function_or_method'>
GetSettingsInstance : <type 'builtin_function_or_method'>
GetSplinePlane : <type 'builtin_function_or_method'>
GetTime : <type 'builtin_function_or_method'>
GetType : <type 'builtin_function_or_method'>
GetTypeName : <type 'builtin_function_or_method'>
GetUndoPtr : <type 'builtin_function_or_method'>
GetUp : <type 'builtin_function_or_method'>
GetUserDataContainer : <type 'builtin_function_or_method'>
InsertAfter : <type 'builtin_function_or_method'>
InsertBefore : <type 'builtin_function_or_method'>
InsertMaterial : <type 'builtin_function_or_method'>
InsertObject : <type 'builtin_function_or_method'>
InsertRenderData : <type 'builtin_function_or_method'>
InsertRenderDataLast : <type 'builtin_function_or_method'>
InsertShader : <type 'builtin_function_or_method'>
InsertTrackSorted : <type 'builtin_function_or_method'>
InsertUnder : <type 'builtin_function_or_method'>
InsertUnderLast : <type 'builtin_function_or_method'>
IsAlive : <type 'builtin_function_or_method'>
IsAxisEnabled : <type 'builtin_function_or_method'>
IsDocumentRelated : <type 'builtin_function_or_method'>
IsEditMode : <type 'builtin_function_or_method'>
IsInstanceOf : <type 'builtin_function_or_method'>
KeyframeSelectionContent : <type 'builtin_function_or_method'>
Message : <type 'builtin_function_or_method'>
MultiMessage : <type 'builtin_function_or_method'>
Polygonize : <type 'builtin_function_or_method'>
Read : <type 'builtin_function_or_method'>
ReadObject : <type 'builtin_function_or_method'>
Remove : <type 'builtin_function_or_method'>
RemoveUserData : <type 'builtin_function_or_method'>
Scale : <type 'builtin_function_or_method'>
SearchMaterial : <type 'builtin_function_or_method'>
SearchMaterialInc : <type 'builtin_function_or_method'>
SearchObject : <type 'builtin_function_or_method'>
SearchObjectInc : <type 'builtin_function_or_method'>
SendInfo : <type 'builtin_function_or_method'>
SetAction : <type 'builtin_function_or_method'>
SetActiveMaterial : <type 'builtin_function_or_method'>
SetActiveObject : <type 'builtin_function_or_method'>
SetActiveRenderData : <type 'builtin_function_or_method'>
SetActiveTag : <type 'builtin_function_or_method'>
SetAllBits : <type 'builtin_function_or_method'>
SetBit : <type 'builtin_function_or_method'>
SetChanged : <type 'builtin_function_or_method'>
SetData : <type 'builtin_function_or_method'>
SetDirty : <type 'builtin_function_or_method'>
SetDocumentName : <type 'builtin_function_or_method'>
SetDocumentPath : <type 'builtin_function_or_method'>
SetFps : <type 'builtin_function_or_method'>
SetKeyframeSelection : <type 'builtin_function_or_method'>
SetLOD : <type 'builtin_function_or_method'>
SetLayerData : <type 'builtin_function_or_method'>
SetLayerObject : <type 'builtin_function_or_method'>
SetLoopMaxTime : <type 'builtin_function_or_method'>
SetLoopMinTime : <type 'builtin_function_or_method'>
SetMaxTime : <type 'builtin_function_or_method'>
SetMinTime : <type 'builtin_function_or_method'>
SetMode : <type 'builtin_function_or_method'>
SetName : <type 'builtin_function_or_method'>
SetRenderLod : <type 'builtin_function_or_method'>
SetRewind : <type 'builtin_function_or_method'>
SetSelection : <type 'builtin_function_or_method'>
SetTime : <type 'builtin_function_or_method'>
SetUserDataContainer : <type 'builtin_function_or_method'>
StartUndo : <type 'builtin_function_or_method'>
ToggleBit : <type 'builtin_function_or_method'>
TransferGoal : <type 'builtin_function_or_method'>
Write : <type 'builtin_function_or_method'>
WriteObject : <type 'builtin_function_or_method'>
__call__ : <type 'method-wrapper'>
__class__ : <type 'type'>
__delattr__ : <type 'method-wrapper'>
__delitem__ : <type 'method-wrapper'>
__doc__ : <type 'str'>
__eq__ : <type 'method-wrapper'>
__format__ : <type 'builtin_function_or_method'>
__ge__ : <type 'method-wrapper'>
__getattribute__ : <type 'method-wrapper'>
__getitem__ : <type 'method-wrapper'>
__gt__ : <type 'method-wrapper'>
__hash__ : <type 'method-wrapper'>
__init__ : <type 'method-wrapper'>
__le__ : <type 'method-wrapper'>
__len__ : <type 'method-wrapper'>
__lt__ : <type 'method-wrapper'>
__ne__ : <type 'method-wrapper'>
__new__ : <type 'builtin_function_or_method'>
__reduce__ : <type 'builtin_function_or_method'>
__reduce_ex__ : <type 'builtin_function_or_method'>
__repr__ : <type 'method-wrapper'>
__setattr__ : <type 'method-wrapper'>
__setitem__ : <type 'method-wrapper'>
__sizeof__ : <type 'builtin_function_or_method'>
__str__ : <type 'method-wrapper'>
__subclasshook__ : <type 'builtin_function_or_method'>

Alle Funktionen. Es gibt solche Tage.

op

python


print type(op)

<type 'NoneType'>

Es ist ein Mysterium.

help( op )

python


Welcome to Python 2.6!  This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.  To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics".  Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".
help> 
You are now leaving help and returning to the Python interpreter.
If you want to ask for help on a particular object directly from the
interpreter, you can type "help(object)".  Executing "help('string')"
has the same effect as typing a particular string at the help> prompt.

???

Anders als bei normaler Hilfe (Keine) ……

python


#Hilfe am Terminal(None)

>>> help(None)

Help on NoneType object:

class NoneType(object)
 |  Methods defined here:
 |  
 |  __hash__(...)
 |      x.__hash__() <==> hash(x)
 |  
 |  __repr__(...)
 |      x.__repr__() <==> repr(x)
(END) 

Es scheint, dass Python in Cinema4D einmal gefallen ist und neu gestartet wird. Was ist das

BaseObject Tatsächlich wird op mit ** gefüllt, wenn Sie ein Objekt auswählen.

Machen Sie einen Würfel und fragen Sie dann


c4d.CallCommand(5159) #Würfel

print type(op)
<type 'c4d.BaseObject'>

Es sieht aus wie eine Instanz von c4d.BaseObject.

Hilf (op) nochmal

python


help(op)

Help on BaseObject object:
class BaseObject(BaseList2D)
 |  Object base class.
 |  
 |  Method resolution order:
 |      BaseObject
 |      BaseList2D
 |      GeListNode
 |      C4DAtom
 |      __builtin__.object
 |  
 |  Methods defined here:
 |  
 |  AddDependence(...)
 |      Add a child object to the dependence list.
 |  
 |  CheckCache(...)
 |      Check if cache is built.
 |  
 |  CompareDependenceList(...)
 |      Compares if anything in the dependence list has changed.
 |  
 |  CopyMatrixTo(...)
 |      Copy the matrix of the object to another.
 |  
 |  CopyTagsTo(...)
 |      Copy the tags of the object to another.

(Weggelassen)

dir( op )

Als ich dir versuchte, stellte diese Person auch fest, dass der Inhalt alle Großbuchstaben und alle Funktionen waren.

python


print len( dir(op) )

168

sys

python


import sys
print sys.modules.keys()

['MacOS', 'subprocess', 'gc', 'c4d.modules', 'c4d.modules.particles', 'encodings.encodings', 'struct', 'c4d.modules.character.builder', 'c4dPyHelper', 'imp', 'c4d.utils', 'collections', 'zipimport', 'string', 'repr', 'signal', 'c4d.internals', 'pydoc', 'token', 'shlex', 'macostools', 'dis', 'cStringIO', 'encodings', 'abc', 're', 'UserDict', 'fcntl', 'c4d.utils.noise', 'inspect', 'exceptions', 'Carbon.Res', 'codecs', 'pkgutil', 'traceback', '_Res', 'itertools', 'opcode', 'os', 'marshal', '_collections', '_s
re', '__builtin__', 'operator', 'c4d.storage', 'select', 'c4d.modules.character', 'posixpath', 'errno', 'binascii', 'sre_constants', 'c4d', 'os.path', 'c4d.gui', 'c4d.modules.snap', 'Carbon', 'c4d.modules.onlinehelp', '_warnings', 'Carbon.Files', 'encodings.__builtin__', '_codecs', 'tokenize', 'c4d.plugins', 'webbrowser', 'Carbon.File', '_struct', 'keyword', '_File', 'posix', 'encodings.aliases', 'Carbon._Res', 'c4d.modules.hair', 'sre_parse', 'pickle', 'copy_reg', 'sre_compile', 'site', '__main__', 'c4d.m
odules.bodypaint', 'ic', 'strop', 'c4d.threading', 'encodings.codecs', 'Carbon._File', '_abcoll', 'c4d.documents', 'c4d.bitmaps', 'c4d.modules.thinkingparticles', 'genericpath', 'stat', 'warnings', 'encodings.ascii', 'time', 'sys', 'types', 'icglue', 'c4d.modules.render', 'c4d.modules.graphview', 'c4d.modules.mograph', 'linecache', 'Carbon.warnings']

Ich lese viel ** unter ** c4d.

python


print sys.getdefaultencoding()

ascii

Encode, ascii?

python


#Schauen wir uns auch das Dateisystem an.
print sys.getfilesystemencoding()

utf-8

Vom Terminal


>>> sys.getfilesystemencoding()
'utf-8'

Einstellung, die sich von der Systemcodierung ändert.

python


print sys.argv

['']

python


print sys.stdin
print sys.stdout
print sys.stderr

<__main__.StdCatcher instance at 0x11b7191b8>
<__main__.StdCatcher instance at 0x11b7191b8>
<__main__.StdErrCatcher instance at 0x11b719170>

StdCatcher。。。

python


help( sys.stdin )

Help on instance of StdCatcher in module __main__:
class StdCatcher
 |  Methods defined here:
 |  
 |  flush(self)
 |  
 |  readline(self)
 |  
 |  write(self, st)


python


print sys.exec_prefix

/Applications/MAXON/CINEMA 4D R14/resource/modules/python/res/Python.osx.framework

print sys.prefix

/Applications/MAXON/CINEMA 4D R14/resource/modules/python/res/Python.osx.framework

python


print sys.executable

/Applications/MAXON/CINEMA 4D R14/CINEMA 4D.app/Contents/MacOS/CINEMA 4D

python


print sys.flags

sys.flags(debug=0, py3k_warning=0, division_warning=0, division_new=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=1, no_user_site=0, no_site=0, ignore_environment=0, tabcheck=0, verbose=0, unicode=0, bytes_warning=0)

dont_write_bytecode = 1, Erzeugt keine .pyc oder .pyo.

"Command" -Familie in c4d

Befehlshandler.

ID=5159


#Zum Beispiel für die ID 5159

c4d.CallCommand(5159) #Würfel

print c4d.GetCommandName(5159)
Würfel

print c4d.GetCommandHelp(5159)
Fügen Sie ein kubisches Objekt hinzu

python


help(c4d.CallCommand)

Help on built-in function CallCommand in module c4d:
CallCommand(...)
    Call Command

...... Ist es falsch, etwas vom Hilfebefehl zu erwarten?

Welcher Befehl ist diese ID?

Drehen Sie sich mit für und versuchen Sie, von einem Ende zu fragen. Allerdings nur diejenigen, die mit "ID" beginnen.

python


for i in dir(c4d):
    if i.startswith('ID'):
        tmpID = c4d.__dict__[i]
        if c4d.GetCommandName(tmpID):
            print i,tmpID,c4d.GetCommandName(tmpID)

Ergebnis


IDM_CM_CLOSEWINDOW 12097 Schließen
IDM_Kopie 12107 kopieren
IDM_CUT 12106 geschnitten
IDM_LÖSCHEN 12109 Löschen
IDM_INVERSION 12374 Alle umkehren
IDM_KEY_LAST 12415 Zur vorherigen Taste wechseln
IDM_KEY_NEXT 12416 Zur nächsten Taste wechseln
IDM_PASTE 12108 Paste
IDM_REDO 12297 Wiederholen
IDM_SELECTALL 12112 Alle auswählen
IDM_SELECTNONE 12113 Deaktivieren Sie alle
IDM_UNDO 12105 Abbrechen
ID_BASECURVE 1015549 IGES-Kurve
ID_BASEGROUP 1015545 IGES-Gruppe
ID_BASESURFACE 1015548 IGES-Oberfläche
ID_CAMERA_LOCK_PIVOT 440000104 Kamera-Pivot sperren
ID_CAMERA_MAGNIFY 1016008 Filmzoom
ID_CAMERA_MOVE 1016007 Film verschieben
ID_CAMERA_SET_PIVOT 1021420 Kamera drehen
ID_CAMERA_ZOOM 1016009 Filmskalierung
ID_CAMERA_ZOOM_IN 1016010 Vergrößern
ID_CAMERA_ZOOM_OUT 1016011 Verkleinern
ID_CA_CONSTRAINT_TAG_CLAMP_TARGET_Rendereinstellungen für COUNT 50000
ID_CA_CONSTRAINT_TAG_MIRROR_TARGET_COUNT 70000 Filter anzeigen
ID_CA_CONSTRAINT_TAG_SPRING_TARGET_COUNT 60000 Exportfilter
ID_CA_PAINT_TOOL_DISPLAY_FARBE 12002 Stopp
ID_CONVERT_SELECTION_WERKZEUG 1011181 Auswahl konvertieren
ID_LASTTOOL_END 1021392 -
ID_LASTTOOL_START 1021385 Verschieben
ID_MAPPEDCURVE 1015547 IGES Zugeordnete Kurve
ID_MEASURE_WERKZEUG 1011182 Messarbeiten
ID_MODELING_ARRANGE_WERKZEUG 200000068 Anordnen
ID_MODELING_ARRAY_TOOL 450000045 Array
ID_MODELING_BEVEL_WERKZEUG 450000005 Abschrägung
ID_MODELING_BRIDGE_WERKZEUG 450000008 Brücke
ID_MODELING_BRUSH_WERKZEUG 1016202 Bürste
ID_MODELING_CENTER_WERKZEUG 200000071 Zentrieren
ID_MODELING_CLONE_WERKZEUG 450000042 Klon
ID_MODELING_CLOSEHOLE_WERKZEUG 450000010 Polygonloch schließen
ID_MODELING_COLLAPSE_BEFEHL 1015924 Crush
ID_MODELING_DUPLICATE_WERKZEUG 200000067 Duplizieren
ID_MODELING_EDGECUT_WERKZEUG 1009661 Kantenschnitt
ID_MODELING_EDGE_SPLINE_BEFEHL 1009671 Kantenauswahl zum Spline
ID_MODELING_EXTRUDE_INNER_WERKZEUG 450000004 In das Flugzeug extrudiert
ID_MODELING_EXTRUDE_WERKZEUG 1011183 Extrudieren
ID_MODELING_FILL_SELECTION_WERKZEUG 1011178 Treffen Sie die Auswahl
ID_MODELING_FREESELECTION 200000085 Auswahl der Wurfseile
ID_MODELING_IRON_WERKZEUG 450000014 Eisen
ID_MODELING_KNIFE_WERKZEUG 1016030 Messer
ID_MODELING_LIVESELECTION 200000083 Live-Auswahl
ID_MODELING_LOOP_WERKZEUG 1011192 Schleifenauswahl
ID_MODELING_MAGNET_WERKZEUG 1016185 Magnet
ID_MODELING_MATRIX_EXTRUDE_WERKZEUG 1011126 Matrixextrusion
ID_MODELING_MELT_BEFEHL 1010136 Schmelzen
ID_MODELING_MOVE 200000088 verschieben
ID_MODELING_NORMALMOVE_WERKZEUG 450000000 Normal weiterfahren
ID_MODELING_NORMALROTATE_WERKZEUG 450000002 Normal drehen
ID_MODELING_NORMALSCALE_WERKZEUG 450000001 Skalieren Sie normal
ID_MODELING_OM_SELECT_HIDE 1016208 Objekt ausblenden
ID_MODELING_OM_SELECT_INVERT 1016207 Objektauswahl invertieren
ID_MODELING_OM_SELECT_SHOW 1016209 Objekt anzeigen
ID_MODELING_OUTLINE_SELECTION_WERKZEUG 1011179 Gliederungsauswahl
ID_MODELING_POINT_ADD_WERKZEUG 450000007 Punkte erstellen
ID_MODELING_POLYGON_CREATE_WERKZEUG 450000006 Polygon erstellen
ID_MODELING_POLYSELECTION 200000086 Polygonauswahl
ID_MODELING_RANDOMIZE_TOOL 200000070 Randomize
ID_MODELING_RECTSELECTION 200000084 Rechteckige Auswahl
ID_MODELING_RING_WERKZEUG 1011180 Ringauswahl
ID_MODELING_Rotation 200000090 drehen
ID_MODELING_Maßstab 200000089
ID_MODELING_SETVALUE_WERKZEUG 200000065 Punktwerte ausrichten
ID_MODELING_SHORTCUT_SELECTVISIBLE 1016757 Nur sichtbare Elemente wechseln
ID_MODELING_SLIDE_WERKZEUG 450000012 Schieben
ID_MODELING_SMOOTH_SHIFT_WERKZEUG 450000003 Laufruhe
ID_MODELING_SPLINE_CHAMFER_WERKZEUG 450000043 Anfasen
ID_MODELING_SPLINE_PROJECT_WERKZEUG 450000046 Projektion
ID_MODELING_SPLINE_ROUND_WERKZEUG 450000039 Rund
ID_MODELING_STITCHANDSEW_WERKZEUG 450000011 Nähen
ID_MODELING_TRANSFER_WERKZEUG 200000069 Übertragung
ID_MODELING_WELD_WERKZEUG 450000009 Beitreten
ID_NGON_FORCERETRI_MENU 1016173 N-Update in Gon
ID_NGON_REMOVE_MENU 1016174 N-Gons entfernen
ID_NGON_RETRI_MENU 1016160 N-Immer innerhalb von Gon aktualisieren
ID_OBJECTHANDLES_ONOFF_MENÜ 1016176 Achse anzeigen
ID_OPERATORPOOL_PLUGIN 1001138 XPresso-Pool
ID_SCALEDOCUMENT_CMD 200000277 Skalierungsprojekt...
ID_SDS_DEC_MENÜ 1016178 Die Anzahl der Abteilungen von Hyper NURBS wurde reduziert
ID_SDS_INC_MENÜ 1016177 Die Anzahl der Abteilungen von Hyper NURBS wurde erhöht
ID_SDS_ONFFF_MENÜ 1016179 Isoline bearbeiten
ID_TREEVIEW_PLUGIN 1001145 XPresso Manager
ID_TRIMMEDSURFACE 1015546 IGES getrimmte Oberfläche

Es gibt einige Dinge wie: Oh, ich denke, es war ein Ausweis, der hier eingeht. Oder besser gesagt, die Korrespondenz zwischen der ID und dem Inhalt scheint irgendwo geschrieben zu sein.

Zusammenfassung

Ich bin so müde hier

Es ist ein SDK, also nicht so freundlich (Voreingenommenheit)

Übrigens einmal Während der Erläuterung der Python-Umgebung von Cinema 4D Eigentlich glaube ich, dass es einen Rockartikel über Python (und Open Source Kultur) gab. Wie wäre es damit (entfernte Augen) War Python wirklich schlecht? ?? ?? ?? ?? ?? ?? ?? ??

Gibt es kein Dokument, in dem ausdrücklich erwähnt wird, was "op" ist? Lass uns suchen.

Bemerkungen

Ausführen einer Funktion in der Dokumentation

Es kommt häufig vor, dass Sie eine ID oder einen numerischen Wert als Argument anfordern. Welche Art von Nummer soll ich eingeben! Ich fühle mich wie.

Im Allgemeinen gibt es eine Tabelle direkt darunter, und es scheint, dass Sie eine ID erhalten können, indem Sie "c4d" zum Elementnamen hinzufügen. (Gleiches gilt für c4d.VERSIONTYPE_BROADCAST am Anfang)

Zum Beispiel "gui.MessageDialog". c4d_doc.png

python


def main():
    gui.MessageDialog('Hello World!')

    gui.MessageDialog('Hello World!',c4d.GEMB_YESNOCANCEL)
    print c4d.GEMB_YESNOCANCEL # -> 3
    gui.MessageDialog( str(c4d.GEMB_YESNOCANCEL),3 )

Ich habe der Funktion 3 Zeilen hinzugefügt, als ich im Skript-Manager eine neue erstellt habe. c4d_getID.png In der Abbildung wird der dritte Dialog angezeigt.

Skriptmanager und Befehlszeile

Es ist schön, neuen Code in den Skriptmanager zu schreiben. In diesem Fall wird das ausgeführte Skript nicht an die Konsole ausgegeben. (Obwohl es wünschenswert sein kann)

Bei der Ausführung über die Befehlszeile werden die ausgeführten Inhalte auch an die Konsole ausgegeben. [OK] ist am Kopf angebracht.  c4d_cmdline.png

Übrigens funktioniert der Skriptmanager nicht rückgängig machen? Ist es nicht ein Dämon?

Referenz

c4d module https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/index.html

c4d.GetC4DVersion https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/index.html#c4d.GetC4DVersion

c4d.documents.BaseDocument (= doc) https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d.documents/BaseDocument/index.html#c4d.documents.BaseDocument

c4d.BaseObject (= op) https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/C4DAtom/GeListNode/BaseList2D/BaseObject/index.html#c4d.BaseObject

Command Handler https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/index.html#command-handler

c4d.gui.MessageDialog https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d.gui/index.html#c4d.gui.MessageDialog

cookbook https://developers.maxon.net/docs/Cinema4DPythonSDK/html/misc/cookbook.html Es gibt zwei Beispielsätze

Examples https://github.com/PluginCafe/cinema4d_py_sdk Muster sind auf Github erhältlich.

Recommended Posts

Informieren Sie sich über die Python-Umgebung von Cinema4D
Informieren Sie sich über den Start von Anaconda Prompt
Informieren Sie sich über die Python-Umgebung von Cinema4D
Informieren Sie sich über den Start von Anaconda Prompt
Python-Anfänger versuchten es herauszufinden
Über Python-Slices
Über die Einschlussnotation von Python
Python DS-Debugging
Über Python tqdm.
Python-Umgebungseinstellungen
Über die Python-Ausbeute
Über Python, Klasse
Python Windows-Umgebung
Umgebungskonstruktion (Python)
Python-Kommentar aus
Informationen zur Python-Vererbung
Über Python, range ()
Python-Umgebungskonstruktion
Denken Sie daran, eine Python 3-Umgebung in einer Mac-Umgebung zu erstellen
Python - Umgebungskonstruktion
Über Python Decorator
Informationen zur Python-Referenz
Über Python-Dekorateure
[Python] Über Multi-Prozess
Ich habe Python verwendet, um mich über die Rollenauswahl der 51 "Yachten" in der Welt zu informieren.
Schreiben Sie über das Erstellen einer Python-Umgebung zum Schreiben von Qiita Qiita
Kennen Sie den Speicherort der Python-Klassendefinitionsdatei.
Python-Memo (für mich): Über die Entwicklungsumgebung virtualenv
[Python] Kapitel 01-02 Über Python (Ausführung und Installation der Entwicklungsumgebung)
Über Python für Schleife
Finden Sie das maximale Python
Über Funktionsargumente (Python)
Vereinheitlichung der Python-Umgebung
Homebrew Python Umgebung Konstruktion
[Python] Memo über Funktionen
Zusammenfassung über Python3 + OpenCV3
Über Python für ~ (Bereich)
[Python] Memo Über Fehler
Python, über die Ausnahmebehandlung
Über Python Pyramid Traversal
Erstellen Sie eine Python-Umgebung
Entwicklungsumgebung in Python
Über Python3 ... (Ellipsenobjekt)
[Python] Kapitel 01-01 Über Python (Erster Python)
[Python] Informationen zur Standardeingabe
Über __all__ in Python
Virtuelle Umgebung mit Python 3.6
Python-Umgebungskonstruktion @ Win7
Wartung der Python-Umgebung für Projekte
Ich habe versucht, die Umrisse von Big Gorilla herauszufinden
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
Python - Ermitteln Sie die Anzahl der Gruppen im regulären Ausdruck