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
Hier wird der Modulname also etwas verwirrend sein Apropos "** c4d **", ** Python-Modul **. Die Anwendung wird als Cinema 4D abgekürzt. Meistens.
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
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.
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.
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?
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.
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.
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".
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. In der Abbildung wird der dritte Dialog angezeigt.
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.
Übrigens funktioniert der Skriptmanager nicht rückgängig machen? Ist es nicht ein Dämon?
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