Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  NX Programmierung
  Bereich markieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Bereich markieren (956 mal gelesen)
mazoco
Mitglied



Sehen Sie sich das Profil von mazoco an!   Senden Sie eine Private Message an mazoco  Schreiben Sie einen Gästebucheintrag für mazoco

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 21. Nov. 2007 21:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen

Ich möchte mit User Function ein Bereich auf einem Drawingsheet markieren. Ich möchte dann in diesem Bereich alle Notes löschen. Wie man Notes löscht ist klar, nur wie kann ich den Bereich markieren?

Besten Dank für Eure Hilfe.

Gruss

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

älg
Mitglied
CADmin


Sehen Sie sich das Profil von älg an!   Senden Sie eine Private Message an älg  Schreiben Sie einen Gästebucheintrag für älg

Beiträge: 403
Registriert: 17.06.2003

erstellt am: 22. Nov. 2007 08:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für mazoco 10 Unities + Antwort hilfreich

Dazu gibt es ein Beispiel bei uganswer:


#include <stdio.h>
#include <string.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_curve.h>
#include <uf_disp.h>
#include <uf_vec.h>
#include <uf_csys.h>

#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))

struct rectangle_data_s {
    double
        origin[3],
        x_axis[3],
        y_axis[3],
        opposite[3];
};

typedef struct rectangle_data_s rectangle_data_t, *rectangle_data_p_t;


int report_error( char *file, int line, char *call, int irc)
{
    if (irc)
    {
        char err[133],
            msg[133];

        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ", irc, line, file);
        UF_get_fail_message(irc, err);

        UF_print_syslog(msg, FALSE);
        UF_print_syslog(err, FALSE);
        UF_print_syslog("\n", FALSE);
        UF_print_syslog(call, FALSE);
        UF_print_syslog(";\n", FALSE);

        if (!UF_UI_open_listing_window())
        {
            UF_UI_write_listing_window(msg);
            UF_UI_write_listing_window(err);
            UF_UI_write_listing_window("\n");
            UF_UI_write_listing_window(call);
            UF_UI_write_listing_window(";\n");
        }
    }

    return(irc);
}


void ask_wcs_x_and_y_axes(double *xaxis, double *yaxis)
{
    tag_t
        wcs,
        wcs_mx;
    double
        axes[9],
        mag,
        origin[3];

    UF_CALL(UF_CSYS_ask_wcs(&wcs));
    UF_CALL(UF_CSYS_ask_csys_info(wcs, &wcs_mx, origin));
    UF_CALL(UF_CSYS_ask_matrix_values(wcs_mx, axes));

    UF_VEC3_unitize(&axes[0], 0, &mag, xaxis);
    UF_VEC3_unitize(&axes[3], 0, &mag, yaxis);
}


void rubberband_rectangle_cb(double *screen_pos,
    UF_UI_motion_cb_data_p_t motion_cb_data, void *client_data)
{
    double
        dx[3],
        dy[3],
        end[3],
        pos[5][3],
        start[3];
    rectangle_data_p_t
        my_data = (rectangle_data_p_t) client_data;

    UF_CSYS_map_point(UF_CSYS_ROOT_COORDS, my_data->origin, UF_CSYS_ROOT_WCS_COORDS, start);
    UF_CSYS_map_point(UF_CSYS_ROOT_COORDS, screen_pos, UF_CSYS_ROOT_WCS_COORDS, end);
    UF_VEC3_scale( end[0] - start[0], my_data->x_axis, dx );
    UF_VEC3_scale( end[1] - start[1], my_data->y_axis, dy );
    UF_VEC3_copy( my_data->origin, pos[0] );
    UF_VEC3_add( pos[0], dx, pos[1] );
    UF_VEC3_add( pos[1], dy, pos[2] );
    UF_VEC3_sub( pos[2], dx, pos[3] );
    UF_VEC3_sub( pos[3], dy, pos[4] );

    UF_CALL(UF_DISP_display_ogp_polyline(motion_cb_data->view_tag, pos, 5));
}


