stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

APT-Gcode

  • 24 Devlogs
  • 124 Total hours

Totally simple project

Translates APT files from CATIA into G-code for CNC machines<

Open comments for this post

9h 26m 9s logged

DEVLOG 24

NEW STUFF

  • the parseline v3 is going relatively fast tomorrow it is probablly going to be finished
  • currently the only left syntacs from v2 is to complete cycles, rawG, PSIS, INDIRV, MAXSPNDL, $$, CUTCOM, change tool
  • rework on the SPINDLE syntacs is needed bc i compicated some stuff there
  • and to make a value check by giving a +variable,
    then if it wasn’t a number it is going to be a NaN which is a false meaning i can make if (+variable)

LEFTOVER STUFF (Not in the parseline v3)

  • to do a guide on how to make your own output
  • general overview on the program
0
0
9
Open comments for this post

6h 59m 31s logged

DEVLOG 23

NEW STUFF

  • so the parselinev2 build is working (not on the web but in the git)
  • the parselinev3 build is on the way, why? Because I realized how much the v2 build is leaking the performance and optimisation, so it would be simpler to re-do and make it with more brain this time

HOW WILL IT WORK

  • simple, for each command in Catia, there will be a case (switch case stuff)
  • then each switch case will call a function that will do all the work for that case
  • that function will call other function do math etc.
  • the user will simply select a document from which the function will get called therefore giving a different syntacs
  • and thats pretty much it
0
0
12
Open comments for this post

10h 12m 46s logged

DEVLOG 22

New stuff

  • re edited the KK guide so it is written in .md and I SWEAR it looks so much better and it is easier to read
  • rawG new command this one is to be written in the APT or added as an additional command and it bypasses both layers of translation
  • rawKK new command this one is to be written in the APT and it bypasses the first layer of translation (line written in KK)

Bug fixes

  • I saw a few bugs in the rapto section of the goto and godlta pretty much all, still haven’t had time to test this changes but it seems to be working ok

Leftover stuff

  • make a guide on how to use Catia and CATIA.pptable
  • make an explanation of this program how it works and other
  • and i have written about 3 pages of stuff in catia that i have no idea what that meas and what does it do so research those
  • improve with like code block suggestions for manual code writing

BUGS

  • for some reason now the costum panel wint show
0
0
41
Open comments for this post

10h 12m 7s logged

DEVLOG 21

New stuff

Catia PPTable

  • so it turns out I can modify the APT output for some commands, which had not only helped in the post processor more accurate but now I understand more stuff
  • so I made the PPtable and it seems to work more on that some other time

Logic

  • since I now know what is to be expected for some commands I was able to shave off roughly 200 lines of code which is great

  • COMPENSATION defines what tool correction register is being redefined, what quadrant is the cutting end, xyz corrections, and nose radius

  • END OF PROGRAM is now single meaning

  • CIRCLE output looks like this
    kk("ARCH/CENTER, "+centar_x+", "+centar_y+", "+centar_z);
    kk("ARCH/AXIS");
    kk("ARCH/TANGENT, "+this.ls_i+", "+this.ls_j+", "+this.ls_k);
    kk("ARCH/INFO, "+radius+", "+movement+", "+angle);
    kk("ARCH/END, "+kraj_x+", "+kraj_y+", "+kraj_z);

  • CYLINDR or sinusoidal movement like this
    kk("SINUS/CENTER, "+centar_x+", "+centar_y+", "+centar_z);
    kk("SINUS/AXIS");
    kk("SINUS/INFO, "+amplitude);
    kk("SINUS/TANGENT, "+this.ls_i+", "+this.ls_j+", "+this.ls_k);
    kk("SINUS/END,"+kraj_x+", "+kraj_y+", "+kraj_z);

  • helix (in APT)
    HELICAL/CENTER, %MFG_HELICAL_X_CENTER, %MFG_HELICAL_Y_CENTER, %MFG_HELICAL_Z_CENTER
    HELICAL/TANGENT, %MFG_HELICAL_INDIRV_I, %MFG_HELICAL_INDIRV_J, %MFG_HELICAL_INDIRV_K
    HELICAL/AXIS, %MFG_HELICAL_I_AXIS, %MFG_HELICAL_J_AXIS, %MFG_HELICAL_K_AXIS
    HELICAL/INFO, %MFG_HELICAL_PITCH, %MFG_HELICAL_RADIUS, %MFG_HELICAL_HEIGHT, %MFG_HELICAL_ROUND
    HELICAL/END, %MFG_HELICAL_X_END, %MFG_HELICAL_Y_END, %MFG_HELICAL_Z_END

  • SPINDL is now simply defined

  • FEDRAT is now simply defined

  • COOLANT on the other hand, apparently the coolant is set while defining the tool, which i have accounted on and then just coolant on off, but it seems a bit like it doesn’t make sense that way what if different coolant is wanted??, also the actual syntacs is quite unknown for the coolant sooo yeah

  • DELAY is now simply defined

  • CYCLE now got major upgrades by manipulating the APT lost like a 75 lines of code there

  • spindle rotation limit is now settable

  • CUTCOM pensation is now uncovered but I genuenly have no idea what the stuff means NORMDS or NORMPS, maybe normal to drive / prat surface God knows the answer that I am sure

BUGS

Yes - I haven’t had a chance to test it yet so I dunno

  • I got the background loading path wrong so that is corrected

STUFF LEFT TO DO

  1. Make a function for the line split into 3, 4, 5, 6
  2. Rework G-coder to output accordingly to the reworked parser
  3. Play with the PPTable
  4. The rest of the TO-DO list

SUM-UP

Found out that I can modify the APT output via PPTable, made a PPTable, now I know much more about The APT, made the parser more precise and thus more correct

0
0
22
Open comments for this post

3h 31m 45s logged

V1.0 is now

DEVLOG 20

New stuff

Logic

  • now both APT reader and G-code output are in switch case this makes processing much faster, and takes less memory
  • line splitting is now done before actually going into the switch case for both reader and writer, mainly because then element zero in this case is basically line.startsWith, and then later in code I shaved of like 14 line splits
  • invalid cycles are now rejected and aren’t even translated into KK

Bug fixes

  • since I switched from line.startsWith I need only the word in the variable, and there is like a $$*CATIA0 in every file and I hadn’t put line split with * so it registered as and error
  • I have had left the incomplete cycles to be completely written causing an undefined variable to be written in KK and forwarded into G-code

What if’s?

What if I was supposed to like make CYLINDR output 300 points in G-code I honestly don’t wanna do that?

0
0
11
Open comments for this post

2h 29m 28s logged

DEVLOG 19

New stuff

Logic

  • helical interpolation in g-coder
  • g-coder now remembers the last coordinate, because CATIA gives, the center, radius, direction, 2D vector for direction of movement, end point and pitch, but WinNC that reads the g-code takes end point center and number of full turns and cw or ccw, so number of turns is calculated speciffically inside the class

Bug fixes

  • yes

What if’s???

No

0
0
17
Open comments for this post

4h 5m 57s logged

DEVLOG 18

New stuff

Input

  • now the default value for APT input is CatiaV5 but only for development and it is not written that it is it just is
  • default value for for G-code output is WinNC Sinumerik

Logic

  • added logic for CYLINDR which is essentially just a sinusoidal path, not just one period pr it but can be multiple or just a part of one
  • logic for PSIS which is supposed to be like a sign that the CYLINDR is to be defined and that it starts at this coordinates and then some random vector that defines that the movement will be projected in a PLANE that does not contain that vector
  • logic for ROTABL is incomplete but here I would need to look into it but it seems like it is used in MULTI axial machines, but only when it does 3 axis work idk it is a bit emptly defined
  • TLON,GOFWD is now the new definition for circular movement, so it takes the line in the correct logic for both CIRCLE and CYLINDR
  • I undiscovered what CUTTER with 7 tool data defines but for now it just outputs it as 7 comments

Bug fixes

  • for SWITCH or setting tool compensation had .trim instead of .trim() same thing happened on the g coder side
  • for some reason maybe a bad commit, the text enter pop-up window didn’t pop-up, resolved

What if’s???

What if the sinusoidal movement isn’t horizontal yet at an angle what would happen then?

  • The angle isn’t specified, but I do have the circle center and the first point that is on that circle
    Note that the path is on the surface of the cylinder this is a sinusoide

What if the sinusoide isn’t set in 2D?

  • since 3D circular intepolation is off it should be just a set of close points

What if there was no AI that could by pass the main page and end up to a sub-page that isn’t locked to me, unlike the main page?

-Would I be ******?

1
0
15
Open comments for this post

8h 13m 46s logged

NEW VERSION INCOMING

  • once I get to it v0.9 is going to be official and running on my website

DEVLOG 17

New stuff

Visual

  • re-organised quick settings
  • fine tuned the spacing’s inside and between blocks

Input

  • now you can manually write code to test how output would look like
  • mostly for me for developing so I can have some APT code loaded in keyboard cache for Ctrl + v
  • comes with a pop-up text box for a nicer visual

