When we open an RSOBJ based export file in the

Smart people ~ Great Scripts
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas

When we open an RSOBJ based export file in the

Post by BNG »

Link Editor and select the methods tab are the contents the actual code used by the plugin to execute the scripts functions?

Will an RSOBJ written for the Rosetta version of Truespace work in the Beta 8 version as well?

If we make changes to the methods section of the same file will they be reflected in the resulting output?

The referenced RSOBJ is for Clintons Simple ASE exporter.

Was this exporter originally written in C++ and can it be modified in the TS LE?

Also, rather then modify the original file would it be safer to copy, rename and modify the copied file rather then possible destroy the original file?

Sorry to be such a persistent pest, but I'm very interested in this area, but am a bit wary about getting my feet wet as I understand so little about this area. Thanks for any feedback to help get me started. BNG.
froo
Captain
Posts: 2554
Joined: 22 May 2009, 12:13

Re: When we open an RSOBJ based export file in the

Post by froo »

BNG wrote:Link Editor and select the methods tab are the contents the actual code used by the plugin to execute the scripts functions?

Will an RSOBJ written for the Rosetta version of Truespace work in the Beta 8 version as well?

If we make changes to the methods section of the same file will they be reflected in the resulting output?

The referenced RSOBJ is for Clintons Simple ASE exporter.

Was this exporter originally written in C++ and can it be modified in the TS LE?

Also, rather then modify the original file would it be safer to copy, rename and modify the copied file rather then possible destroy the original file?

Sorry to be such a persistent pest, but I'm very interested in this area, but am a bit wary about getting my feet wet as I understand so little about this area. Thanks for any feedback to help get me started. BNG.
Yes, a script node should work in both. If not you can copy the script code from the node, open the other version, and paste
that code into a script node that you create in the other version.

When you change the script code, you click the little icon at the top of the node, the red arrow I believe, to commit the changes. When you do, and run the modified script, the output will be modified accordingly.

I believe Clinton's exporter is composed of two parts: an RSX plugin (written in C++), and script code. C++ code cannot be edited in the link editor. Script code can.

It would be best to make a copy of the downloaded file and use that.

The best thing to do would be to go through that powerpoint presentation I made; some other folks made some other tutorials as well. Follow the steps, making something that is extremely simple, to understand how it works. Then advance up to the exporter. It looks like the exporter has quite a bit of code in it.
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas

Re: When we open an RSOBJ based export file in the

Post by BNG »

Thanks Froo. I had a feeling that modifying the original file would probably turn it into a FUBARed state.

How can one tell the difference between what's C++ code and the script kind?
froo
Captain
Posts: 2554
Joined: 22 May 2009, 12:13

Re: When we open an RSOBJ based export file in the

Post by froo »

Well, the script code is in a trueSpace RsObj node. It is called a script object, or script node.
All truespace objects are nodes. If you save a cube as a trueSpace object in: C:\temp,
you will see it saved as: cube.RsObj (if you chose the filename to be: cube).

For developing plugins for trueSpace, you would need Microsoft Visual Studio 2005 or newer.
C++ code is used for plugins. A C++ filename has a .cpp extension, like: plugin.cpp.
You also have supporting header files, with a .h extension, like: plugin.h
There are several .cpp and .h files required to make a plugin. If you have Visual Studio,
you can open an example for trueSpace that comes with the trueSpace SDK: RsExamplesPlugin is a good one.
To keep things organized, you have a Solution file for Visual Studio, for each solution (in our case, a plugin).
The solution file has a .sln extension, like: plugin.sln. This file contains information that Visual Studio reads,
in order to load all the cpp and .h files for the solution. Pretty complicated I know, but that's basically
how it works.
The compiled solution is a DLL, for trueSpace. Only, for trueSpace, the extension of the DLL is .RSX, like:
plugin.RSX.
User avatar
clintonman
Captain
Posts: 5659
Joined: 21 May 2009, 21:08
Type the number ten into the box: 0
Location: California

Re: When we open an RSOBJ based export file in the

Post by clintonman »

The ASE exporter only uses c++ for the file dialog portion. My website says that the RSX plugin is required, but I just looked at the code and I don't think it's really required. The part that calls the plugin is inside the button:

Code: Select all

try
{
	sadata = System.CreateDO('Clintons3d Package/File Save As data');
}
catch(err)
{
	sadata = false;
}
if(sadata)
{
	sadata.SetName("3DS ASCII Scene Files (*.ase)~*.ASE~All Files (*.*)~*.*~~");
	safile = sadata.GetName();
	if(safile != "")
	{
		Node.Value('%THIS_NAME%',"MyFileName") = safile;
		Activity.Run('%THIS_NAME%');
	}
}
else
	Activity.Run('%THIS_NAME%');
For all the stuff I write if it uses c++ you will find "Clintons3d Package" somewhere in the code. In the code above it's found here "sadata = System.CreateDO('Clintons3d Package/File Save As data');" So in this case it's more than 99% scripting.
Clinton Reese

http://clintons3d.com
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas

Re: When we open an RSOBJ based export file in the

Post by BNG »

For all the stuff I write if it uses c++ you will find "Clintons3d Package" somewhere in the code. In the code above it's found here "sadata = System.CreateDO('Clintons3d Package/File Save As data');" So in this case it's more than 99% scripting.
Very cool Clinton and thanks Froo for explaining things for me. I'd like to focus on this area more so I can muster the courage to dive in to the plugin side a bit more. BNG.

Return to “Scripts and SDK”