Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  PTC Creo Elements/Direct Drafting
  Ellipse im Makro

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 Creo
Autor Thema:  Ellipse im Makro (676 mal gelesen)
Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 274
Registriert: 02.11.2003

Solid Edge ST7
mit SMAP Piping
OSDD 2006
unter Win 7

erstellt am: 12. Mai. 2004 12:24    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!

Ich habe ein Problem mit der Ellipsenerstellung innerhalb eines Makros. Sobald der entsprechende Befehl (egal, ob Ell_vvp oder Ell_car) gegeben wird, scheint die Makroausführung zu stoppen und die Punkte werden abgefragt, als hätte ich den Befehl in ME10 direkt aufgerufen. Die von mir im Makro übergebenen Punkte werden ignoriert.
In der Onlinehilfe heisst es, dass der Ellipsenbefehl ein Makro aufruft, das einen Ellipsenähnlichen Spline erstellt. Könnte das damit zusammenhängen?
Der Befehl dazu sieht bei mir so aus:
ELL_VVP (P0+PNT_XY (DK1/2) 0) (P0+PNT_XY (-1*(DK1/2)) 0) (P0+PNT_XY 0 LTE)

Mit "Trace" verfolgt, kommt an der Stelle dieses:
Ell_vvp
END
FOLLOW OFF
INQ_ENV 3
LET Old_no_viewport_catch_range ( INQ 3 ) 0
CATCH NO_VIEWPORT_RANGE 0
LOOP
INQ_ENV 6
LET Scale ( INQ 3 ) 0.0174532925199433
Dann wird die Eingabe der Punkte erwartet...

Wäre super, wenn mir jemand helfen könnte.

Viele Grüße
Tom

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

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 12. Mai. 2004 12:45    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 Tom R 10 Unities + Antwort hilfreich

Wenn für eine Makro keine Übergabeparameter definiert sind und dann in einer LOOP mit READ explizierte Werte abgefragt werden, geht es so nicht. Dann verwende die eigentliche Splinefunktion z.B. BSPLINE, der frisst beliebig viele Punkte per Parameter.

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

rhoffmann
Mitglied
Techniker


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

Beiträge: 58
Registriert: 22.01.2003

erstellt am: 12. Mai. 2004 13:39    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom,

in Deiner Schreibweise der Formel muss der Fehler stecken.
Wenn ich Ell_vvp 0,0 1000,0 450,200 END eintippe,
zeichnet mir ME10 die Ellipse.
Beachte, dass der Befehl mit END abgeschlossen werden muss.

MfG

Robert

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

Dittrich
Mitglied
SysAdmin


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

Beiträge: 388
Registriert: 06.06.2000

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

erstellt am: 12. Mai. 2004 13:43    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 Tom R 10 Unities + Antwort hilfreich

rhoffmann
Mitglied
Techniker


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

Beiträge: 58
Registriert: 22.01.2003

erstellt am: 12. Mai. 2004 13:48    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 Tom R 10 Unities + Antwort hilfreich

Hallo Dittrich,

gemaess Deinem Spruch:

Wenn es nicht geht, probier was anderes,
vielleicht geht es dann auch nicht.

MfG

Robert

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 274
Registriert: 02.11.2003

Solid Edge ST7
mit SMAP Piping
OSDD 2006
unter Win 7

erstellt am: 12. Mai. 2004 14:29    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

Zitat:
Original erstellt von rhoffmann:

in Deiner Schreibweise der Formel muss der Fehler stecken.
Wenn ich Ell_vvp 0,0 1000,0 450,200 END eintippe,
zeichnet mir ME10 die Ellipse.
Beachte, dass der Befehl mit END abgeschlossen werden muss.

Danke für die Antworten. Die Anweisung END stand bei mir in der nächsten Zeile. Spielt aber keine Rolle.
Wenn ich den Befehl eintippe, funktioniert es auch. Die gleiche Zeile im Makro bewirkt aber nach wie vor das beschriebene Verhalten. Es scheint tatsächlich so zu sein, dass der Befehl per Makro nicht verwertbar ist. Es sei denn, ich habe da noch anderswo einen Bock drin...?

Viele Grüße
Tom

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

barbarossa
Mitglied
Konstrukteur


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

Beiträge: 273
Registriert: 21.02.2003

ProE 20
ProE 2000i
ProE 2001
ProE WF2 M130
ProE WF3 M170
ProE WF4 M210
Creo 2.0
Catia V5 R19
NX 5
ME10 7.0
AutoCAD Mechanical 2007 (blutiger Anfänger)
Office 2003

erstellt am: 12. Mai. 2004 14:34    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 Tom R 10 Unities + Antwort hilfreich

Hallo,

die Ellipsen-"Befehle" sind selber Makros, die
man editieren kann.

Außerdem ist es im Prinzip einfacher selbst
eben ein "passendes" Ellipsenmakro zu schreiben.

Gruß
Barbarossa

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

rhoffmann
Mitglied
Techniker


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

Beiträge: 58
Registriert: 22.01.2003

