Advanced Search

Search Results (Searched for: )

  • tommylight
  • tommylight's Avatar
22 Jun 2024 13:24

What do you really get for a $350 desk top engraver ?

Category: Show Your Stuff

I tend to do oversized everything, my Plasma machines can do 55 to 68 meters per minute but limited to 18-24M/M, 16 and 20mm round supported rails on the gantry and 30mm round supported rails on Y, etc.
The only things i still can not find here in the sizes i would like are cables and belts.
  • tommylight
  • tommylight's Avatar
22 Jun 2024 13:20
Replied by tommylight on topic AC spindle servo on a Chinese BOB set up

AC spindle servo on a Chinese BOB set up

Category: Driver Boards

Just do check what control types it can handle, usually new ones can do step/dir or pulse/dir, PWM, analog 0-10V or 0-5V settable on the drive/VFD, or +-10V for servo drives.
  • ThyerHazard
  • ThyerHazard's Avatar
22 Jun 2024 13:11
Replied by ThyerHazard on topic AC spindle servo on a Chinese BOB set up

AC spindle servo on a Chinese BOB set up

Category: Driver Boards

The bob I has does have 0-10v so I might give it a go. I do intend to upgrade to a masa eventually so maybe it can just work at half capacity until then.

I was looking at the brushless (sewing machine motors) people are putting on mini mills and lathes and for an extra $140 I can get an AC servo with the driver seems like a no brainer.
  • Grotius
  • Grotius's Avatar
22 Jun 2024 12:24
Replied by Grotius on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

Will have a look at that next week in the original trajectory planner.

Yesterday i did some work at the gui interface.

Today i made a MILLTASK component for halcore that i named "state_machine.so"
This component will do the program logic like start, stop, pause etc.  and also handles the jogging & trajectory stuff.

The state_machine.so component is using shared memory to load the gcode data from userspace.
All is done in  c++ code.
So for uploading gcode to the hal side, no hal pins are required. It just's sends the data_structure containing the gcode
information to the kernel module. It's using a mutex.

This is showing the cnc app, after loading the gcode drawing, it sends the gcode_data to hal side.
Then in the component itself it prints the ammount of gcode lines as a test : testing if component has gcode lines recieved.

Ok now this framework works and is quite compact.

At the left it prints the ammount of recieved gcode lines. This print is done by the hal component : state_machine.so
 
 
  • pippin88
  • pippin88
22 Jun 2024 12:23
Replied by pippin88 on topic Setup Sheet as Embedded Tab

Setup Sheet as Embedded Tab

Category: Gmoccapy

When was that? (On which gmoccapy version switch you gave up?)
Maybe I can help you if you have the old code and can post it here.

[/quote]

June 2016 looks like

