@m_adam
Anyway, thanks for your time!
Posts made by arsen
-
RE: ID_MODELING_LOOP_TOOL still broken ?
-
RE: AddUndo() for MergeDocument() ?
@zipit @m_magalhaes
Thanks for the answers! I figured out how to solve the problem. -
RE: AddUndo() for MergeDocument() ?
@zipit
Hi
I use thread to track the external file. When a file is changed, it is imported.
When using c4d.threading, subprocess.Popen() / time.sleep() freezes C4D ( until the process is complete ) -
RE: AddUndo() for MergeDocument() ?
@m_magalhaes @zipit
I use thread to manipulate external pipes(subprocess etc). -
ID_MODELING_LOOP_TOOL still broken ?
Hi.
MODELING_LOOP_TOOL still broken or am I doing something wrong?import c4d from c4d import gui, utils doc = c4d.documents.GetActiveDocument() obj = doc.GetActiveObject() bc = c4d.BaseContainer() bc.SetData(c4d.MDATA_LOOP_SEL_STOP_AT_BOUNDS, True) bc.SetData(c4d.MDATA_LOOP_SEL_SELECT_BOUNDS, False) bc.SetData(c4d.MDATA_LOOP_SEL_GREEDY_SEARCH, False) bc.SetData(c4d.MDATA_LOOP_SELECTION, c4d.SELECTION_NEW) bc.SetData(c4d.MDATA_LOOP_LOOP_EDGE, 1) # ? index or .. utils.SendModelingCommand(command=c4d.ID_MODELING_LOOP_TOOL, list=[obj], mode=c4d.MODELINGCOMMANDMODE_EDGESELECTION, bc=bc, doc=doc, flags=c4d.MODELINGCOMMANDFLAGS_0) c4d.EventAdd()
Different values give the same loop selection.
Thanks! -
RE: AddUndo() for MergeDocument() ?
@m_magalhaes
here is my code
import c4d from c4d import utils, documents, plugins import time from threading import Thread class WatchThread(Thread): def __init__(self, name, doc): Thread.__init__(self, name=name) self.doc = doc def run(self): while True: time.sleep(2.5) obj_importer(self.doc, r'f:\01.obj') print 'Loaded.', break def obj_importer(doc, obj_path): if obj_path is None: return plug = plugins.FindPlugin(1030177, c4d.PLUGINTYPE_SCENELOADER) if plug is None: return op = {} if plug.Message(c4d.MSG_RETRIEVEPRIVATEDATA, op): if "imexporter" not in op: return obj_import = op["imexporter"] if obj_import is None: return # Parameters obj_import[c4d.OBJIMPORTOPTIONS_POINTTRANSFORM_SWAPXY] = False obj_import[c4d.OBJIMPORTOPTIONS_POINTTRANSFORM_SWAPXZ] = False obj_import[c4d.OBJIMPORTOPTIONS_POINTTRANSFORM_SWAPYZ] = True doc.StartUndo() doc.AddUndo(c4d.UNDOTYPE_CHANGE, doc) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c4d.documents.MergeDocument(doc, obj_path, c4d.SCENEFILTER_OBJECTS | c4d.SCENEFILTER_MATERIALS | c4d.SCENEFILTER_MERGESCENE, None) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - doc.EndUndo() obj_import[c4d.OBJIMPORTOPTIONS_PRESETS] = 0 c4d.StatusClear() c4d.EventAdd() if __name__ == '__main__': doc = c4d.documents.GetActiveDocument() wt = WatchThread('ht', doc) wt.start()
-
RE: AddUndo() for MergeDocument() ?
@m_magalhaes
No, this solution does not work for me. I am trying to add UNDO when importing an OBJ file. -
AddUndo() for MergeDocument() ?
Hi.
Is it possible to add UNDO for documents.MergeDocument() operation?
I tried this code but it does not work:doc.StartUndo() c4d.documents.MergeDocument(doc, obj_path, c4d.SCENEFILTER_OBJECTS | c4d.SCENEFILTER_MATERIALS | c4d.SCENEFILTER_MERGESCENE, None) c4d.StatusClear() c4d.EventAdd() obj = doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)[0] while obj: obj = get_next_object(obj) doc.AddUndo(c4d.UNDOTYPE_NEW, obj) doc.EndUndo()
Thanks!
-
SendModelingCommand \ LOOP_TOOL
Hi!
Is there any news aboutSendModelingCommand \ LOOP_TOOL
? Still broken?I asked this question a year ago.
I tried this code, but always got False:bc = c4d.BaseContainer() bc[c4d.MDATA_LOOP_SEL_STOP_AT_BOUNDS] = False bc[c4d.MDATA_LOOP_SEL_SELECT_BOUNDS] = False bc[c4d.MDATA_LOOP_SEL_GREEDY_SEARCH] = False bc[c4d.MDATA_LOOP_LOOP_EDGE] = 1 # edge index bc[c4d.MDATA_LOOP_SELECTION] = c4d.SELECTION_ADD utils.SendModelingCommand(command=c4d.ID_MODELING_LOOP_TOOL, list=[op], mode=c4d.MODELINGCOMMANDMODE_EDGESELECTION, bc=bc, doc=doc, flags=c4d.MODELINGCOMMANDFLAGS_0)