Advanced Search

Search Results (Searched for: )

  • Grotius
  • Grotius's Avatar
22 Oct 2024 10:08
Replied by Grotius on topic linuxcnc trajectory planner

linuxcnc trajectory planner

Category: General LinuxCNC Questions

Hi Arciera,

Post 22 Oct 2024 06:03
This go trough workplane bottom problem can be avoided by checking :

1.If you have a trim lenght of 5mm. And the line is 15mm, then the line will be trimmed at the ends, resulting a netto line length 5mm.
2.In the case of your post, the trim dist is divided to fit. The line is for example 5mm. Trimming 5mm both ends will fail, then the trim is
divided to fit, wich results for example in a trim 2.4mm x 2 = 4.8mm, Then the netto line is 0.2mm.

Related calculation:
if (trim_distance >= seg.length / 2.0) {
    trim_distance = (seg.length / 2.0)-1e-3;
}   

Solution:
When a trim distance has to be lowered to fit, this then can be a reason to skip this line trim. Let the line as is.
When a full trim fit can be done, the clothoid has no reason to go trough the bottom of the workplane. This then is valid.

Post 22 Oct 2024 07:50
The function loops to all the segments. Here it sets one exception:
Do not trim this line end if upcoming line is colinear to this.

We can add more exceptions here.

Is there a particular reason for not handling one fillet after the other?
In a other function, we start with a list of segments. (gcode input) .
They then already have a flag if they may be trimmed front & back.
It this point the empty fillet segments are inserted inbetween. This is a vector insert operation.

Once the empty segments are in place. Then we add the values to the fillet by looking, what kind of fillet we are going to produce.
We now have 3 types : line, bspline or clothoid.

Nice you are digging into the code!
Are you using qt for it as viewer and editor? This should be the nice as you can load the cmakelists directly in qt.

Good luck.








 
  • yuyu
  • yuyu
22 Oct 2024 09:55 - 22 Oct 2024 09:56

Compiling linuxcnc with source code on Debian12 resulted in an error

Category: Installing LinuxCNC

Sorry, it still doesn't work. Following the above method still has problems.
  • ThyerHazard
  • ThyerHazard's Avatar
22 Oct 2024 09:20
Replied by ThyerHazard on topic Probing issues

Probing issues

Category: QtPyVCP

More info, I've been playing around and figured out the probe triggering (as in switching states in HAL_METER from false to true) Just has a wire crossed over.

But the behaviour is still the same I press probe there is no machine movement but the machines DRO in probe basic starts counting down slowly as if the Z axis is going down. Only now I can trigger the tool setter or probe (I have them in series with each other as they are NC) and the DRO stops.

I've also noticed that no matter which direction I select to probe for example X+ direction probe, its the Z DRO that starts counting down, same if I click Z- probe or Y- probe or any of them. 
 
  • martin2day
  • martin2day
22 Oct 2024 08:00

Knuth Mark Super CNC Retrofit - need some help with my first LinuxCNC

Category: Milling Machines

Thank you very much. The Mesa 7i97T card is very good for my machine, because every analog output come with a separate drive enable output.
So i have al the 6 extra outputs for other functions... think this is very good for the first start.

Can you give me a hint were i can read something about setup the axis with encoder feedback in LinuxCNC.
As it is a closed Loop Sytstem i think this is the Most difficult but very important thing in this setup... to get a very well runing machine.

Have a nice day
Martin
  • Aciera
  • Aciera's Avatar
22 Oct 2024 07:50 - 22 Oct 2024 08:14
Replied by Aciera on topic linuxcnc trajectory planner

linuxcnc trajectory planner

Category: General LinuxCNC Questions

Looking at this seems to suggest that you are trimming ALL the segments:

