Hello Guest it is April 26, 2024, 01:55:44 PM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - stirling

1191
Just because you don't want to use it does not mean it is Yuk!.

I was really happy with the operation of the combination E1P0 / E1P1 until a Mach revision screwed it all up.  :'(

LOL - just when I thought it was safe to get back in the water...

Oyoyoy! - I wasn't saying Yuk! to the REQUIREMENT - I was saying Yuk! to the method of IMPLEMENTATION. The very fact that the IMPLEMENTATION was so easilly broken in subsequent releases kind of makes my point I think. That is exactly the point that Ray and I have been banging on at each other about until we realized we weren't a gazillion miles apart after all.

Cheers

Ian

EDIT: To be fair, this requirement is probably a bit of a doozy to implement and possibly the E code idea is not as bad as some IMPLEMENTATION methods we've discussed. The requirement as we know is to somehow switch on the laser DURING movement. It has to be able to come on/off during any CV blending that's going on without affecting it AFAIK. Clearly a CB macro via M code is inapropriate in it's current implementation. I THINK the way it's been done is that Mach is fooled into thinking it's a (albeit zero length) motion code and CV therefore includes it in the "blender". Please don't kill me if I'm wrong  ;D

1192
Ray - good luck with your endeavours - I'm sure we'll all benefit from them.

Cheers

Ian

1193
Ray - I'm getting a little lost here. I've never critisized in any way your quest to improve Mach. The only time I thought we were really diverging was when you appeared to imply you would like to get rid of "concurrency". If that's not what you meant then we're "on the same page".

I stand by the quote in your last post. PLEASE PLEASE PLEASE read it again - I'm NOT critisizing YOUR macros. I'm simply saying that if something in YOUR macros is EXPOSING a LOOPHOLE in Mach then that may be a better clue to what's wrong rather than pooring over Mach source code. What's wrong with that?

For example: You stated earlier about sending a constant stream of JogOffs. If Mach then screws up general motion commands it shouldn't - it SHOULD be able to cope - BUT THAT SAID - sending a constant stream of JogOffs is NOT a clever thing to do. Period. It's akin to a Dos attack on a web server. Only in this case it's an attack on the driver or the smoothstepper or whatever.

Ray - if you're going through my posts looking for an argument then say so and I'll back off.

Now, in a more cooperative mood.

Yes - your code snippet screws my system - you are right and I was wrong.

FWIW, if I understand you correctly, the THC requirement looks like it was completely misunderstood. YES - the Z needs to be controllable in real-time along side a running gcode program - BUT NOT BY GCODE.

Similarly, the output control I suspect was Art's "special" way of activating a laser WHILST motion was in "constant velocity" - an E code if I remember correctly. Yuk!

Like you Ray - I'm a pro - and it sounds like a classic mistake has been made over and over again. The user will ask for an implementation of something - and I will say - don't tell ME how to change the system to do something that will do what you THINK you want. Tell me what you want to achieve and I'LL tell YOU how I'LL specify it.

Question: Can you let me insert gcode into the buffer so I can do THC?

Answer: FO - now tell me what you ACTUALLY want to HAPPEN and I'll tell you how I'LL do it - if it's feasable.

Finally - your macro. Personally I would boiler plate it a bit more. One example: You code "G90" but don't wait on isMoving(). This I've found CAN lead to problems - yes I know it shouldn't - but it CAN. It's not just movement commands that need it IN MY EXPERIENCE - as Terry would say - your milage may vary.

Ian

1194
Hi Wes. Excellent screens - you obviously have the patience of a saint.  :)

Re: your earlier dry run question. How about in your "offline" button script, just do a "code G0" etc. to your stored positions (before you actually go back online obviously). I guess there's checks and stuff to do but I'll leave you to think about those  ;)

BTW - the reason you can't write to MACHINE COORD DROs is because they're readonly - which makes sense.

Ian

1195
General Mach Discussion / Re: hooking up mach3
« on: August 25, 2011, 04:42:08 AM »
As you have things working now you'll probably not be interested but you have your driver wired in a slightly un-conventional way. As well as the active lo/hi thing, you can elect to use parallel ports outputs to either SOURCE or SINK current. "Normally" you would use them in sink mode. That is, you'd have a 5V supply to the +ve side of your step and dir driver inputs and then you'd use your parallel port pins to PULL the "-ve" side low (and thus SINK current). This is the way you'd more than likely HAVE to do things if you used optos.