erstellt am: 12. Mai. 2004 15:53    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom,

ich habe mir mal das Original Macro angesehen.

In der Schleife wird nach Auftreten eines Fehlers
das Macro _durch sich selbst_ wieder aufgerufen.
Dadurch kennt das Macro beim zweiten Aufruf deine
Parameter nicht mehr.

Lege die Fehlerprüfung ausserhalb dieses Macros,
oder, wenn Du sicher bist, dass gültige Werte übergeben werden,
kommentier die rekursiven Aufrufe aus.

MfG

Robert


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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 274
Registriert: 02.11.2003

Solid Edge ST7
mit SMAP Piping
OSDD 2006
unter Win 7

erstellt am: 12. Mai. 2004 16:16    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

Zitat:
Original erstellt von rhoffmann:
Hallo Tom,

ich habe mir mal das Original Macro angesehen.

In der Schleife wird nach Auftreten eines Fehlers
das Macro _durch sich selbst_ wieder aufgerufen.
Dadurch kennt das Macro beim zweiten Aufruf deine
Parameter nicht mehr.

Lege die Fehlerprüfung ausserhalb dieses Macros,
oder, wenn Du sicher bist, dass gültige Werte übergeben werden,
kommentier die rekursiven Aufrufe aus.

MfG

Robert


Danke für die Mühe.
Funzt das Ganze denn bei dir aus einem eigenen Makro heraus? Immerhin habe ich vorhin mal die Werte übergeben, die in der direkten Eingabe funktioniert haben und bin trotzdem nicht weitergekommen.

Ich habe mir jetzt, wie hier empfohlen, geholfen indem ich das Problem über einen Spline gelöst habe. Dabei hat sich eine weitere Frage ergeben:

Da ich nur das halbe Element brauche, trenne ich den Spline und lösche die Hälfte weg. Dazu bediene ich mich der Definitionspunkte des Splines, da ich weitere nicht kenne. Nun können in der Zeichnung an der Stelle aber weitere Elemente liegen, z. B. Mittellinien. Und die hat er beim Test wohl auch ausgerechnet ausgewählt. Wie kann ich denn die "dahinter liegenden" Elemente erreichen?

Viele Grüße
Tom

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

rhoffmann
Mitglied
Techniker


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

Beiträge: 58
Registriert: 22.01.2003

erstellt am: 12. Mai. 2004 17:35    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 Tom R 10 Unities + Antwort hilfreich

Hallo Tom,

Das Macro hat Probleme mit negativen Zahlen ( Wurzel aus -xx )
Untenstehendes Macro habe ich getestet.
Es läuft bei mir.

Zu Deiner zweiten Frage schau mal nach
INQ_SELECTED_ELEM
in der Hilfe. Damit kannst Du alle Elemente durchlaufen.

MfG

Robert


##############################################################

DEFINE my_Ell_vvp
  PARAMETER Ver_pnt1
  PARAMETER Ver_pnt2
  PARAMETER Per_pnt
  LOCAL Cen_pnt
  LOCAL Axis_angle
  LOCAL Min_radius
  LOCAL Maj_radius
  LOCAL Loc_angle
  LOCAL Dis
  LOCAL Old_no_viewport_catch_range
  LOCAL Scale
  LOCAL Step

  FOLLOW OFF
  INQ_ENV 3
  LET Old_no_viewport_catch_range (INQ 3)
  CATCH NO_VIEWPORT_RANGE 0
  LOOP
    INQ_ENV 6
    LET Scale (INQ 3)
    LET Cen_pnt ((Ver_pnt1+Ver_pnt2)/2)
    IF (LEN (Per_pnt - Cen_pnt)<LEN (Ver_pnt2 - Cen_pnt))
      LET Maj_radius (LEN (Ver_pnt2 - Cen_pnt))
      LET Axis_angle (ANG (Ver_pnt2 - Cen_pnt))
      LET Per_pnt (ROT (Per_pnt - Cen_pnt) (- Axis_angle))
      LET Dis (SQR Maj_radius - SQR X_OF Per_pnt)
IF (Dis<=0) CANCEL END_IF
      LET Min_radius (Maj_radius*Y_OF Per_pnt/SQRT Dis)
    ELSE
      LET Min_radius (LEN (Ver_pnt2 - Cen_pnt))
      LET Axis_angle (ANG (Ver_pnt2 - Cen_pnt)+((PI/2)/Scale))
      LET Per_pnt (ROT (Per_pnt - Cen_pnt) (- Axis_angle))
      LET Dis (SQR Min_radius - SQR Y_OF Per_pnt)
IF (Dis<=0) CANCEL END_IF
      LET Maj_radius (Min_radius*X_OF Per_pnt/SQRT Dis)
    END_IF
    BSPLINE CLOSED ORDER 3
    LET Step 0
    REPEAT
      LET Loc_angle (Step*PI/18)
      LET Loc_angle (Loc_angle/Scale) (Cen_pnt+ROT PNT_XY (Maj_radius*COS
      Loc_angle) (Min_radius*SIN Loc_angle) Axis_angle)
      LET Step (Step+1)
    UNTIL (Step>=36)
    END
    END
  END_LOOP
  CATCH NO_VIEWPORT_RANGE Old_no_viewport_catch_range
