Découvrez l'environnement Python de Cinema4D

Qu'est-ce que c'est?

À propos de l'environnement Cinema4D Python et du module c4d J'ai essayé de plonger paresseusement C'est également une extension du livre de copie C4D Python précédemment distribué lors de l'événement. Sentiment une continuation de ceci ...?

Cinema4D, options de ligne de commande sous OSX, etc. http://qiita.com/it_ks/items/5c052366fb8d1c9952b0

Avant d'accepter

Ici, le nom du module sera un peu déroutant, donc En parlant de "** c4d **", ** module Python **. L'application est abrégée en Cinema 4D. La plupart.

environnement

OSX 10.10.5、Cinema4D R14。

python


print c4d.GetC4DVersion()

14042

Il est retourné avec un entier à 5 chiffres. En regardant la boîte de dialogue à propos, elle est divisée en 14 et 042.

À propos, la version de l'API est (▼)

python


print c4d.GetAPIVersion()

(1, 1, 2406)
#Est-ce que c'est comme ça?

L'environnement Python pour Cinema4D R14 est 2.6.4.

python


print sys.version_info

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

Je vais essayer d'obtenir la version du système d'exploitation via Python.

python


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

Version Type Cinema4D a différentes qualités telles que Broadcast et Prime under Studio qui sont toutes incluses. En termes d'API, ces classifications semblent s'appeler "** type de version **".

python


print c4d.GeGetVersionType()

4

Le type de version de Cinema 4D que nous utilisons est "** 4 **". 4, qu'est-ce que ...? Selon ce https://developers.maxon.net/docs/Cinema4DPythonSDK/html/modules/c4d/index.html#c4d.GeGetVersionType Compter à partir de 0, 4 correspond à "Cinema 4D Broadcast". Bonne réponse!

python


print c4d.VERSIONTYPE_BROADCAST

4

Pour le moment dir ()

Dir () sans rien mettre à l'intérieur. Vérifiez les outils posés à plat.

python


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

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

C'est comme quelque chose qui peut être placé sans rien faire, un équipement de base.

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.
     |  

(Omis)

dir( c4d ) Une énorme quantité a été retournée et je ne pouvais pas tout voir sur la console Cinema 4D

Regardons le nombre d'articles.

python


print len(dir(c4d))

17828

fort

doc

python


print type( doc )

<type 'c4d.documents.BaseDocument'>

Le «document de base» dans c4d.documents semble être la véritable identité. D'autres amis ...

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__']

Il ressemble à un module de gestion des fichiers (fichiers de scène) gérés par Cinema4D, c4d.documents.

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.

(Omis)

dir( doc ) Cette personne a pu s'exhiber jusqu'au bout.

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__']

Le nombre d'articles pour le moment.

python


print len(dir( doc ))
182

Au fait, toutes les lettres initiales sont en majuscules, mais puis-je penser que tout cela est une classe?

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'>

Toutes les fonctions. Il y a des jours comme ça.

op

python


print type(op)

<type 'NoneType'>

C'est un mystère.

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.

???

Différent de la normale help (None) ……

python


#Aide sur le 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) 

Il semble que Python dans Cinema4D soit tombé une fois et redémarre. Qu'est-ce que c'est

BaseObject En fait, op sera rempli de ** lorsque vous sélectionnez un objet.

Fabriquez un cube puis demandez


c4d.CallCommand(5159) #cube

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

Cela ressemble à une instance de c4d.BaseObject.

Aide (op) à nouveau

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.

(Omis)

dir( op )

Quand j'ai essayé dir, cette personne a également constaté que le contenu était en majuscules et toutes les fonctions.

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']

Je lis beaucoup de ** ci-dessous ** c4d.

python


print sys.getdefaultencoding()

ascii

Encoder, ascii?

python


#Regardons également le système de fichiers.
print sys.getfilesystemencoding()

utf-8

Depuis le terminal


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

Attitude qui change du codage système.

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, Ne génère pas de .pyc ou .pyo.