You appear to be using your parallel port pins in current SOURCE mode. The issue here is that the amount of current parallel port pins can sink and source is USUALLY different. USUALLY they can SINK much more than they can SOURCE. This MAY be why your laptop appears to be otherwise OK - i.e. it PROBABLY IS but it just can't SOURCE enough current and hence the required ~5V is being pulled down too much to be a valid TTL high. If you tried SINK mode then it MAY work. BUT - As Hood says, laptops arn't recommended anyway (for this as well as other reasons).

Ian

1196
Ray - Maybe I'm not so good at getting my point accross or maybe it's something else.

Here's how I look at it - How the machine behaves should be absolutely, 100% predictable.  Right now, it's not.  I had a conversation with Brian this afternooin, and encouraged him to think about what the "philosophy" of Mach3 should be.  Obviously, in the early days, there were all kinds of things added, kinda willy-nilly, sometimes without a lot of thought about the side-effects and hazards that might be created.  Those are, in large part, the things that make Mach3 seem rather unpredictable and unreliable at times.  As you say, sometimes features were added because one user asked for it, but sometimes a new feature ends up breaking something someone else is doing.  I believe the fundamental problem is there are few clearly defined rules as to how Mach3 works, and we've all been forced to find our own, often very ugly, work-arounds.  Personally, I'd like to see consistent, predictable behavior ALL the time.  Right now, it just ain't so.
I absolutely agree. You get no argument from me at all on the above.


Here's something I learned today that surprises me - You can start a G-code program, and while it's running, you can launch a VB script that ALSO executes G-codes, and you have NO WAY to know how the machine is going to react.  I had assumed that when you run a program, that running other G-codes would be locked out, but it's not.  So, for example, if I accidentally bump my touchscreen, and activate the button that sends all three axes to 0, it WILL happen at some point in the execution of the running program!  To me, that is incredibly dangerous, and I have a very hard time coming up with any valid reason for someone to NEED to execute G-code commands WHILE a program is already running.
I absolutely agree - This is totally unacceptabe.

HOWEVER... A while back I asked you which VERSION you were using and unfortunately you dismissed my question out of hand. I can tell you for a FACT - that this does NOT happen with my version. It has NEVER happened and no matter how I try to screw things up I CAN NOT make this happen. I AM NOT SAYING THIS DOESN'T HAPPEN TO YOU. What I AM saying is that this is NOT just a SIMPLE case of something that has NOT been thought about and MISSED in the general Mach development process.

if I was involved in bug tracking Mach I can tell you it would be of great interest to me that this is NOT a problem that affects everyone. IS IT A VERSION THING OR IS IT THE RESULT OF SOMETHING YOU'VE DONE? This is NOT to somehow BLAME you. NO MACRO HOWEVER IT'S WRITTEN SHOULD BE ALLOWED TO ADVERSELY AFFECT THE MAIN SYSTEM IN THE WAY YOU DESCRIBE- It's a question that MAY HELP FIND THE PROBLEM.

An aside... I remember the first time I installed XP when it first came out. I nearly fell off my chair laughing when during the install whilst chuntering on about it's improvements it proudly announced words to the effect of "Now if a program crashes it will not take the Operating System down with it" - About bloody time I thought - to me that's an absolute fundamental that I would EXPECT from any decent OS and here's MS saying it as if they'd just thought of it.

So I'll re-state...

NO MACRO HOWEVER IT'S WRITTEN SHOULD BE ALLOWED TO ADVERSELY AFFECT THE MAIN SYSTEM IN THE WAY YOU DESCRIBE.

Here's another example.  If I hit my Z probe button, it executes an M-macro to do the probing.  If I accidentally double-press that button (not hard to do with a touch-screen, BTW), then I have TWO instances of the M-script running in parallel, but they will NOT run nicely - i.e. - one instance completes, then the other one runs.  That, at least I could live with.  Instead, they run somewhat randomly - one executes a bit, then the other, then the first one again.  And each time it happens, the result will be different.
Again - I agree absolutely - this is unacceptable.

