unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComObj, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; swApp, Part : OLEVariant; Const //Constanten bekommt man aus der Datei "swconst.bas" swDocNONE = 0; // Used to be TYPE_NONE swDocPART = 1; // Used to be TYPE_PART swDocASSEMBLY = 2; // Used to be TYPE_ASSEMBLY swDocDRAWING = 3; // Used to be TYPE_DRAWING swDocSDM = 4; // Solid data manager. implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); Var PartTitle : Variant; begin Part := swApp.ActiveDoc; If part.GetType = swDocPART Then Begin // irgendwas End Else Begin ShowMessage('Kein Modell geöffnet. Es wir nun automatisch eins erstellt'); Part := swApp.NewPart; partTitle := Part.GetTitle; Part.EditRebuild; Part := swApp.ActiveDoc; End; Begin Part.InsertSketch; // skizze öffnen Part.CreateLine2 (-0.8458819302783, 26.25206527859, 0, 4.147216593478, 12.65781501933, 0); Part.ClearSelection; // Markierungen aufheben Part.InsertSketch; // skizze schließen End; end; procedure TForm1.FormCreate(Sender: TObject); begin swApp := CreateOLEObject('SldWorks.Application'); Part := swApp.ActiveDoc; swApp.visible := True; End; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin swApp := Unassigned; //Freigeben Part := Unassigned; //Freigeben end; end.