I ran everything again, and the examples as well as my own plugin built correctly now. I guess there were still some files missing, that showed up now.
Thanks everyone!
Posts made by Boony2000
-
RE: R25 project tool
-
R25 project tool
Hi there!
I am trying to complie a plugin for R25, but am getting an error about missing .hxx files.
Error C1083 Cannot open include file: 'simplemesh1.hxx': No such file or directory
I am wondering if that is because I used the wrong project tool.
TheMaxon Developers Page
[URL-REMOVED] links to the S24 project tool under the R25 headline. Is that correct or should there be a different tool linked?
[URL-REMOVED] @maxon: This section contained a non-resolving link which has been removed.
-
Constraint tag has no enum description
Hi!
How come there is no enum desciption for the constraint tag?
The ID is 1019364 and the name should be c4d.Tcaconstraint, but it doesn't appear in any of the header files and it's not even listed on the tag types page in the documentation. -
SearchPluginMenuResource has wrong default value
Hi!
At some point the "Plugins" menu was renamed to "Extensions" and with it the ID of the actual menu. It used to be
IDS_EDITOR_PLUGINS
, but is nowIDS_EDITOR_PIPELINE
.
Because of thatc4d.gui.SearchPluginMenuResource()
doesn't find it anymore without specifiying the identifier.The default value (or even the function name) should probably be updated to reflect the change.
(Or for the time being maybe just give a warning in the documentation?) -
RE: render progress callback is called wrong by Redshift
Alright, will do. Thanks!
-
render progress callback is called wrong by Redshift
Hi!
I implemented the render progress callbacks as explained in the documentation for RenderDocument() to print updates to a commandline render and it seems the callback doesn't work for Redshift renders.
Instead ofc4d.RENDERPROGRESSTYPE_DURINGRENDERING
the function givesc4d.RENDERPROGRESSTYPE_AFTERRENDERING
for every call.There is also some funky formatting going on at the bottom of the documentation entry.
-
SendModelingCommand c4d.MCOMMAND_JOIN
Hi!
The documentation for
c4d.utils.SendModelingCommand
statesdoc (c4d.documents.BaseDocument) – The document for the operation. Should be set if possible. Must be set for MCOMMAND_JOIN [...]
But this code for example works fine:
splineA = c4d.BaseObject(c4d.Osplinecircle) splineB = c4d.BaseObject(c4d.Osplinecircle) splineB[c4d.PRIM_PLANE] = c4d.PRIM_PLANE_XZ null = c4d.BaseObject(c4d.Onull) splineA.InsertUnder(null) splineB.InsertUnder(null) splineC = c4d.utils.SendModelingCommand(c4d.MCOMMAND_JOIN, [null], doc=None)[0] doc = c4d.documents.GetActiveDocument() doc.InsertObject(splineC)
Is there a specific reason you should have a document to do that operation in?
On a side note it would be really helpful if the documentation stated that you need to have the objects in a null in order to merge them and not pass a list of the objects as you might think.
-
c4d.documents.CloseAllDocuments() always returns None
Hi!
c4d.documents.CloseAllDocuments()
always returnsNone
.
Is this a bug, or am I using it wrong? -
RE: No save prompt after userchange
Hi!
Thanks for your input!
I just found the cause.
There is anos.kill
call on theC4DPL_ENDPROGRAM
message. If you leave it out some python stuff seems to keep running and preventing Cinema from being opened again. I am assuming that's why the original author did that.I will just catch the dirty flag myself and deal with unsaved scenes before terminating the process. Unless you know a more elegant way.
I will mark this as solved.
Thanks again.P.S.: This is off topic, but trying to reply I would always get an error and I had to log out and in again to post this.
EDIT: I found the elegant solution - Adding
c4d.documents.CloseAllDocuments()
before the process termination handles the save dialogs perfectly! -
No save prompt after userchange
Hi!
I am implementing a big external toolkit and after setting it up Cinema doesn't give a save prompt when exiting any more, even though
BaseDocument.GetChanged()
returnsTrue
.It's kind of a weird question, because obviously the tookit code is causing this issue. I am trying to go though the mess of code for the toolkit trying to figure out what could be the culprit, but I don't even really know what I am looking for.
Does anyone have a hint as to what could be causing Cinema to not ask if you want to save changes when exiting?
-
RE: Errors when recompiling R20 plugin to R21
Hi Riccardo!
The successfully building solution still gives me these errors:
They stem from the R21 sdk frameworks, so I assumed they are not stuff that I have to fix necessarily. I interpreted the icon on the left as a "syntax error", but maybe it means something else. -
RE: Errors when recompiling R20 plugin to R21
Hey Frank!
That totally fixed the errors I got. (At least like you said the second part).
I can now successfully build the solution.
Thank you!I still kinda would like to know if the other warnings that pop up are a serious issue or if they can be ignored... The build doesn't fail anymore, so it sees not to be too bad.
-
Errors when recompiling R20 plugin to R21
Hi there!
I am trying to recompile an older Plugin to R21 and am having trouble getting it to build correctly.
My C++ and VisualStudio knowledge is very limited so I might just be making some basic mistakes.
I got the R21 sdk and replaced the demo plugins with the old R20 one.
I am using VS2019, but I switched the Platform Toolkit for the plugin and the frameworks to 2017. (Using VS2019 works fine to compile the R20 plugin with the 2015 toolkit)
When building I get a bunch of syntax errors for the frameworks like:Error (active) E0757 member "maxon::ClassInterface::REF" is not a type name
And I get this error for several places where a global array is modified like
myBaseArray.Append(plugin_id);
:C4834 discarding return value of function with 'nodiscard' attribute
I have searched around for a while but I don't know how to fix this. Do I have to modify the code, or is this an issue stemming from an incorrect setup of the VisualStudio project?
-
RE: Error reading resource Line 1
After a LOT of testing around I finally found the culprit.
The header file was encoded UTF-8 with BOM. I finally figured it out after noticing that two versions of the header file that worked or didn't work had a 3 byte difference in file size. No idea how that snuck in there, but now it finally works.
Also now it makes sense that the error was pointing to line 1. -
Error reading resource Line 1
Hi everyone!
I am currently in the process of moving a plugin into a new environment and starting a very reduced version of it up gives me an error on startup:
Error reading resource file '[PLUGINDIR]\res\c4d_symbols.h' Line 1
I am still on R20, in case this is relevant.
I am a little stumped as to what this error is trying to tell me, since the first line of the file are just comments and even if I only put a dummy element in there the error appears (even though the plugin then breaks).
I am confused as to why the plugin seems to run fine after I click ok, since the file contains the pluginIDs necessary to register the plugins. How do I get rid of that error message?I don't know if this is related at all, but I also always get this in the maxon console:
ZeroConf error: Couldn't get bonjour version [sys_bonjour.cpp(1726)] Warning: Team Render is deactivated in -parallel mode [...] ZeroConf error: Couldn't get bonjour version [sys_bonjour.cpp(1726)] ZeroConf error: nullptr CRITICAL: Stop: Current take is nullptr document data could be corrupted [takemanager.cpp(499)] CRITICAL: Stop: Current take is nullptr document data could be corrupted [takemanager.cpp(499)] Optout defined by Installer / Updater.
It's probably not related, but in case it is I thought I'd mention it.
-
RE: Output all renderpaths
Thanks Maxime!
In the mean time I will cycle through takes, AOVs and Frames manually to get the paths.
-
Output all renderpaths
Hi!
Is there a way to output all renderpaths? Perhaps via the token system?
I tried setting up the token system to get to the render paths, but it seems to me, like it is basically the same as building your own string replacement. You still have to manually input all the relevant stuff in to the dictionary, am I wrong?
If only something like $take is used that might be handy, but if you are e.g. trying to output all paths that have tokens like $take, $pass and $frame and you have to cycle through them manually changing the values in the dictionary then that's not really more practical than just searching for the token string and replacing it.Am I missing some great functionality of the token system that would allow me to just print all the render output paths?
Thanks!