HOWEVER... I'd refer you to my answer above. THIS DOES NOT,HAS NOT and I CAN NOT make this happen with my system. I've tried it Ray - I've screwed with things in a deliberate attempt to try to REPRODUCE this behaviour and I can't. It behaves ROCK SOLID. This would make me suspicious of the macros you use to see how they manage to find a LOOPHOLE in the system. THEN FIX THE LOOPHOLE.

What legitimate use is there for these unpredictable behaviors?
Absolutely no use whatsoever.

These are the kinds of things that make is all tear our hair out, when trying to get seemingly simple functions to work reliably.  If the system were more regular, predictable, and consistent, we'd have FAR fewer problems, and FAR better reliability.  And we wouldn't have some people for who everything always works fine, and others, like me, that run face-first into a problem that gets us side-tracked for hours every other time we turn our machines on.
I absolutely agree.

One of the great strengths of Mach3 is supposed to be that it is so easily configurable and adaptable to the users needs.  But it is precisely in that configurability that all the monsters lurk.  Even simple configuration changes can have completely unknowable (to us) side-effects that result in scrapped work, broken tools, or worse.
Now this is where we start to diverge...

You appear to be blaming the flexibility of Mach and proposing that the solution is to get rid of (some of) that flexibility. I'm saying KEEP the flexilbilty but FIX it PROPERLY.

A perhaps poor analogy if I may... Your car's breaks don't work properly and concerned for your safety. Do you a) Fix the breaks or b) Take the turbo off so that you can't go very fast?

I now use my machine for paying work, and I NEED consistency and reliability, and I don't have it.  Right now, I'm not even close.  Having a well-defined philosophy for how Mach3 operates, and how it is expected to be used would help a LOT.  Right now, it's just the wild west out there, and every time I try something new, I end up with a new problem to debug.
I completely understand.

Ian

1197
Ray - In my earlier post I believe I was just asking for some caution. There's a world of difference between de-bugging and "dumbing down". I believe in my post to Terry that you've quoted I then went some way to accepting that some of the latter may be in order for the "greater good". I do think however that killing off concurrency for the reasons you've stated is a bridge too far. JMHO.

Ian

1198
Hi Terry - picking on you? - absolutely not. FWIW I know you're a machinist with more experience than I can dream of.

Group hug over, you raise an interesting point about macro programming in Mach. Maybe if I understand you correctly, then it SHOULD be much simpler and more proscriptive.

I remember many years ago having a discussion with a fellow programmer who didn't like C. He argued that it was just too easy to screw a machine up and that C++ and Ada and their ilk helped prevent that. I argued that C allowed you to get into the very guts of a system but with freedom came responsibility. We never did agree.

So you know what? maybe you're right. Mach is not a programming environment - it's a machine controler and maybe macro capability and flexilbility should reflect that.

Ray - Please ignore my previous post.

Ian

1199
Ray - I have a feeling I'm going to be howling at the moon - but can I please urge some caution.

Sending continous jog stops: If you want to change Mach to prevent the results of this then "maybe" that's fair enough. But to be honest if you send continuous jog stops then that IMHO is just crap programming. FWIW I know how this has come about because I've written pendant code. Proper programming prevents this. Anyway - like I said "probably" not a big deal to change this.

Now the one that really worries me.

Getting two instances of code running if you hit a button twice is not the least bit surprising nor if you understand that is it unpredictable. In fact it's perfectly normal in any threaded windowing environment. Moreover it can be useful - IF you know what you're doing.

You've stated earlier that Brian is good at responding to user requests and I would agree. However, I'm going to play devil's advocate and say that sometimes IMHO he's TOO good. When a user brings up what he considers to be "an issue" - I find myself wondering if enough time and thought is given before a "fix" is implemented. I get a nasty feeling here that a little too much "shooting from the hip" is going on.

Ian

1200
General Mach Discussion / Re: Could this be done with Mach
« on: August 22, 2011, 03:44:36 AM »
Tom, you asked for the DXF. I posted it along with 2 images to help further. OK so you still didn't get it - that's not a fault. I have no way of knowing your skill level I was just doing my best to help. I'd have happily given a step by step, but you just ignored my last post and that's just plain simple bad manners and why I'm pi**ed off.

Ian