int optimizer::trimCurves(vector& ptr_vector) {

// Trim all the curves back given the G64 P.. value.
for (std::size_t i = 0; i < ptr_vector.vec.size(); ++i) {

int trim_front=0;
int trim_back=0;

if(i>0){
trim_front=1;
}

if(i<ptr_vector.vec.size()-1){
trim_back=1;
}

// If next segment is colear, dont trim this end. Must be a line-line.
if(i<ptr_vector.vec.size()-1){
const struct emcmot_segment &seg = ptr_vector.vec.at(i);
const struct emcmot_segment &seg_next = ptr_vector.vec.at(i+1);

int res=isColinear(seg.start.tran, seg.end.tran, seg_next.end.tran);
if(seg.canon_motion_type!=3 && seg_next.canon_motion_type!=3 && res==1){
trim_back=0;
}
}

// If previous segment is colear, dont trim this start. Must be a line-line.
if(i>0){
const struct emcmot_segment &seg = ptr_vector.vec.at(i);
const struct emcmot_segment &seg_prev = ptr_vector.vec.at(i-1);

int res=isColinear(seg.start.tran, seg.end.tran, seg_prev.start.tran);
if(seg.canon_motion_type!=3 && seg_prev.canon_motion_type!=3 && res==1){
trim_front=0;
}
}

if (0 != trimCurve(ptr_vector.vec.at(i),trim_front,trim_back)) {
std::cerr << "Failed to trim curve at index " << i << std::endl;
return -1;
}
}
std::cout<<"trim curves done."<<std::endl;
return 0;
}

Is there a particular reason for not handling one fillet after the other?
In my mind it would be beneficial if the trimming process could actually influence how the filleting was done for a particular intersection which seems difficult in the current code.

[edit]
Anyway, no point in getting carried away by details at this stage. The code seems to give you good enough input to continue with the next step of the project.
  • bkt
  • bkt's Avatar
22 Oct 2024 06:43
Replied by bkt on topic c++ compiling error

c++ compiling error

Category: Advanced Configuration

in attach my ini and hal file used for test (hal is more long I stopped it at foundamental) maybe I make somethings wrong and not know it ....

 

File Attachment:

File Name: inifile.ini
File Size:2 KB

 

File Attachment:

File Name: myhalfile.hal
File Size:5 KB
  • ThyerHazard
  • ThyerHazard's Avatar
22 Oct 2024 06:43
Replied by ThyerHazard on topic Probing issues

Probing issues

Category: QtPyVCP

I'm not sure where I'm going wrong, My machine appears to be set up correctly because its working and not giving errors. its just not probing. 
I have tried to find people with the same issue and watched and read a few guides on setting up a probe with linuxcnc etc but the problem I'm finding is that everyone seems to be using a completely different set up and doing it in various ways that don't seem to work for me and it a lot of it is based of assumed knowledge. 

Below is my Config files if anyone could have a quick look and see if anything obvious stands out I would greatly appreciate it.

I have gone up and down the probe basic site trying to check my work but the only real mention to anything probe related is commenting out the (# net probe-in  =>  qtpyvcp.probe-in.out) in the post_gui_hal which I did and other people setting up Probes in other screens are adding custom xml files etc which I'm assuming is already pre built in? 

Thanks again.
  • bkt
  • bkt's Avatar
22 Oct 2024 06:37
Replied by bkt on topic c++ compiling error

c++ compiling error

Category: Advanced Configuration

ok after check .... I use signal so do_sets_cmd is more appropriate .... any how I insert a lot of debug row ..... and all output teminate before call to rtapi ....

  
QString strOne = QString::fromLocal8Bit(name);
    qDebug() << Q_FUNC_INFO << "Received name =  " << strOne << "  ;";
    //rtapi_print_msg(RTAPI_MSG_DBG, "setting signal '%s'\n", name);
    /* get mutex before accessing shared data */
    rtapi_mutex_get(&(hal_data->mutex));
    qDebug() << Q_FUNC_INFO << "hal_data_mutex name =  " << strOne << "  ;";
    /* search signal list for name */
    sig = halpr_find_sig_by_name(name);
    qDebug() << Q_FUNC_INFO << "halpr_find_sig_by_name name =  " << strOne << " sig value = " << sig << "  ;";

terminal show these:
Issuing EMC_TRAJ_SET_G92 --      (  +227,+424,    +0,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,)
Issuing EMC_TRAJ_SET_ROTATION --      (  +226,+360,    +0,0.000000,)
void MainWindow::toggleBnt_hal(bool) name Toggle received  : "hal_cmd_3"
int do_sets_cmd(char*, char*) Received name =   "hal_cmd_3"   ;[color=#e74c3c] /* these is the last mark before rtapi call */[/color]
/usr/bin/linuxcnc: line 955: 135813 Segmentation fault      (core dumped) $EMCDISPLAY -ini "$INIFILE" $EMCDISPLAYARGS $EXTRA_ARGS
Shutting down and cleaning up LinuxCNC...
task: 0 cycles, min=0.000002, max=0.012565, avg=-1.000000, 0 latency excursions (> 10x expected cycle time of 0.010000s)
Note: Using POSIX realtime

regards

 
  • bkt
  • bkt's Avatar
22 Oct 2024 06:17 - 22 Oct 2024 06:19
Replied by bkt on topic c++ compiling error

c++ compiling error

Category: Advanced Configuration

Hi Grotius ... THE BOSS .... (or mayight "the boss" with guitar can offended? ;))   ) ...

 

