Colin Gilchrist

Verified Members
  • Content count

  • Joined

  • Last visited

  • Days Won


Colin Gilchrist last won the day on April 17

Colin Gilchrist had the most liked content!

Community Reputation

2,840 Excellent

About Colin Gilchrist

  • Rank
    Advanced Member

Profile Information

  • Gender


  • Location
    Commonwealth of Massachusetts

Recent Profile Visitors

10,626 profile views
  1. Colin Gilchrist

    Right angle head spindle direction

    For a Fixed Angle RAH ( tool is mounted at one "orientation" or "Station" as Mastercam calls it), you only really need two offsets. The H Offset and the D offset. The D Offset is called with G45/G46, and the H is still called with G43. You would either program on the G18 or G19 plane. This allows you to still use G41/G42 with a separate D Offset, for circular or contour motion on that plane. That way you can accommodate a range of different RAH Tools, just by using Offset Registers on the machine.
  2. Colin Gilchrist

    For Developers

    Because it has been "broken" for a while now. It worked as expected, in the "X Series" of Mastercam. It looks like "Replace" (Sostituisci), is not working as intended.
  3. Colin Gilchrist

    Right angle head spindle direction

    That double RAH is hurting my brain Ron! You really earned your nickname with that one! I love it. Oh, and the RAH mounting in a mixed-mode Nutating Machine is no small feat either... It's just an offset, of an offset, of an offset, right?
  4. Colin Gilchrist

    What did I do?!?

    This might not have any bearing on your particular issue, but could you have inadvertently enabled "Section View" in the View Manager? (I have seen some weird things when a section view is applied...)
  5. Colin Gilchrist

    Macro Variable Value Increment is not getting

    Also, be careful to recognize changes to Variable Modality. The 'prv_' variable value only gets updated when a value is output to the NC File. If you are only using a variable "internally" in your Post calculations, then the 'prv_' value will never be updated, because the 'current value' of the variable is never written to the NC File, so the 'replace prv_ value with current' action never takes place. If the variable is only used by you 'internally', then you can use the "Update Variable Modifier" (!) by putting the Exclamation Mark in front of the variable name. You must be careful to do this "at the end of the intended action", since you only want that 'update action' to take place "once", before you loop around to test the condition again. This is why you will typically see the "variable updates" at the end of a major post block, like 'posf$', 'ptlchg$', and 'ptlchg0$'. This is from 'MPFAN.PST', notice the "Variable Updates" at the end of the Post Block: ptlchg$ #Tool change pcuttype toolchng = one if mi1$ = one, #Work coordinate system [ pfbld, n$, *sg28ref, "X0.", "Y0.", e$ pfbld, n$, sg92, *xh$, *yh$, *zh$, e$ ] inhibit_probe$ if prog_stop = 1, pbld, n$, *sm01, e$ if prog_stop = 2, pbld, n$, *sm00, e$ pcom_moveb pcheckaxis c_mmlt$ #Multiple tool subprogram call ptoolcomment comment$ pcan result = newfs(15, feed) #Reset the output format for 'feed' pbld, n$, *t$, sm06, e$ pindex sav_absinc = absinc$ if mi1$ > one, absinc$ = zero if use_rot_lock & (cuttype <> zero | (index = zero & prv_cabs <> fmtrnd(cabs))), prot_unlock if convert_rpd$, pconvert_rpd pcan1, pbld, n$, [if gcode$, *sgfeed], *sgcode, *sgabsinc, pwcs, pfxout, pfyout, pfcout, [if nextdc$ <> 7, *speed, *spindle], pgear, [if gcode$, *feed], strcantext, e$ if use_rot_lock & cuttype = zero, prot_lock pbld, n$, sg43, *tlngno$, pfzout, pscool, pstagetool, e$ absinc$ = sav_absinc pbld, n$, sgabsinc, e$ pcom_movea toolchng = zero c_msng$ #Single tool subprogram call !xnci$, !ynci$, !znci$
  6. Colin Gilchrist

    Plane Association MC 2020

    Yes, the 'two lines' method has been around since V9 (ish), and the Associativity has been there for that long. The old command was Create Planes by Geometry. (Choose 3 Points, 2 Lines, or 1 Arc) I will typically create a two-line pair, for every single Plane I need to create. I stick the Plane Geometry Pair on a unique level; one-for-each-plane. This gives you total control over the Plane orientation. I say this because we now have the "Reverse Endpoints" button on the Analyze Entity Properties. So you can swap the Start/End points on the lines, and then adjust the 3D Length, (or Swap X-X, Y-Y, or Z-Z Pairs). This allows you to "reorient the X-Axis" for example, if you have a Plane that needs to get "flipped around".
  7. Are you using all of the 'Alternate Output Streams'? You could potentially re-configure any one of your String Buffers, to 'write to one of the Alternate File Streams', in-lieu of using a Standard Buffer File. You have the following available: NC SUB AUX EXT LCC For example - Most "Mill Base Posts" won't have a need to use the Lathe Canned Cycle Stream, so 'lcc' makes a lot of sense if you are already utilizing the SUB, AUX, and EXT file streams...
  8. Colin Gilchrist

    Reading angle of a plane

    The biggest hurdle is Mastercam's lack of Kinematic awareness. The software doesn't tie the planes to any rotary angles. It is simply all Matrix and Vector math, which is performed inside the Post Processor. It would be wonderful to have a way to tie the kinematics of the Machine Definition, to some utility which could read the plane data (matrix), and compare it back to the WCS matrix, to derive the plane angles. The big issue is that currently there is nothing that guarantees your MD is tied to the Post Processor logic. Some builders (like Dave at Postability), tie their Posts to the MD settings. Plus, you have to also consider Rotary Axis Limits, and also Miscellaneous Integer Values, which allows you to pick a certain angle/pair solution. I must say this is something that is directly controlled in TopSolid, and is amazing to see. Every Toolpath has two pairs of angle solutions, only if both are valid. If one is outside the travel limits, it won't even be presented.
  9. Colin Gilchrist

    Operation comment question

    You will need to move the location of the 'comment$' Command Variable. Typically, the 'comment$' command is setup to "dump all the buffered comment strings", at whatever location you see that Command Variable. 'comment$' needs to be on a line, all by itself. (It must also have at least 1 space character in front of it. Typical "indent" spacing is 6 space characters.) So, in your existing Post, locate the line of code that has 'comment$' on it, and place a Pound Sign (or Hash Mark, depending on your word choice). [ # ] This will 'comment out' the line of code. Now, simply insert a new blank line, after the line where your "M01" is coming out, and then enter ' comment$'. Your Operation Comment will be output after the "M01" line.
  10. Colin Gilchrist

    Glad I'm Paid By The Hour

    "Stock Tolerance" is a double-edged sword with Stock Models. The reason is that if you 'open up the tolerance' for creating the initial stock model shape, then you end up with a model which geometrically 'not geometrically accurate'. Ideally, what we want is to be able to control the "tessellation tolerance". Tessellation is the process of taking the 3D model, and "meshing it", or creating a "skin of the part, made up as a collection of triangles" with a "normal direction" on each triangle, to indicate the "outside vs. inside" of the STL model. The issue is that when you change the Stock Tolerance, the "outside shape" can change size, relative to the model that you are choosing. (Solid or surface model) I have found that the "STL Export" function (independent of the Stock Model), can actually output a "geometrically accurate STL", while the STL Tolerance essentially just changes the "size of the triangles" that are created. However, when you export the STL, the vertex points of all of those triangles will "physically lie on the model surfaces/edges". This isn't necessarily true with the Stock Model creation function (for initial stock only). Basically, if you take the step of independently exporting your model (surface or solid) as an STL File, and then "Importing the STL as a Mesh Entity", you are able to control the tessellation tolerance for the triangle size, while having the skin of the model still be 100% physically coincident with the model that was used to create the mesh. As an example, to show you what I'm talking about, try the following procedure: Take any "moderately complex" model, and perform 4 different STL Exports: one at 0.040", one at 0.010", one at 0.004", and one at 0.001". Export the STL File Names (add the tolerance to the file name to keep the files separate), and make sure you use the "options" button to change the export tolerance. Use File > Merge to Import the STL models. Use a new Level for each Import. Import each model 2 different times. One as a STL Mesh, and one as 'Lines'. This will give you 8 different levels. 4 with mesh entities, and 4 with "lines". By importing the STL as 'lines', you can physically measure distances, and also create arcs (3 points method). Now you can examine the results and see how the models will change the accuracy of how the curves and holes are represented, but the linear surfaces and flat faces (edges), are still matching between all 4 different export tolerance values. You'll see that the models will still measure "accurately" for linear distances (flats and surfaces will be coincident with the original model that you used to create the mesh.) By Exporting/Importing manually, you will remove the 'Stock Model Mesher' from the equation, and will have full control over the accuracy and tessellation tolerances used to create the initial stock shape. I will create an 'initial stock shape' that uses as few triangles as possible, while still giving me the accurate rendering of curved surfaces (and holes!).
  11. Colin Gilchrist

    Glad I'm Paid By The Hour

    Have you set "Mastercam.exe" Processor Priority in the Windows Task Manager? (Setting to 'High' can boost performance.) Same question for the "View > Managers > Multi-Threading > Multi-Threading Manager"? Inside that dialog box, you can set the "maximum number of threads" (Set '1 per physical core on your machine'), and also set the 'Default priority' for each Thread. (Set it to 'High'!!!)
  12. Colin Gilchrist

    Multi line comments from Machine Group Comment

    You will notice, that by having the 'comment$' command variable inside 'pheader$', that the Operation Comment for your 2nd Operation (following Manual Entry), will get 'dumped' with that Manual Entry info. This is due to the way comments are "internally buffered". When 'comment$' is read, all the strings stored in the comment buffer are fed line-by-line, through 'pcomment$'. (Technically, we then process them in the user-defined Post Block 'pcomment2'.) I have covered the process of adding a flag variable to track "header processing". While you are inside the Header, you detect and save any 1008 comments, for later output. (Inside 'psof$'.) Then, in 'psof$', you set the flag variable so that 1008 comments process like normal.
  13. Colin Gilchrist

    Multi line comments from Machine Group Comment

    You could use a special ASCII character as the "break point", and use the "break string" function to break the lines at the character. Look at the string manipulation functions in the MP Post Guide.
  14. Colin Gilchrist

    Post Text Editing Via. CD Manager Not work .

    You cannot have the Post File open in your Text Editor, when you edit the Post Text through the CD Manager. You likely just had the file open, so the CD couldn't save the edits you made.
  15. Colin Gilchrist

    air quality

    The terms you are looking for are Air Handler or Air Handling Unit (AHU). You are looking for one with a Heat Exchanger, which uses the 'outgoing' air to heat the 'incoming' air. Most units will be in the 70-90% efficiency range. There are numerous designs. You need to consider both humidification and dehumidification of the incoming air. A good unit will have provisions for both, but the whole system design will depend on your location's climate. Look at: Carrier Johnson / York Lennox Rheem Trane A good HVAC system should be designed to handle the high and low temperature swings of the winter and summer, and be designed to exchange the entire volume of building air completely at least 4 times per hour. I think an air change rate of 6 times per hour is better for everyone's health. That means you have to move a volume of air equal to the building's volume, every 10 minutes. So take whatever CFM rating the AHU has, and add a zero. (For example, a AHU that is rated at 2,000 CFM, would flow 20,000 CFM in 10 minutes. If your building was 100,000 Cu/Ft., you would need 5 AHU's, or a larger unit that could handle 10,000 CFM.) You should also consider noise attenuation. Both vibration isolation on the mounting points and sound attenuation from the blower fan to the rest of the ductwork should be considered.

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