| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO | | |  | Wichtige Änderung bei Lizenzverlängerungen von PTC, eine Pressemitteilung
|
Autor
|
Thema: Elemente stutzen an inaktiven Elementen (560 mal gelesen)
|
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 29. Jun. 2004 09:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Da wir hier viel mit Verrohrungen machen, müssen wir viele Kleinigkeiten löschen, die von anderen Teilen ganz oder teilweise verdeckt werden. Über das Modul "Verdecken" zu arbeiten, ist erstens zu schiwerig, weil umständlich und zweitens nicht akzeptabel, weil dabei alle Elemente ins selbe Teil befördert werden. Daher kam ich auf den Gedanken, man müsste doch über ein Makro Hilfsmittel erstellen können. Hilfreich wären schon die Funktionen stutzen/strecken und Mitte raus, wenn die auch an inaktiven Teilen funktionieren würden. Über die Suche habe ich nur einen Beitrag zum Thema gefunden, der zwei Jahre alt ist und in dem die Lösung auch nicht zuverlässig sein soll. Ich bin dann zwar einen anderen Weg gegangen, der ist aber auch fehleranfällig. Meine Idee war die, die Grenzelemente, an denen gestutze oder geschnitten wird, als Kopie ins aktive Teil zu holen, die auf das zu bearbeitende Teil zu strecken, damit dieses dort getrennt wird, und dann das Entsprechende wegzulöschen. Das hat aber mehrere Nachteile: Mit Kreisen funzt es nicht richtig; ich kann nicht sicherstellen, dass Bögen auch einen Schnittpunkt mit dem fraglichen Element haben; und der Auswahlpunkt des zu stutzenden Elementes muss in dem Bereich liegen, der weggelöscht wird. Ausserdem hätte ich gerne direkt bei Auswahl sichergestellt, dass die richtige Art Elemente ausgewählt wurden, dann könnte man Kreise z. B. als Grenzelement ausschließen. Ich glaube aber, das kann ich nicht abfragen, wenn das Element nicht im aktiven Teil ist? Für die, die interessiert sind, hier mal der (bisherige) Code: DEFINE element_verdecken LOCAL P0 LOCAL P1 LOCAL P2 LOOP LOOP READ PNT 'Element angeben, das verdeckt wird ?' P2 INQ_SELECTED_ELEM P2 EXIT_IF ((INQ 403)=LINE) EXIT_IF ((INQ 403)=CIRCLE) EXIT_IF ((INQ 403)=ARC) EXIT_IF ((INQ 403)=FILLET) BEEP END_LOOP LOOP READ PNT 'Anfangspunkt ?' P0 INQ_SELECTED_ELEM P0 EXIT_IF ((INQ 14)>0) BEEP END_LOOP LOOP READ PNT 'Endpunkt ?' P1 INQ_SELECTED_ELEM P1 EXIT_IF ((INQ 14)>0) BEEP END_LOOP WUI_INCLUDE_ELEMENT 1 P0 P0 P0 WUI_INCLUDE_ELEMENT 1 P1 P1 P1 TRIM_ONE P0 P2 TRIM_ONE P1 P2 DELETE P2 P0 P1 END WINDOW AS_DISPLAYED END_LOOP END_DEFINE Vielleicht hat ja jemand hier mittlerweile eine bessere Lösung, oder kann meine anfällige etwas stabiler machen? Zum reinen stutzen eines Elementes habe ich übrigens ein eigenes Makro erstellt, das ähnlich funktioniert. O. a. ist eigentlich nur für die Funktion CUT_MIDDLE. Es wäre nett, wenn sich mal jemand dazu äussern würde, ob's, bzw. wie's besser geht. Viele Grüße an alle Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
awi Mitglied Programmierer
 
 Beiträge: 275 Registriert: 11.11.2001 awinformatik - individuallösungen rund um me10. - pc-steuerungen.