any how ... my suspicious is not working in these manner .... axis.sig_name think not work at all .... maybe work pin_name .... but not sure axis.classicladder.0.in-10 can be set .....

the error above:
Warning: Spoiler!



in attach sen_command.h modify for "const" error .....

 

File Attachment:

File Name: send_comma...0-22-2.h
File Size:13 KB


regards
  • Mr. Mass
  • Mr. Mass's Avatar
22 Oct 2024 06:15 - 22 Oct 2024 06:18
Replied by Mr. Mass on topic CNC machine B64-S-ATC

CNC machine B64-S-ATC

Category: CNC Machines

Some progress here. I continued making the base and found out that the profiles with t-slot are slightly larger. Since they fit one to the other and there are 10 of them, this error will not allow to assemble everything.



So I had to fix it. 




Finished all the profiles and parts for the base. 



Now for the fun part. I've been wanting to try using profile filler for a long time and now I've finally made up my mind. I decided to use epoxy granite, it's easy to make and adds quite a bit of stiffness and most importantly, dampens vibrations very well. I made some samples to check the composition of the mix, everything went well with the calculation.  



Then I decided that it would be easy to put the tabs in the profile with an internal cross-section of 70*30mm. But it turned out to be very difficult, don't do it like that. 




Laying the mixture inside and tamping it down through all those tabs wasn't easy either. Now while the epoxy granite is gaining its strength I can do the other parts.

 
  • Aciera
  • Aciera's Avatar
22 Oct 2024 06:03 - 22 Oct 2024 07:40
Replied by Aciera on topic linuxcnc trajectory planner

linuxcnc trajectory planner

Category: General LinuxCNC Questions

You are likely already aware of this, one issue is that some fillets are extending below the work plane:

 

My first intuition would make me think that this happens because the vertical line segment is too short to be trimmed back far enough to fit a fillet with the requested G64 Px Qx properties. In this case I would expect the optimizer to either
not cut the segment at all and not create a fillet
or (a more sophisticated path)
cut the segment the way it does now (ie to the minimum length) and create a fillet with adjusted parameters so it does not extend beyond the original segments.

int optimizer::trimCurve(emcmot_segment& seg, int& trim_front, int& trim_back) {
    double trim_distance = G64P; /*seg.tag.fields_float[3];*/  // G64 P..

    // Trim conditions.
    if(trim_distance<=0){
        std::cout<<"no trim distance for segment id:"<<seg.id<<std::endl;
        return 0;
    }

    if (trim_distance >= seg.length / 2.0) {
        trim_distance = (seg.length / 2.0)-1e-3;
    }

    if(trim_distance<=1e-6){
        std::cout<<"too short to trim, no trim is done for segment id:"<<seg.id<<std::endl;
        return 0;
    }

    if(seg.canon_motion_type==1 || seg.canon_motion_type==2){
        trimLine(seg,trim_distance,trim_front,trim_back,false);
    }
    if(seg.canon_motion_type==3){
        trimCircle(seg,trim_distance,trim_front,trim_back,false);
    }

    return 0;
}
  • cmorley
  • cmorley
22 Oct 2024 04:02

Machine moves when you stop program in the middle

Category: General LinuxCNC Questions

Do you have an abort.ngc file in the config?
  • tommylight
  • tommylight's Avatar
22 Oct 2024 02:51
Replied by tommylight on topic controller and motors not fully communicating

controller and motors not fully communicating

Category: General LinuxCNC Questions

Power on the PC, press F2 when logo shows, in the BIOS find the parallel port (probably in peripherals or similar), check if the parallel port address is 378 or 0x378
  • tommylight
  • tommylight's Avatar
22 Oct 2024 02:46
  • foam man
  • foam man
22 Oct 2024 02:44
Replied by foam man on topic controller and motors not fully communicating

controller and motors not fully communicating

Category: General LinuxCNC Questions

Hi I was able to take a picture showing all the details on the BOB. the loose wires you see wer connected to the limit switches on the mill. I marked them and disconnected them all, because I thought maybe they were the problem but no dice. 

 
Displaying 19546 - 19560 out of 24138 results.
Time to create page: 0.589 seconds
Powered by Kunena Forum