Jump to content
3D Coat Forums
Sign in to follow this  
roar

Newbie question: import/export and so some basic operations

Recommended Posts

Hello,

 

I am new to 3D-Coat and want to create some scripts to execute some basic operations which I normally would have to execute manually.

 

What I try to do is:

--

i) Import Object(s) from STL

ii) Convert "Surface" to "Voxel" with a distinct resolution (depends on object)

iii) Subtract Voxel-Object(s) from each other

iv) Export result to STL

 

What I have done so far is something like this:

void main(){

    // next command is optional, just to keep control of execution in modal message boxes (see description of ModalDialogCallback below), if you are new you may delete or ignore next line
    //SetModalDialogCallback("ModalDialogCallback");

    if(ModalDialogOkCancel("Create new project and import files?"," "))
    {
        SetModalDialogCallback("ModalDialogCallbackDontSave");
        cmd("$CLEARSCENE");
        
        ToRoom("Sculpt");
         
        string wMeshOne, wMeshTwo;
        if ( OpenDialog("*.stl",wMeshOne) )
        {
            SetFileForFileDialogs(wMeshOne);
            
            cmd("$ImportForVoxelizing");
            //cmd("$MERGEOBJ");
            
            SetModalDialogCallback("ModalDialogCallbackKeepScale");
            
            SetBoolField("Import w/o Voxelization",true);
            //SetBoolField("$RegularGizmo::MoveOnlyGizmo",true);
            
            apply();
            
            cmd("$[Page4]Smooth");//select smooth just for testing
        }
        
    }
    
}

void ModalDialogCallbackDontSave()
{
    cmd("$DialogButton#2");
}

void ModalDialogCallbackKeepScale()
{
    cmd("Yes");// or "$DialogButton#2"
}

 

Finally my concrete questions:

* Which command should be used to import STLs as Surfaces?

* How to programmatically convert them to Voxel with a certain resolution?

* How to access the converted Voxel-objects and subtract them from each other

* How to export the result to STL?

 

A lot of questions, I know ;) - I don't expect a ready-to-run script just some hints into the right direction.

 

Regards, Reiner 

Share this post


Link to post
Share on other sites

Yes and no ;)

I have already studied this document and tried out different code-snippets from it, but not all were working as expected.

So my concrete question (based on the docs): the following code-snipped should load an STL in Surface-Format - correct?

//Import model 
cmd("$ImportForVoxelizing");/*Import mesh for "non-voxelizing"*/
//This is intended to press OK when user will be asked if scale should be kept
SetModalDialogCallback("ModalDialogCallbackOk");
//ensure that model won't be voxelized
SetBoolField("$VoxelSculptTool::MergeWithoutVoxelizing",true);
//press apply button
apply();

 

Thanks!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×