logical specify_rectangle(char *prompt, rectangle_data_p_t the_data)
{
    int
        resp;
    tag_t
        view;
    char
        msg[133];

    sprintf(msg, "%s corner 1", prompt);
    UF_CALL(UF_UI_specify_screen_position(msg, NULL, NULL, the_data->origin, &view, &resp));
    if (resp != UF_UI_PICK_RESPONSE) return FALSE;

    ask_wcs_x_and_y_axes(the_data->x_axis, the_data->y_axis);

    sprintf(msg, "%s corner 2", prompt);
    UF_CALL(UF_UI_specify_screen_position(msg, rubberband_rectangle_cb, (void *)the_data, the_data->opposite, &view, &resp));
    if (resp != UF_UI_PICK_RESPONSE) return FALSE;

    return TRUE;
}


void create_curve_rectangle(rectangle_data_p_t where)
{
    tag_t
        lines[4];
    double
        pos[4][3],
        dx[3],
        dy[3],
        end[3],
        start[3];
    UF_CURVE_line_t
        line_data = { 0,0,0, 0,0,0 };

    UF_CSYS_map_point(UF_CSYS_ROOT_COORDS, where->origin, UF_CSYS_ROOT_WCS_COORDS, start);
    UF_CSYS_map_point(UF_CSYS_ROOT_COORDS, where->opposite, UF_CSYS_ROOT_WCS_COORDS, end);
    UF_VEC3_scale( end[0] - start[0], where->x_axis, dx );
    UF_VEC3_scale( end[1] - start[1], where->y_axis, dy );
    UF_VEC3_copy( where->origin, pos[0] );
    UF_VEC3_add( pos[0], dx, pos[1] );
    UF_VEC3_add( pos[1], dy, pos[2] );
    UF_VEC3_sub( pos[2], dx, pos[3] );

    UF_VEC3_copy( pos[0], line_data.start_point);
    UF_VEC3_copy( pos[1], line_data.end_point);

    UF_CALL(UF_CURVE_create_line(&line_data, &lines[0]));

    UF_VEC3_copy( pos[1], line_data.start_point);
    UF_VEC3_copy( pos[2], line_data.end_point);

    UF_CALL(UF_CURVE_create_line(&line_data, &lines[1]));

    UF_VEC3_copy( pos[2], line_data.start_point);
    UF_VEC3_copy( pos[3], line_data.end_point);

    UF_CALL(UF_CURVE_create_line(&line_data, &lines[2]));

    UF_VEC3_copy( pos[3], line_data.start_point);
    UF_VEC3_copy( pos[0], line_data.end_point);

    UF_CALL(UF_CURVE_create_line(&line_data, &lines[3]));
}


void do_it(void)
{
    rectangle_data_t
        where;

    while (specify_rectangle("Define rectangle", &where))
        create_curve_rectangle(&where);
}


void ufusr(char *param, int *retcode, int paramLen)
{
    if (UF_CALL(UF_initialize())) return;
    do_it();
    UF_terminate();
}

int ufusr_ask_unload(void)
{
    return (UF_UNLOAD_IMMEDIATELY);
}

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Ingenieur / Techniker TGA-Planung (m/w/d)
Wir sind planting. Premium-Partner der Prozessindustrie. Wir unterstützen unsere Kunden sowohl in Projekten, in der betriebsnahen Planung als auch im technischen Consulting. Unsere Aufgaben sind anspruchsvoll, unser Leistungs- und Branchenspektrum breit: von der Idee bis zur Inbetriebnahme und darüber hinaus. Dafür suchen wir Verstärkung - kompetent und motiviert. In der rheinischen Domstadt schlägt das Herz der planting....
Anzeige ansehenGebäude-, Versorgungs-, Sicherheitstechnik
mazoco
Mitglied



Sehen Sie sich das Profil von mazoco an!   Senden Sie eine Private Message an mazoco  Schreiben Sie einen Gästebucheintrag für mazoco

Beiträge: 43
Registriert: 31.10.2007

erstellt am: 23. Nov. 2007 22:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Besten Dank für den Tipp älg! Auf dich ist immer Verlass ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz