VERICUT Users' Forum

Due to relentless spammers, we are no longer automatically accepting new forum registrations. If you wish to register for this forum, please send an e-mail to: info@cgtech.com

You are not logged in.

#1 2010-02-09 08:20:27

Alice
Member
Registered: 2010-02-09
Posts: 1

Vericut's API

Goodmorning,
I send this post to ask how to use the following Vericut's API: void cmeapi_get_rapid_traversal(comp_register_name, subsystem, pos_priority, neg_priority, rapid_feedrate, pos_interpolated, neg_interpolated). It would return a series of information associated with RAPID motion, but using the fuction printf, I dindn't return anything!

Can anyone help me?

Thank you.

This is the code that I wrote:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "cmeapi_defines.h"
#include "cmeapi_import.h"
#include "cmeapi_types.h"

void cmeapi_get_rapid_traversal(char *comp_register_name,char *subsystem,double *pos_priority,double *neg_priority,double *rapid_feedrate,double *pos_interpolated,double *neg_interpolated)
        {
            comp_register_name="X";

            printf("comp_register_name: %s \n", comp_register_name);
            printf("subsystem: %s \n", subsystem);
            printf("rapid_feedrate: %f \n", rapid_feedrate);
            printf("pos_priority: %f \n", pos_priority);
        }

                                      
#ifdef WIN_NT
#define DllExport _declspec(dllexport)

DllExport void cmeapi_init(void)

{
    printf("cmeapi_init() Success!\n");
    cmeapi_register_macro("AnewUserAxisFeedrate", cmeapi_get_rapid_traversal);
}

#endif

Offline

#2 2010-02-09 18:22:37

Chigishev
Beta User
From: Moscow, RUSSIA
Registered: 2008-10-21
Posts: 51
Website

Re: Vericut's API

A lot of errors, I think - your example cannot be compiled, cannot work.

1. {
printf("cmeapi_init() Success!\n");
cmeapi_register_macro("AnewUserAxisFeedrate", cmeapi_get_rapid_traversal);
}

Change to

{
printf("cmeapi_init() Success!\n");
cmeapi_register_macro("AnewUserAxisFeedrate", Thanks_Mr_Chigishev); // FOR EXAMPLE, name of function may be any.
}

2. void cmeapi_get_rapid_traversal(char *comp_register_name,char *subsystem,double *pos_priority,double *neg_priority,double *rapid_feedrate,double *pos_interpolated,double *neg_interpolated)
{

change to

void Thanks_Mr_Chigishev ( see arguments from example, I cannot remember exactly )
{

3. comp_register_name="X"; - You cannot define string var such way - you no need this var

just use cmeapi_get_rapid_traversal("X",......) inside function Thanks_Mr_Chigishev


4. Tomorrow I can help you with working code, of course - name of function for  lol

Offline

#3 2010-02-10 07:32:13

VERICUT_USER
Senior Member
From: RUSSIA, Moscow
Registered: 2010-02-10
Posts: 20
Website

Re: Vericut's API

1. Registration of your MACRO

DllExport void cmeapi_init(void)

{
    printf("DLL loaded...\n");
    cmeapi_register_macro("Alice_Macro", cms_For_Alice);
}

2. Function:

void cms_For_Alice(char *word, char *textstr, double value)
{
    double pos_priority;
    double neg_priority;
    double rapid_feedrate;
    double pos_interpolated;
    double neg_interpolated;


    cmeapi_get_rapid_traversal("X", "1", &pos_priority, &neg_priority, &rapid_feedrate, &pos_interpolated,&neg_interpolated);

    printf("pos_priority %f\n", pos_priority);
    printf("neg_priority %f\n", neg_priority);
    printf("rapid_feedrate %f\n", rapid_feedrate);
    printf("pos_interpolated %f\n", pos_interpolated);
    printf("neg_interpolated %f\n", neg_interpolated);

}


Gentleman will walk but never run.
http://www.postprocessor.ru

Offline

Board footer