My gmoccapy.py changes:
    def _update_active_gcodes( self ):
        # active G codes
        active_codes = []
        temp = []
        for code in sorted( self.stat.gcodes[1:] ):
            if code == -1:
                continue
            if code % 10 == 0:
                temp.append( "%d" % ( code / 10 ) )
            else:
                temp.append( "%d.%d" % ( code / 10, code % 10 ) )
        for num, code in enumerate( temp ):
            if num == 8:
                active_codes.append( "\n" )
            active_codes.append( "G" + code )
        self.active_gcodes = active_codes
        self.gcodes = self.stat.gcodes
        self.widgets.active_gcodes_label.set_label( " ".join( self.active_gcodes ) )

    # replace active G codes with explanation, e.g. G8 changes to G8 = Radius Mode
    def _expand_active_gcodes(self):
	# define our method
	def replace_all(text, dic):
	    for i, j in dic.iteritems():
	        text = text.replace(i, j)
	    return text
	
	active_codes = []
        temp = []
        for code in sorted(self.stat.gcodes[1:]):
            if code == -1:
                continue
            if code % 10 == 0:
                temp.append("%d" % (code / 10))
            else:
                temp.append("%d.%d" % (code / 10, code % 10))
        for num, code in enumerate(temp):
            active_codes.append("G" + code + " ")
        self.active_gcodes = active_codes
        self.gcodes = self.stat.gcodes

	#change the list into a string so we can replace
	active_codes = " ".join(self.active_gcodes)	 

	# our text the replacement will take place
	gcode_exp = active_codes

	# our dictionary with our key:values.
	reps = {'G1 ':'\nG1 = Coordinated motion ("Straight feed")',
		'G4 ':'\nG4 = Dwell (no motion for P seconds)',
		'G7 ':'\nG7 = Diameter Mode',
		'G8 ':'\nG8 = Radius Mode',
		'G17 ':'\nG17 = Select XY plane',
		'G18 ':'\nG18 = Select XZ plane',
	 	'G19 ':'\nG19 = Select YZ plane',
	    	'G20 ':'\nG20 = Inches',
	    	'G21 ':'\nG21 = Millimeters',
	    	'G33 ':'\nG33 = Spindle-synchronized motion',
	    	'G33.1 ':'\nG33.1 = Rigid tapping',
	    	'G40 ':'\nG40 = Cancel cutter radius compensation',
	    	'G49 ':'\nG49 = Cancel tool length offset',
	    	'G53 ':'\nG53 = Motion in machine coordinate system',
	    	'G54 ':'\nG54 = select coordinate system 1',
		'G55 ':'\nG55 = select coordinate system 2',
    		'G56 ':'\nG56 = select coordinate system 3',
    		'G57 ':'\nG57 = select coordinate system 4',
    		'G58 ':'\nG58 = select coordinate system 5',
    		'G59 ':'\nG59 = select coordinate system 6',
    		'G59.1 ':'\nG59.1 = select coordinate system 7',
    		'G59.2 ':'\nG59.2 = select coordinate system 8',
    		'G59.3 ':'\nG59.3 = select coordinate system 9',
    		'G61 ':'\nG61 = Exact Path mode',
		'G61.1 ':'\nG61.1 = Exact Stop mode',
    		'G64 ':'\nG64 = Continuous mode with optional path tolerance',
    		'G80 ':'\nG80 = Cancel motion mode',
	    	'G90 ':'\nG90 = Absolute distance mode',
	    	'G91 ':'\nG91 = Incremental distance mode',
	    	'G90.1 ':'\nG90.1 = Arc centers I,J,K are absolute',
	    	'G91.1 ':'\nG91.1 = Arc centers I,J,K are relative to the arc\'s starting point',
	    	'G94 ':'\nG94 = Units per minute feed rate',
	    	'G95 ':'\nG95 = Units per revolution',
		'G96 ':'\nG96 = CSS mode (Constant Surface Speed)',
		'G97 ':'\nG97 = RPM mode',
	    	'G98 ':'\nG98 = Retract to prior position',
		'G99 ':'\nG99 = Retract to R position'
	       }

	# bind the returned text of the method
	# to a variable and print it
	txt = replace_all(gcode_exp, reps)
	self.widgets.active_gcodes_exp.set_label("".join(txt))
	 

    # replace active M codes with explanation, e.g. M1 changes to M1 = Optional Pause
    def _expand_active_mcodes(self):
	# define our method
	def replace_all(text, dic):
	    for i, j in dic.iteritems():
	        text = text.replace(i, j)
	    return text
	
	# M codes
        active_codes = []
        temp = []
        for code in sorted(self.stat.mcodes[1:]):
            if code == -1:
                continue
            temp.append("%d" % code)
        for code in (temp):
            active_codes.append("M" + code + " ")
        self.active_mcodes = active_codes
        self.mcodes = self.stat.mcodes

	#change the list into a string so we can replace
	active_codes = " ".join(self.active_mcodes)	 

	# our text the replacement will take place
	mcode_exp = active_codes

	# our dictionary with our key:values.
	reps = {'M0 ':'\nM0 = Program Pause',
		'M1 ':'\nM1 = Optional Pause',
		'M2 ':'\nM2 = End Program',
		'M3 ':'\nM3 = Turn spindle clockwise',
		'M4 ':'\nM4 = Turn spindle counterclockwise',
		'M5 ':'\nM5 = Stop spindle',
		'M7 ':'\nM7 = Turn mist on',
		'M8 ':'\nM8 = Turn flood on',
		'M9 ':'\nM9 = Turn all coolant off',
		'M19 ':'\nM19 = Orient spindle',
		'M30 ':'\nM30 = End Program',
		'M48 ':'\nM48 = Enable spindle and feed rate override controls',
		'M49 ':'\nM49 = Disbale spindle and feed rate override controls',
		'M50 ':'\nM50 = Feed Override Control (P0 = off, P1 = on)',
		'M51 ':'\nM51 = Spindle Speed Override Control (P0 = off, P1 = on)',
		'M52 ':'\nM52 = Adaptive Feed Control (P0 = off, P1 = on)',
		'M53 ':'\nM53 = Feed Stop Control (P0 = off, P1 = on)',
		'M60 ':'\nM60 = Pallet Change Pause'
		}

	# bind the returned text of the method
	# to a variable and print it
	txt = replace_all(mcode_exp, reps)
	self.widgets.active_mcodes_exp.set_label("".join(txt)) 


    def _update_active_mcodes( self ):
        # M codes
        active_codes = []
        temp = []
        for code in sorted( self.stat.mcodes[1:] ):
            if code == -1:
                continue
            temp.append( "%d" % code )
        for code in ( temp ):
            active_codes.append( "M" + code )
        self.active_mcodes = active_codes
        self.mcodes = self.stat.mcodes
        self.widgets.active_mcodes_label.set_label( " ".join( self.active_mcodes ) )

I have no memory of how I got to this solution - may have been help from someone here (I know zero python).
  • tommylight
  • tommylight's Avatar
22 Jun 2024 12:11
Replied by tommylight on topic AC spindle servo on a Chinese BOB set up

AC spindle servo on a Chinese BOB set up