|
erstellt am: 29. Jun. 2004 11:13 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom R
Zitat: Original erstellt von Tom R: weil dabei alle Elemente ins selbe Teil befördert werden.
hi tom das stimmt so nicht. die teile bleiben wo sie sind. nur beim ausdruck wird die gesamte struktur zerstört. ich habe für eine firma in der schweiz eine macrolösung geschrieben die fast nur auf hidden line aufbaut und das funzt einwandfrei. einzig beim drucken muss was geschrieben werden damit die zeichnung anschliessend gelöscht wird damit nicht aus versehen die zerstörte nochmals gespeichert werden kann. gruss aus finsterhennen
------------------ awi André Weidmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 29. Jun. 2004 11:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ach so, dann habe ich die entsprechende Passage aus der Hilfe falsch verstanden: "1. ANZEIGE-Modus: zeigt die Baugruppe mit verdeckten Linien am Bildschirm an, ohne die verdeckten Linien zu errechnen. Die Geometrie- oder Teilestruktur wird dabei nicht verändert. Es ist deshalb möglich, z-Werte während der Erstellung zuzuordnen oder zu ändern. Änderungen sind jederzeit möglich und werden bei jedem Neuzeichnen angezeigt. 2. VERDECKTE LINIEN Erstellungs-Modus: Im Gegensatz zum Anzeige-Modus ändert der verdeckte Linien Erstellungs-Modus die Geometrie. Elemente werden aufgetrennt und die Teilestruktur wird vollständig aufgelöst. Gemeinsam benutzte Teile werden getrennt. Linienart und -Farbe können vom Benutzer festgelegt werden." Das meintest du wohl? Ich dachte, beim Anzeige-Modus wäre die Darstellung noch nicht korrekt, weil die verdeckten Linien nicht errechnet werden? Wie auch immer, ich glaube, für Rohrgebilde, die kreuz und quer im Raum liegen, die Z-Werte zu definieren (so weit es überhaupt geht), würde hier den Rahmen sprengen und die erhoffte Zeitersparnis eher ins Gegenteil verkehren. Ich könnte mir dann eher den Ansatz vorstellen, dass man in einem Makro abfragt, welche Elemente vorn liegen und anschließend welche hinten, diese dann bearbeitet und anschließend wieder alle Z-Werte auf 0 setzt. Aber wie soll ich aus einzelnen Linien automatisch Flächen erzeugen, wenn vielleicht noch offene Enden dabei sind, wenn also z. B. vom Rohr nur die zwei parallelen Konturlinien angegeben werden und kein Anfang und Ende...? Ich glaube, diese Aufgabe käme für mich noch etwas zu früh.  Viele Grüße Tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
awi Mitglied Programmierer
 
 Beiträge: 275 Registriert: 11.11.2001 awinformatik - individuallösungen rund um me10. - pc-steuerungen.
|
erstellt am: 29. Jun. 2004 12:56 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom R
zeitersparnis wirkt sich vorallem dann aus wenn du eines deiner rohre verschieben, verlängern etc. willst. dann musst du nicht mehr von hand nachbessern (schmelzen und an der anderen stelle trennen) du kannst natürlich auch deinen elementen eine info zuordnen und diese erst später für das hidden-modul aktivieren. im prinzip kommst du nicht drumherum das hidenmodul einzusetzen wenn du nicht von hand trennen willst weil eine teilweise abdeckung von elementen nur mit dem hiddenline funktioniert. gruss ------------------ awi André Weidmann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 29. Jun. 2004 13:36 <-- editieren / zitieren --> Unities abgeben:         
Hai! Bisher leben wir ganz gut damit, von Hand zu trennen. Das ist auch nicht die überwiegende Arbeit. Aber wenn so eine Verrohrung ansteht, nimmt das Verschneiden schon etliche Stunden in Anspruch. Deswegen wäre uns schon damit geholfen, wenn nur die einfachen Befehle zum stutzen, strecken und Entfernen der Mitte global funktionieren würden. Allein mit dem einfachen Makro, das ich mir da gebastelt habe, spare ich schon Einiges an Zeit. Nur weiss ich eben nicht, ob bei einer bestimmten Art der Fehleingabe evtl. Gefahren lauern, die ich übersehe. Schließlich lösche ich mehrere Elemente. Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |