Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

David Colin

Verified Members
  • Posts

    791
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by David Colin

  1. I don’t have Mastercam at the moment so i m just guessing.

    Did you check your part holes are exactly the same as the ones in your strategy template? Process hole toolpath will only show strategy toolpaths from your template compliant with your hole features. It needs same diameters values, same segments number/type, same angles...  

  2. I only could test it for a few days and on a titanium part. That worked pretty good with conventional roughing toolpaths and semi finishing toolpaths with ball cutters when tool engagement can go from buried tool to light chip. I couldn't compare tool life enhancements but we could gain more than 20% in time.

    However i noticed it worked not that good with high feed end mills (like 7792 Kennametal). it probably didn't take into account low tool cutting edge angle and chip thinning on subsequent passes. No issue with facing toolpath but in a pocket, as soon as tool edge upper radius of the tool is buried in material along a wall, Vericut Force slowed it all detecting a difficult machining. 

    Another issue I got was with finishing toolpaths, sometimes it could increase dramatically feed detecting low cutting force but downgrading roughness. 

    It's funny, I'm going to French VUE tomorrow, perhaps there are software improvements coming!

    • Like 1
  3. 2 hours ago, Metals and materials said:

    Good morning and happy Labor Day! I was out yesterday. 

    But, this is very good insights. 

    @David Colin I have 2023 version of mastercam. FIle is of newer version. So, i am not able to open it. 

    @crazy^millman To prerform transfer toolpath I must have atleast one toolpath. But, 

    I think I stumbled upon another problem while trying the method above. Made Top plane, created curve all edges. Hit the drill toolpath, time to select hole --->but I cannot. I am guessing the cylinder is round. so the holes are not flat but curved and that is why mastercam is not picking up those holes. 

    here is the screenshot of what is happening. 

    I found this post online------  

     

     

    I understood verisurf is the way to do this so downloading the tools and hopefully, it will be resolved. 

    Also, I am very new to mastercam, so I apologize for this all-small issues. But I am quick learner. Hopefully, in the future, I will help others as well. 

     

     

    Screenshot (3).png

    About hole selection, if you have issues to select autocursor locations you can use 'hole axis’ command in model prep tab which allow you draw center points or lines. There is also another process using 'find hole' to create hole solid feature.

  4. @jpatry Your machine has an indexer but to program it in Mastercam you need to add a 'virtual' rotary axis to your machine definition. Then make your post spit M21 code and whatever you need. You even can make your post create another file with all values you will need to input in your indexer NC.

    Here is an example with machine/post included (just for example purpose, don't use that for production)

    Indexer example.MCAM-CONTENT

    • Thanks 1
    • Like 1
  5. Never tried it so I just guess here but you can try to edit nethasp.ini file and add ip address of your second server. 

    If I remember you may add several ip addresses separating them with a semi colon. 

  6. You could use toolpath editor to modify every hole. If you have a bunch of holes it will be a lot of work though. 

    It probably can be made with a post modification too but it will need post coding knowledge to identify toolpath type and first arc motion.

    Looking at your toolpath, you probably use a single point (or profile with 2 or 3) thread mill so I would suggest to conventional mill your holes from top. That way tool will enter the cut progressively and it won t really need to decrease feed. 

  7. @DBronson I build my lathe tools assemblies in Mastercam and I save them in a master library with an id number. I build a similar Vericut master library with same ids.

    To build Vericut library, I manually export model assemblies from Mastercam tool manager in .stp (with correct wcs) and I create them from scratch in Vericut. Need to define a standard process then it’s ok (import from cad, define inserts and cutting face, holders, tolerances, keep reference file, adjust offsets x/z with a standard project).

    For milling tools I always create tools using McamV nethook with each Mastercam project but I pull lathe tools from my Vericut library.

     

  8. 2 hours ago, Mark one said:

    Thanks for the reply! I also tried dynamic, same thing, as it will not allow me to anchor the gnomes to anything on the part, to try rotation.

    It's also difficult to accurately set the part planes using Dynamic, when the file comes in with all axis of the part in different unknown angles. This is where 3 point or face options shined. Perhaps this is a 2023 version bug, I've not experienced this previously. Inhouse could advise.?

    With dynamic you should be able to mimic transform to plane command even if your part is in any orientation. 

    Check you are in 3D mode though. 

    You just need to pick your solid face to locate xy plane, orient your gnomon as you want it on your part then transform your part automatically to any plane you want using view manager/dynamic buttons in panel.

    Dynamic can basically do it all if correctly used. 

    • Thanks 1
  9. I’ve got some VTL machines with indexer on X axis. Post is customized to spit M code instead of A value. Value is post in a comment. 

    It's all about machine definition and post. It should be easy to tweak it, share files if you need help.

     

  10. You can directly modify your original plane in view manager (but it wil update all your toolpaths using that plane) or you can create a new tilted plane and affect it to your facing operation.

    You can change operation toolplane with field ToolPlane from Operation class.

    Here is an example reusing example i wrote above.

    Script will reverse toolplane of selected operations. It will create a new plane rotated 180° on X-axis from original plane and will affect it to Construction/Tool plane operations.

    public void Run()
    	{	
    		// settings
    		bool used = true ;  // True will only modify selected toopath
    
    		// Get all operations from toolpath manager
    		Operation[] toolpaths = SearchManager.GetOperations(used);
    		
    		// Iterate operations
    		foreach (Operation op in toolpaths)
    				{
    				try 
    					{
    					//Angles transformation
    					Double angleX = VectorManager.DegreesToRadians(180); //Convert.ToDouble(angles[0]));
    					Double angleY = VectorManager.DegreesToRadians(0);  //Convert.ToDouble(angles[1]));
    					Double angleZ = VectorManager.DegreesToRadians(0); //Convert.ToDouble(angles[2]));
    
    					// Get original toolplane view
    					MCView Tplane = op.ToolPlane;					
    
    					//Get original toolplane data 
    					Matrix3D matrixTplane = Tplane.ViewMatrix; // Get Matrix
    					Point3D originTplane = Tplane.ViewOrigin; // Get Origin
    					
    					//Create a new plane with same matrix and origin offset
    					MCView newPlane = new MCView();
    					newPlane.ViewMatrix = matrixTplane;
    					newPlane.ViewOrigin = originTplane;
    			
    					//Transform matrix about X
    					Matrix3D rotatedMatrix = newPlane.ViewMatrix;
    					rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row1, angleX);
    					rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row1, angleX);
    					rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row1, angleX);
    					
    					//Transform matrix about Y
    					rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row2, angleY);
    					rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row2, angleY);
    					rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row2, angleY);
    					
    					//Transform matrix about Z
    					rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row3, angleZ);
    					rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row3, angleZ);
    					rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row3, angleZ);
    					
    					// Affect transformed matrix to view
    					newPlane.ViewMatrix = rotatedMatrix;
    					
    					//Add plane to Mastercam database
    					newPlane.Commit();
    					
    					// Set C/T Plane to operation
    					op.ConstructionPlane = newPlane;						
    					op.ToolPlane = newPlane;
    					op.Commit(true);
    					op.Regenerate();	
    					}
    				catch
    					{
    					}	
    				}
    	ViewManager.RefreshPlanesManager();
    	}

    ReverseToolpathToolplane.csx

    • Like 1
  11. Just in case here is an example with any transform rotation + prompt to enter data.

    	public void Run()
    	{	//Ask for origin offsets
    		String offsetStr = "";
    		DialogManager.AskForString("Enter origin offsets values from selected WCS (x,y,z)", ref offsetStr);
    		string[] offsetCoord  = offsetStr.Split(',');
    		Point3D offset = ViewManager.ConvertToWorldCoordinates(new Point3D(Convert.ToDouble(offsetCoord[0]),Convert.ToDouble(offsetCoord[1]),Convert.ToDouble(offsetCoord[2])));		
    
    		//Ask for angles transformation
    		String anglesStr = "";
    		DialogManager.AskForString("Enter angle values (u,v,w) (degrees)", ref anglesStr);
    		string[] angles  = anglesStr.Split(',');
    		Double angleX = VectorManager.DegreesToRadians(Convert.ToDouble(angles[0]));
    		Double angleY = VectorManager.DegreesToRadians(Convert.ToDouble(angles[1]));
    		Double angleZ = VectorManager.DegreesToRadians(Convert.ToDouble(angles[2]));
    		
    		//Get original plane data from WCS selected
    		MCView wcs = ViewManager.WorkCoordinateSystem; // Get WCS view
    		Matrix3D matrixwcs = wcs.ViewMatrix; // Get WCS Matrix
    		Point3D originwcs = wcs.ViewOrigin; // Get WCS Origin
    		
    		//Create a new plane with same matrix and origin offset
    		MCView newPlane = new MCView();
    		newPlane.ViewMatrix = wcs.ViewMatrix;
    		newPlane.ViewOrigin = VectorManager.Add(originwcs, offset);
    
    		//Transform matrix about X
    		Matrix3D rotatedMatrix = newPlane.ViewMatrix;
    		rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row1, angleX);
    		rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row1, angleX);
    		rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row1, angleX);
    		
    		//Transform matrix about Y
    		rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row2, angleY);
    		rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row2, angleY);
    		rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row2, angleY);
    		
    		//Transform matrix about Z
    		rotatedMatrix.Row1 = VectorManager.Rotate(rotatedMatrix.Row1, rotatedMatrix.Row3, angleZ);
    		rotatedMatrix.Row2 = VectorManager.Rotate(rotatedMatrix.Row2, rotatedMatrix.Row3, angleZ);
    		rotatedMatrix.Row3 = VectorManager.Rotate(rotatedMatrix.Row3, rotatedMatrix.Row3, angleZ);
    		
    		// Affect transformed matrix to view
    		newPlane.ViewMatrix = rotatedMatrix;
    		
    		//Add plane to Mastercam database
    		newPlane.Commit();
    		
    		// Set C/T Plane
    		ViewManager.CPlane=newPlane;
    		ViewManager.TPlane=newPlane;
    		ViewManager.RefreshPlanesManager();
    	}

    CreatePlaneRotate.csx

    • Like 2
  12. @Doug Rice

    I'm not sure what you meant with 'r_v -152 ' ?  A plane parallel to an existing plane is the same plane (same matrix) with just a new origin.

    Here is a sample code

    //Settings
    		Point3D offset = new Point3D(10, 5, 3); // Origin offset value
    		
    		//Get original plane data from WCS selected
    		MCView wcs = ViewManager.WorkCoordinateSystem; // Get WCS view
    		Matrix3D matrixwcs = wcs.ViewMatrix; // Get WCS Matrix
    		Point3D originwcs = wcs.ViewOrigin; // Get WCS Origin
    
    		//Create a new plane with same matrix and origin offset
    		MCView newPlane = new MCView();
    		newPlane.ViewMatrix=wcs.ViewMatrix;
    		newPlane.ViewOrigin = VectorManager.Add(originwcs,offset);
    		newPlane.Commit();
    		
    		// Set C/T Plane
    		ViewManager.CPlane=newPlane;
    		ViewManager.TPlane=newPlane;
    		ViewManager.RefreshPlanesManager();

    CreatePlaneOffset.csx

    • Like 1

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...