Erweiterte Module > Advanced Machining > Machining Anpassung > Creo Elements/Direct Modeling – Creo Elements/Direct Machining – Integration Kit – Bohrungsdefinition
  
Creo Elements/Direct Modeling – Creo Elements/Direct Machining – Integration Kit – Bohrungsdefinition
MACHADV-DEFINE-HOLE [Makro]
Das Bearbeitungsmodul (Machining) stellt ein LISP-Makro bereit, mit dem sich Bohrungen mit frei gestuftem Querschnitt erzeugen lassen. Der Code zum Erzeugen der Geometrie der Bohrung kann auch Toleranz- und Gewindeinformationen mit dem Modell verknüpfen.
(cad-cam-link-ui::machadv-define-hole ....)
Parameter:
Name
Datentyp
Typ
Beschreibung
:part
SEL_ITEM
Erforderliche Angabe
Das Teil, in das die Bohrung gebohrt wird.
* 
Das Makro verändert nicht die aktuellen Vorgaben für das Teil.
:axis-start-pos
GPNT3D
Erforderliche Angabe
Startposition der Bohrung, d. h. die Position, an der die Achse die Startfläche schneidet.
:axis-dir
GPNT3D
Erforderliche Angabe
Achsenrichtung der Bohrung, normalerweise die Achse des Bohrvorgangs.
:feature-name
string
optional
Der Name des Formelements, der in der Strukturliste angezeigt wird. Wenn kein Name angegeben wird oder die Einstellung auf NIL gesetzt ist, erhält das Formelement keinen Namen.
:feature-type
Schlüsselwort
Erforderliche Angabe
Zurzeit fest; die einzigen möglichen Werte sind NIL und :cad-cam-link-stepped-hole. Zu einem späteren Zeitpunkt wird eine Liste möglicher Werte bereitgestellt werden.
:constructor
LISP-Form
Erforderliche Angabe
Die Lisp-Form, die im internen sd-call-cmds ausgewertet wird, um die geometrische Darstellung der Bohrung zu erstellen sowie Gewinde zu definieren.
Weitere Informationen zu den Einschränkungen dieses Formulars finden Sie hier: documentation about sd-call-cmds. (Dieser Link ist nur in der englischen Dokumentation vorhanden).
:success
LISP-Form
Optional
Eine Lisp-Form, die ausgewertet wird, wenn das constructor-form keinen Fehler verursacht.
Dieses Formular wird als success-form in dem sd-call-cmds ausgewertet, das zur Auswertung des constructor-form herangezogen wird. Während der Auswertung des success-form ist die globale Variable *SD-ACTION-RESULT* an das Aktionsergebnis der letzten Aktionsroutine gebunden, die im constructor-form aufgerufen wurde.
:failure
LISP-Form
Optional
Eine Lisp-Form, die ausgewertet wird, wenn constructor-form einen Fehler verursacht. Dieses Formular wird als failure-form in dem sd-call-cmds verwendet, das zur Auswertung des constructor-form herangezogen wird. Weitere Informationen zum Fehlerformular finden Sie hier: documentation about sd-call-cmds. (Dieser Link ist nur in der englischen Dokumentation vorhanden).
Einschränkungen:
Sämtliche Einschränkungen, die für sd-call-cmds gelten, sind auch hier gültig.
Die Querschnittskontur muss
aus geraden Linien bestehen, die in zylindrischen und konischen Flächen sowie ebenen Unterflächen resultieren.
einen Körper erzeugen (wie zur Erstellung eines Objekts durch Drehung).
Reale Bohrungen erzeugen, d. h. sie muss bei gekrümmten Start- oder Endflächen weit genug ausgedehnt werden.
Der Vorgang zur Erzeugung einer Bohrung ist für die Erstellung verschiedener Formelemente wie zusätzlicher Nuten für O-Ring-Dichtungen nicht zulässig
Fasen müssen mit dem Befehl CHAMFER erstellt werden, wenn sie als Fasen exportiert werden sollen. Das einfache Erstellen der Form einer Fase überträgt den Kegel als Kegel.
Für zukünftige Versionen (es steht noch kein Datum fest) ist die Unterstützung von Verrundungen geplant, wobei jedoch dieselben Einschränkungen wie für Fasen gelten.
Abb. 1: Unterstützte Kontur
Abb. 2: Bohrspitze kann in das Material schneiden
Abb. 3: Ungültig wegen Hinterschnitt
Abb. 4: Ungültig wegen Trennung in zwei Bohrungen
Abb. 5: Ungültig wegen Freistichen
Abb. 6: Ungültig wegen zusätzlicher Nut
Abb. 7: Ungültig wegen zusätzlicher Verrundungen
Abb. 8: Ungültig wegen konischer Bohrung
Beispiel
In dem folgenden Beispiel, das aus einem sd-def-Dialog extrahiert wurde, wird eine Stufenbohrung mit den Durchmessern 40, 20 und 40 erstellt, wobei anschließend 4 Fasen erzeugt werden.
:ok-action

'(let* ((part (sd-inq-curr-part))
(axis-start-pos origin)
(axis-dir 0,0,-1)
(feature-name)
(feature-type)

(poly_points '(0,0 60,0 60,20 50,20 50,10 10,10 10,20 0,20 :close))
)

(cad-cam-link-ui::machadv-define-hole

:part (oli::sd-inq-curr-part)

:axis-start-pos axis-start-pos
:axis-dir axis-dir

:feature-name feature-name

:feature-type feature-type
:constructor
`(let (
(curr-wp (sd-inq-curr-wp))
(geo-mode (sd-inq-geometry-mode))
)

(unless (eq geo-mode :real)
(geometry_mode :real)
)
(create_workplane
:new :pt_dir

:origin ,axis-start-pos

:normal :x :u_dir ,axis-dir
)

(apply #'polygon ',poly_points)

(bore :axis ,axis-dir :turn_angle (* 2.0 pi))

(chamfer :check :dist_angle
(sd-vec-add ,axis-start-pos

20,0,0) :new_angle_dist 1 45
(sd-vec-add ,axis-start-pos

10,0,-10) :new_angle_dist 2 45
(sd-vec-add ,axis-start-pos

10,0,-50) :new_angle_dist 3 45
(sd-vec-add ,axis-start-pos

20,0,-60) :new_angle_dist .5 45
)

(delete_3d (sd-inq-curr-wp))

(when curr-wp (CURRENT_WP curr-wp))

(unless (eq geo-mode :real)
(geometry_mode geo-mode)
)
)
)
)