Category: Driver Boards

Might end up disappointed, even if it works, due to limited step rates the parallel port can output.
Some drives do have settings for steps per turn and that might help a bit, no idea how much.
Using PWM should work just fine, if the drive can do PWM, most new ones can, and so can some very cheap china ones.
+-10V can be made to work in one direction as some bobs do have 0-10V output.
ETC, etc.
  • Aciera
  • Aciera's Avatar
22 Jun 2024 11:46 - 22 Jun 2024 11:47
Replied by Aciera on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

Yes the current trajectory planner in LinuxCNC only does multiline look ahead for Gcode using XYZ words as soon as the interpreter encounters more then those (eg an A word for a rotary axis) it falls back to one line look ahead.
So basically it's missing the ability to blend more then XYZ axes.

[edit]
also applies to 3D printers as a fourth axis is needed for the extruder.
  • Grotius
  • Grotius's Avatar
22 Jun 2024 11:39
Replied by Grotius on topic Trajectory Planner using Ruckig Lib

Trajectory Planner using Ruckig Lib

Category: General LinuxCNC Questions

Hi Becksvill,

I know someone else who hass the same problem with a huge 3d printer in Italy. He was asking me the same thing.

So in the current tp from Rob Ellenberg we have to change logic to enable this 4 axis look ahead?
 
  • machinedude
  • machinedude's Avatar
22 Jun 2024 09:45

What do you really get for a $350 desk top engraver ?

Category: Show Your Stuff

one thing i did notice with this machine is that surface finish drops on the more complex cutting moves on say a angle cut or circular cut. i have been trying to pinpoint the cause of this but i am still looking, it's not horrible but it could be better. my first thought was machine resolution or belt tension, i tried a finer resolution which might have helped a tiny bit and did some tweaking on the X axis to get the belt tighter to try that today to see if that is the problem?
at first i thought it might have been a rigidity related issue but after playing around with finished passes quite a bit i ruled that out after noticing the straight cuts were really good. i would think a tandem axis is going to be more rigid with 2 bels and motors opposed to the X axis with a single belt and motor. i think tests have proved this for me. i can actually get a .06 stepover around ,5 deep with the side of the cutter on the Y axis but get into problems if i get that aggressive with a cut on the X axis.

one other observation is the closed loop steppers being a huge benefit to having something work well in the end. i would also say over sized motors are good way to go too. food for thought Tommy if you build one :)  
  • Wischi
  • Wischi
22 Jun 2024 09:34
Replied by Wischi on topic Setup Sheet as Embedded Tab

Setup Sheet as Embedded Tab

Category: Gmoccapy

@HansU

Yes.

Or maybe also pdf to be more compatible with other CAM software? Fusion 360 outputs html

The qtpyvcp Version looks for a .html file with the same Name as the loaded .ngc file
  • timaer
  • timaer
22 Jun 2024 09:21 - 22 Jun 2024 09:27

How to config a lathe-mill machine with Linuxcnc ?

Category: General LinuxCNC Questions

Hi,everyone ,we are developing a new machine with Linuxcnc,but met some problem now . the biggest problem now is that our machine can both lathe and mill .I'm a newbee to Linuxcnc .I only know how to config a traditional lathe or a traditinal mill machine now with ini and hal file,but I dont know how to config a machine mixed them together .Suppose my workmates used Fusion360 export a complete G-code program to me .and the G-code at least include, S command for spindle while lathe,and X,Z command for axis movement ,then there will also a C command for rotate while milling . So,if our machine has 3 servo motors(using Etherecat to connect and control the servo motor), first and second one for X,Z axis move,and the third one will be as both spindle and rotate axis C .I dont know how to config the ini and hal .Does anyone here be kind enough to share the ini and hal configuration using linuxcnc to achive such requirment ? I'll be very grateful for that ,thanks.
  • alex_sar
  • alex_sar
22 Jun 2024 09:03
  • HansU
  • HansU's Avatar
22 Jun 2024 09:00
Replied by HansU on topic Setup Sheet as Embedded Tab

Setup Sheet as Embedded Tab

Category: Gmoccapy

@Wischi so basically a tab that shows a HTML page? Should be a big thing. The question is only where to define the path.

A setup sheet display is a great idea.
But I couldn't keep up with gmocappy updates (gcode naming changed the gmocappy main page, was not just a tab) so gave up on my mods.


When was that? (On which gmoccapy version switch you gave up?)
Maybe I can help you if you have the old code and can post it here.
  • Wischi
  • Wischi
22 Jun 2024 08:40
Replied by Wischi on topic Setup Sheet as Embedded Tab

Setup Sheet as Embedded Tab

Category: Gmoccapy

This would also be nice. Reminds me of the Siemens 840 where there is a 'i" icon in the corner and when you click on it you get a whole gcode manual with descriptions.

Also showing a list of installed ocode macros could be useful.
Displaying 24046 - 24060 out of 26461 results.
Time to create page: 1.503 seconds
Powered by Kunena Forum