Jump to content
3DCoat Forums

Newbie question: import/export and so some basic operations


roar
 Share

Recommended Posts

  • New Member

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 

Link to comment
Share on other sites

  • New Member

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!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...