Famille "Command" en c4d

Gestionnaires de commandes.

ID=5159


#Par exemple, pour l'ID 5159

c4d.CallCommand(5159) #cube

print c4d.GetCommandName(5159)
cube

print c4d.GetCommandHelp(5159)
Ajouter un objet cubique

python


help(c4d.CallCommand)

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

...... Est-il faux d'attendre quelque chose de la commande help?

Quelle commande est cet ID?

Tournez avec pour et essayez de vous renseigner d'un bout. Cependant, seuls ceux qui commencent par "ID".

python


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

résultat


IDM_CM_CLOSEWINDOW 12097 Fermer
IDM_COPIE 12107 copie
IDM_CUT 12106 coupe
IDM_SUPPRIMER 12109 Effacer
IDM_INVERSION 12374 Tout inverser
IDM_KEY_LAST 12415 Passer à la clé précédente
IDM_KEY_SUIVANT 12416 Passer à la clé suivante
IDM_PÂTE 12108 pâte
IDM_Redémarrer REDO 12297
IDM_SELECTALL 12112 Tout sélectionner
IDM_SELECTNONE 12113 Tout désélectionner
IDM_UNDO 12105 Annuler
ID_BASECURVE 1015549 courbe IGES
ID_BASEGROUP 1015545 Groupe IGES
ID_BASESURFACE 1015548 IGES surface
ID_CAMERA_LOCK_PIVOT 440000104 Verrouiller le pivot de la caméra
ID_CAMERA_Zoom film MAGNIFY 1016008
ID_CAMERA_MOVE 1016007 Déplacer le film
ID_CAMERA_SET_PIVOT 1021420 Régler le pivot de la caméra
ID_CAMERA_ZOOM 1016009 Mise à l'échelle du film
ID_CAMERA_ZOOM_IN 1016010 Zoom avant
ID_CAMERA_ZOOM_OUT 1016011 Zoom arrière
ID_CA_CONSTRAINT_TAG_CLAMP_TARGET_COUNT 50000 paramètres de rendu
ID_CA_CONSTRAINT_TAG_MIRROR_TARGET_Afficher le filtre COUNT 70000
ID_CA_CONSTRAINT_TAG_SPRING_TARGET_COUNT 60000 filtre d'exportation
ID_CA_PAINT_TOOL_DISPLAY_COULEUR 12002 Stop
ID_CONVERT_SELECTION_TOOL 1011181 Convertir la sélection
ID_LASTTOOL_END 1021392 -
ID_LASTTOOL_START 1021385 Déplacer
ID_MAPPEDCURVE 1015547 IGES Courbe mappée
ID_MEASURE_OUTIL 1011182 Travaux de mesure
ID_MODELING_ARRANGE_OUTIL 200000068 Organiser
ID_MODELING_ARRAY_Baie TOOL 450000045
ID_MODELING_BEVEL_TOOL 450000005 biseau
ID_MODELING_BRIDGE_Pont TOOL 450000008
ID_MODELING_BRUSH_Brosse TOOL 1016202
ID_MODELING_CENTER_OUTIL 200000071 Centrage
ID_MODELING_CLONE_TOOL 450000042 Clone
ID_MODELING_CLOSEHOLE_OUTIL 450000010 Fermer le trou du polygone
ID_MODELING_COLLAPSE_COMMANDE 1015924 Écraser
ID_MODELING_DUPLICATE_OUTIL 200000067 Dupliquer
ID_MODELING_EDGECUT_OUTIL 1009661 Coupe de bord
ID_MODELING_EDGE_SPLINE_COMMANDE 1009671 Sélection d'arête à spline
ID_MODELING_EXTRUDE_INNER_OUTIL 450000004 Extrudé dans le plan
ID_MODELING_EXTRUDE_OUTIL 1011183 Extrusion
ID_MODELING_FILL_SELECTION_TOOL 1011178 Découvrez la sélection
ID_MODELING_FREESELECTION 200000085 Sélection de la corde de projection
ID_MODELING_IRON_OUTIL 450000014 Fer
ID_MODELING_KNIFE_Couteau TOOL 1016030
ID_MODELING_LIVESELECTION 200000083 Sélection en direct
ID_MODELING_LOOP_OUTIL 1011192 Sélection de boucle
ID_MODELING_MAGNET_Aimant TOOL 1016185
ID_MODELING_MATRIX_EXTRUDE_OUTIL 1011126 Extrusion de matrice
ID_MODELING_MELT_COMMAND 1010136 Fondre
ID_MODELING_MOVE 200000088 déplacer
ID_MODELING_NORMALMOVE_OUTIL 450000000 Déplacement normal
ID_MODELING_NORMALROTATE_OUTIL 450000002 Rotation selon la normale
ID_MODELING_NORMALSCALE_OUTIL 450000001 Échelle selon la normale
ID_MODELING_OM_SELECT_HIDE 1016208 Masquer l'objet
ID_MODELING_OM_SELECT_INVERT 1016207 Inverser la sélection d'objet
ID_MODELING_OM_SELECT_AFFICHER 1016209 Afficher l'objet
ID_MODELING_OUTLINE_SELECTION_OUTIL 1011179 Sélection de contour
ID_MODELING_POINT_ADD_OUTIL 450000007 Créer des points
ID_MODELING_POLYGON_CREATE_OUTIL 450000006 Créer un polygone
ID_MODELING_POLYSELECTION 200000086 Sélection de polygones
ID_MODELING_RANDOMIZE_OUTIL 200000070 Randomiser
ID_MODELING_RECTSELECTION 200000084 Sélection rectangulaire
ID_MODELING_RING_TOOL 1011180 Sélection de bague
ID_MODELING_ROTATION 200000090 rotation
ID_MODELING_SCALE 200000089 échelle
ID_MODELING_SETVALUE_OUTIL 200000065 Aligner les valeurs de points
ID_MODELING_SHORTCUT_SELECTVISIBLE 1016757 Interrupteur uniquement éléments visibles
ID_MODELING_SLIDE_OUTIL 450000012 Coulissant
ID_MODELING_SMOOTH_SHIFT_OUTIL 450000003 Changement de vitesse en douceur
ID_MODELING_SPLINE_CHAMFER_OUTIL 450000043 Chanfreinage
ID_MODELING_SPLINE_PROJECT_OUTIL 450000046 Projection
ID_MODELING_SPLINE_ROUND_OUTIL 450000039 Rond
ID_MODELING_STITCHANDSEW_OUTIL 450000011 Couture
ID_MODELING_TRANSFER_Transfert TOOL 200000069
ID_MODELING_WELD_TOOL 450000009 Rejoindre
ID_NGON_FORCERETRI_MENU 1016173 N-Mettre à jour à l'intérieur de gon
ID_NGON_REMOVE_MENU 1016174 N-Supprimer les gons
ID_NGON_RETRI_MENU 1016160 N-Toujours mettre à jour à l'intérieur de gon
ID_OBJECTHANDLES_ONOFF_MENU 1016176 Afficher l'axe
ID_OPERATORPOOL_PLUGIN 1001138 XPresso piscine
ID_SCALEDOCUMENT_Projet d'échelle CMD 200000277...
ID_SDS_DEC_MENU 1016178 Réduction du nombre de divisions de Hyper NURBS
ID_SDS_INC_MENU 1016177 Augmentation du nombre de divisions de Hyper NURBS
ID_SDS_ONFFF_MENU 1016179 Isoline Modifier
ID_TREEVIEW_PLUGIN 1001145 XPresso Manager
ID_TRIMMEDSURFACE 1015546 IGES Surface ajustée