Solved bugs

  • Rapid logic is renewed by hand I literally have a page in a notebook filled with possible logic combinations and solutions for it
    (in APT, RAPID is only for the next line, in G code however it is on until set to work in cutting motion )
  • some other issues where it would save CYCLE the wrong way, it would have saved 2 number with out spacing
  • I have forgotten that x y z in cycle aren’t always saved as just numbers but rather 2 of em had X Y or Z before written so it would have double letters
0
0
10
Open comments for this post

10h 28m 53s logged

DEVLOG 16

New stuff

For Catia

  • TLAXIS now defines which way does the tool need to go to complete the cutting motion
  • MULTAX defines this is a multi axial process
  • SWITCH defines a change in tool compensation *see under DOCUMENTATIONS - Images - Image.png
  • Complete cycle support some cycles are excluded from support due to a possible bug causing to have incomplete information about the cycle
  • GOTO/GODLTA between CYCLE start and the CYCLE/OFF log the coords in a variable
  • CYCLE/ON activates the function to start collecting coords
  • CYCLE/OFF puts out all of collected data for that cycle

WinNC Sinum

counting that you can set it in ISO-Mode

  • Complete canned cycles for the cycles that are matching with Catias idea how the cycle should look like
  • MULTAX support
  • TLAXIS support
  • Added a fall-back for CYCLES that are not matching, except this one can use any format of the given CYCLE

Errors

  • I did AI’s job, which is making sloppy code, and instead of sectioning Catias TLAXIS I replaced the commas, and replaced / with : causing mayhem, i got empty strings a string that contains double data
  • I tought I could use Autodesk,s logic for parsing, They might be onto something but I have no idea what is going on there soo
  • I made ChatGPT quit (I just wanted him to help me with finding out why was I getting bugged lines fed to my g-coder (it was magically fixed I still have no idea what had been happening))
0
0
17
Open comments for this post

8h 31m 47s logged

DEVLOG 15

New stuff

Nothing much just did some documentation on Catias apt output
Added a few guides on how to set up the APT correctly very likely prone to changes

SWITCH

As it turns out SWITCH means a change on tools compensation look at image.png in DOCUMENTATIONS
Completed output for the g-code on that switch but I think that it might cause problems bc in WinNC sinumerik it look like it doesn’t do that sooo yeah

Fun fact, *picture, this is what you get when you set a random curve as a tool path
Found out that https://archive.org/details/numericalcontrpol0000stan is tottaly right about every single bit of stuff that I tought wasn’t in Catia so yeah

0
0
18
Open comments for this post

5h 11m logged

I added a background

So i have been tinkering with ChatGPT on what to do to up the looks on my project, and I had some ideas for the background but my CSS and JS skill are beyond wanted so he helped to find https://neat.firecms.co/
And it is a MUST have for any project, it just looks SOOO good.
But with every edit there are bugs, so erm yeah.

CYCLE SYNTACS

It is going to be a long one since CATIA V5R21 likes to vary and I feel like an archeologist uncovering this secrets

0
0
3
Open comments for this post

4h 6m 23s logged

Another 4 hours down the drain

Pretty much just destroying my brains out why it didn’t want to make an output file, then why it didn’t write anything down<

0
0
11
Open comments for this post

7h 40m 32s logged

I REVERSE ENGINEERED CAM APT CODE

So basically what I needed to do was to like just make up my own kind of universal data tranfer standard via JSON so I can translate from different APT into different G-code, and so I made up KK (Karlov Kod). To make it a first ship just need to write another 400 lines but Hey!, this part at least has some documentation. (Unlike CATIA APT1.0)

0
0
4
Open comments for this post

6h 35m 11s logged

Made it to display ts, just left to translate like 600 pyhton lines into JavaScript. YAAY cant wait for allat.(lowkey hidden menus wont show up but its ok)

0
0
4
Ship #1

CAM post processor, so far its only suitable for CatiaV5 intoISO 6983, it’s still in development, there are a few non finished commands, but since there is no actual documentation for CATIA APT1.0 it works really good. erm yeah. at some point im going to make work on the web the rest is pretty much written on Git.

  • 5 devlogs
  • 4h
  • 5.86x multiplier
  • 25 Stardust
Try project → See source code →
Open comments for this post

19m 34s logged

Yess, finnaly got the wakatime running, exept i have spent like 40hours of my life on this beafore i installed waka. And it says that i used more ai than actual code, not true (bc of those 40h).

0
0
26

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…