Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  PTC Creo Elements/Programmierung
  LISP: Auswahl von Objekten/Elementen am Blatt

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 PTC CREO
  
MAIT erhält den Abas Partner Performance Award 2025, eine Pressemitteilung
Autor Thema:  LISP: Auswahl von Objekten/Elementen am Blatt (1376 mal gelesen)
holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 08. Jun. 2010 09:02    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,

wir bräuchten in Annotation ein Kommande das es ermöglicht, eine Skizze zu wählen und alles was sich innerhalb der Skizze befindet (Ansichten, Symbole Skizzen, Linien, Texte) gemeinsam zu verschieben.

Leider gibt es in Annotation kein allgemeines Kommando zum Verschieben, sondern immer für jede Art von Objekt/Element ein eigenes.
Daher bleibt mir nichts anderes übrig als selber zu programmieren.        

Bisher bin ich soweit gekommen dass ich die Eckpunkte der gewählten Skizze abfrage und dann mittels get_selection alles selektiere was sich innerhalb der Box befindet.
Mit einer check-function muss für jedes Objekt/Element geprüft werden ob es sich direkt am Blatt befindet.

Soweit, so gut.

Meine Fragen/Probleme:

  • Um die Eckpunkte der gewählten Skizze zu bestimmen verwende ich das Standard-ME10-Makro Docu_get_part_box. Dieses liefert die Eckpunkte in einer Plist. Für das :select :by_box_docu_rest brauche die Punkte in einer Structure. Leider gibt es im IKIT keine dokumentierte Funktion zum Umwandeln. 2 undokumentierte Funktionen habe ich gefunden:
    Code:
    ( oli :: docupntcnp x-Koordinate y-Koordinate "Annotation")
    Da die Plist Strings liefert müssen diese mittels sd-read-fron-string umgewandelt werden.
    Code:
    (frame2::make-GPNTDOCU :x x-Koordinate :y y-Koordinate :gport "Annotation")
    Hier ist eigenartigerweise kein sd-read-from-string erforderlich.

    Welche der beiden Funktionen ist empfehlenswerter?
    Sollte docupntcnp nicht eigentlich eine exportierte Funktion und auch dokumentiert sein? Immerhin gibts ja den :value-type : docupntcnp. Außerdem ist die Funktion im Aufzeichner auch ohne Package-Angabe zu finden.

  • Ich habe keine dokumentierte (LISP)Möglichkeit gefunden wie ich in der :check_function den Besitzer von Skizzen oder Symbolen ermittle. Es gibt aber eine ME10-Funktion namens DOCU_PARENT_PART_ID. Damit kommt man relativ einfach zu einem brauchbaren Ergebnis.
    Somit kann ich schon mal für alle Objekte (Ansichten, Skizzen, Symbole) den Besitzer ermitteln und entsprechend filtern.

    Was mich in diesem Zusammenhang auch interessieren würde:
    Die beiden oben angeführten Annotator-Funktionen habe ich mittels ME10-Trace eher zufällig gefunden. Ist es eigentlich empfehlenswert, Annotator-Funktionen die nicht in der normalen ME10-Docu aufgelistet sind zu verwenden und gibt es dafür eine eigene Doku?

  • Das Selektieren von Linien und Texten funktioniert überhaupt nicht. Wie kann ich mittels get_selection Elemente innerhalb eines Rahmens selektieren?
    Code:
    (get_selection
    :focus_type *sd-anno-geo-seltype*
    :select :by_box_docu_rest
    (frame2::make-GPNTDOCU :x x-Koordinate ll :y y-Koordinate ll :gport "Annotation")
    (frame2::make-GPNTDOCU :x x-Koordinate ur :y y-Koordinate ur :gport "Annotation")
    :select-attribute : docu-user-geo-only)
    funktioniert leider überhaupt nicht. Auch nicht mit :by_box_docu_geo und auch nicht ohne :select-attribute : docu-user-geo-only
    Fehlermeldung: LISP-Fehler: 188283072 is not of type (OR STRING EXTENDED-STRING SYMBOL).

Wie ich einen grafischen Debugger vermisse!        

P.S.: Die falschen Leerzeichen vor und nach den Doppelpunkten habe ich wegen der Smileys eingefügt.

------------------
Gruß aus dem Salzkammergut

Thomas

[Diese Nachricht wurde von holt am 09. Jun. 2010 editiert.]

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

Walter Geppert
Moderator
Frank und Frei




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

Beiträge: 2166
Registriert: 12.12.2000

erstellt am: 08. Jun. 2010 10:51    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 holt 10 Unities + Antwort hilfreich

Nachdem eine Skizze ja eh nix mehr Assoziatives ist und man eigentlich nix mehr ruinieren kann, würde ich in dem Fall zu beinharten ME10-Kommandos greifen 

------------------
meine LISP-Makros sind auf osd.cad.de
Disclaimer
Grüße aus Wien

Walter
DC4 Technisches Büro GmbH

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

holt
Mitglied
Systembetreuer CAD


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

Beiträge: 720
Registriert: 07.08.2003

Lenovo ThinkStation P360
Core i7-12700@2.10 GHz, 32GB
NVIDIA RTX A2000 12 GB
Creo Elements/Direct Modeling 20.5
Creo Elements/Direct Drafting 20.5
Creo Elements/Direct ModelManager 20.5

erstellt am: 08. Jun. 2010 11:56    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

Tja, wenn es sich nur um Skizzen handeln würde, bräuchte ich ja gar nichts selber programmieren. Aber innerhalb der Skizze befinden sich Ansichten, Symbole und und und ...

Also lieber nicht mit reinen ME10-Befehlen.

------------------
Gruß aus dem Salzkammergut

Thomas

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)2025 CAD.de | Impressum | Datenschutz