END_DEFINE

DEFINE Test
  LOCAL Vp1
  LOCAL Vp2
  LOCAL Vp3

  LET Vp1 (PNT_XY 0 0)
  LET Vp2 (PNT_XY 1000 0)
  LET Vp3 (PNT_XY 400 350)

  my_Ell_vvp Vp1 Vp2 Vp3 END

END_DEFINE

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 274
Registriert: 02.11.2003

Solid Edge ST7
mit SMAP Piping
OSDD 2006
unter Win 7

erstellt am: 13. Mai. 2004 08:22    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

Zitat:
Original erstellt von rhoffmann:
Hallo Tom,

Das Macro hat Probleme mit negativen Zahlen ( Wurzel aus -xx )


Ach so. Das erklärt's natürlich. Ist aber unpraktisch, weil ich dann umrechnen muss und einen anderen Ellipsenbefehl nutzen oder ich verschiebe die Ellipse hn und wieder zurück.

Wie dem auch sei. Ich hab's jetzt hingekriegt, allerdings die Sache mit dem Schneiden nur von hinten durch die Brust ins Auge. Gefällt mir nicht.
Ich habe immer noch das Problem mit dem Wählen des richtigen Elementes. Ich habe versucht nach dem Aufruf SPLIT vor Eingabe des Wahlpunktes ein SELECT (BSPLINES) einzuschieben, was aber großzügig ignoriert wurde. 
Und mit INQ_NEXT_ELEM komme ich nicht klar. Ich kann dann zwar sie Eigenschaften des nächsten Elemenetes abgreifen, aber wie kann ich aus 3 übereinanderliegenden Elementen das auswählen, das dem gewünschten Typ entspricht? Mein verzweifelter Versuch, mit LOOP heranzukommen, ist kläglich gescheitert. *gg*
Ich möchte einfach von dem erzeugten Spline (oder der Ellipse) eine Hälfte weglöschen.

Viele Grüße
Tom

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

anneB
Mitglied
CAD Applikationsbetreuer


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

Beiträge: 22
Registriert: 07.04.2004

erstellt am: 13. Mai. 2004 13:04    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 Tom R 10 Unities + Antwort hilfreich

Hallo,
wenn du ein Element, das du in einem Macro erzeugst wieder ansprechen möchstest, dann weis dem Element doch einen bestimmtes Info zu.
So kannst du die Auswahl auf das Info einschränken.
Du kannst das Inf, wenn es seinen Zweck erfüllt hat ja wieder löschen.

------------------
Gruß Anne

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

Tom R
Mitglied
Technischer Zeichner


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

Beiträge: 274
Registriert: 02.11.2003

Solid Edge ST7
mit SMAP Piping
OSDD 2006
unter Win 7

erstellt am: 13. Mai. 2004 15:14    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

Zitat:
Original erstellt von anneB:
Hallo,
wenn du ein Element, das du in einem Macro erzeugst wieder ansprechen möchstest, dann weis dem Element doch einen bestimmtes Info zu.
So kannst du die Auswahl auf das Info einschränken.
Du kannst das Inf, wenn es seinen Zweck erfüllt hat ja wieder löschen.


Hallo!

Das hört sich gut an, aber habe ich beim Zuweisen der Info nicht das gleich Auswahlproblem? Oder kann ich direkt beim Erzeugen des Elementes die Info anhängen?

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



Maschinenbaukonstrukteur Werkzeugkonstruktion (m/w/d)

Der Unternehmensverbund battenfeld-cincinnati ist einer der weltweit führenden Anbieter von Extrusionsanlagen und -systemen für die Produktion von Rohren, Platten, Folien, Profilen und Granulat aus Kunststoff sowie Holz-Kunststoff-Verbundstoffen und beschäftigt in Deutschland, Österreich, den USA und China insgesamt mehr als 600 Mitarbeitende. Für die battenfeld-cincinnati Germany GmbH sind an den Standorten Bad Oeynhausen und Kempen ca....

Anzeige ansehenKonstruktion, Visualisierung
awi
Mitglied
Programmierer


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

Beiträge: 275
Registriert: 11.11.2001

awinformatik
- individuallösungen
rund um me10.
- pc-steuerungen.

erstellt am: 13. Mai. 2004 17:19    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 Tom R 10 Unities + Antwort hilfreich

hi tom
mit add_elem_info kannst du deinem soeben gezeichneten element eine info anhängen oder aber du eröffnest zuerst einen info mit add_current_info und zeichnest danach elemente, texte oder bemassungen, erhalten auch diese deine info plus die die sonst schon vom system definiert sind. nicht vergessen nachträglich mit delete_current_info die info zu löschen sonst bekommen all deine weiteren elemente die info.

gruss aus finsterhennen

------------------
awi
André Weidmann

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