Il y a des choses comme, oh, je pense que c'était une pièce d'identité qui entre ici. Ou plutôt, il semble que la correspondance entre l'ID et le contenu soit écrite quelque part.

Résumé

Je suis tellement fatigué par ici

C'est un SDK donc ce n'est pas si convivial (biais

Au fait, une fois Tout en expliquant l'environnement Python de Cinema 4D En fait, je pense qu'il y avait un article rock sur Python (et la culture open source). Et à propos de ça (yeux lointains) Python était-il vraiment mauvais? ?? ?? ?? ?? ?? ?? ?? ??

N'y a-t-il pas de document qui mentionne explicitement ce qu'est «op»? recherchons.

Remarques

Exécuter une fonction dans la documentation

Il arrive souvent que vous demandiez un id ou une valeur numérique comme argument, Quel genre de nombre dois-je entrer! Je me sens comme.

Généralement, il y a un tableau juste en dessous, et il semble que vous pouvez obtenir un identifiant en ajoutant «c4d». Au nom de l'élément. (Idem pour c4d.VERSIONTYPE_BROADCAST au début)

Par exemple, 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 )

J'ai ajouté 3 lignes à la fonction écrite lorsque j'en ai créé une nouvelle dans le gestionnaire de scripts. c4d_getID.png La figure est l'endroit où la troisième boîte de dialogue est affichée.

Gestionnaire de scripts et ligne de commande

C'est bien d'écrire un nouveau code dans le gestionnaire de scripts, Si tel est le cas, le script exécuté ne sera pas sorti sur la console. (Bien que cela puisse être souhaitable)

Lorsqu'il est exécuté à partir de la ligne de commande, le contenu exécuté est également sorti sur la console. [OK] est attaché à la tête.  c4d_cmdline.png

Au fait, le gestionnaire de scripts ne fonctionne pas? N'est-ce pas un démon?

référence

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 Il y a deux exemples de phrases

Examples https://github.com/PluginCafe/cinema4d_py_sdk Des exemples sont disponibles sur github.

Recommended Posts

Découvrez l'environnement Python de Cinema4D
Découvrez comment lancer Anaconda Prompt
Découvrez l'environnement Python de Cinema4D
Découvrez comment lancer Anaconda Prompt
les débutants en python ont essayé de le découvrir
À propos des tranches Python
À propos de la notation d'inclusion de python
débogage python DS
À propos de Python tqdm.
paramètres d'environnement python
À propos du rendement Python
À propos de python, classe
environnement windows python
Construction d'environnement (python)
commentaire python
À propos de l'héritage Python
À propos de python, range ()
construction d'environnement python
Pensez à créer un environnement Python 3 dans un environnement Mac
Python - Construction de l'environnement
À propos de Python Decorator
À propos de la référence Python
À propos des décorateurs Python
[Python] À propos du multi-processus
J'ai utilisé Python pour découvrir les choix de rôle des 51 "Yachts" dans le monde.
Écrire sur la création d'un environnement Python pour l'écriture de Qiita Qiita
Connaissez l'emplacement du fichier de définition de classe Python.
mémo python (pour moi-même): À propos de l'environnement de développement virtualenv
[Python] Chapitre 01-02 À propos de Python (Exécution et installation de l'environnement de développement)
À propos de Python for loop
Trouvez le maximum de Python
À propos des arguments de fonction (python)
Unification de l'environnement Python
construction d'environnement python homebrew
[Python] Mémo sur les fonctions
Résumé sur Python3 + OpenCV3
À propos de Python, pour ~ (plage)
[Python] Mémo sur les erreurs
Python, à propos de la gestion des exceptions
À propos de Python Pyramid Traversal
Créer un environnement Python
Environnement de développement en Python
À propos de Python3 ... (objet Ellipsis)
[Python] Chapitre 01-01 À propos de Python (First Python)
[Python] À propos de l'entrée standard
À propos de __all__ en python
Environnement virtuel avec Python 3.6
Construction de l'environnement Python @ Win7
Maintenance de l'environnement Python pour les projets
J'ai essayé de découvrir les grandes lignes de Big Gorilla
Découvrez la largeur apparente d'une chaîne en python
Python --Trouvez le nombre de groupes dans l'expression regex