Announcement

Collapse
No announcement yet.

SolidEdge Makro-Programmierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SolidEdge Makro-Programmierung

    Hi,

    ich programmiere gerade Makros für SolidEdge, was auch soweit ganz prima klappt. Nur bei einer Funktion kriege ich die Übergabe des Arrays "SeProfile" nicht hin. Vielleicht kann ja jemand helfen?!

    Auszug aus dem SolidEdge-SDK:

    <PRE>
    Dim objModel As SolidEdgepart.Model
    Dim objProfile(1 To 2) As SolidEdgepart.Profile

    Set objProfile(1) = objDoc.ProfileSets.Add.Profiles.Add(objDoc.RefPlan es(3))

    Set objModel = objDoc.Models.AddFiniteExtrudedProtrusion(NumberOf Profiles:=1, _
    profileArray:=objProfile, profileplaneSide:= _
    igRight, ExtrusionDistance:=0.05)
    </PRE>

    Meine Umsetzung in Delphi:

    <PRE>
    var
    SeModel: OleModel;
    SeProfile: OleVariant;

    begin
    SeProfile := VarArrayCreate([1,2], varVariant);
    SeProfile[1] := SeDoc.ProfileSets.Add.Profiles.Add(SeDoc.RefPlanes .Item(3));
    SeModel := SeDoc.Models.AddFiniteExtrudedProtrusion(1, SeProfile, igRight, 0.05, 0, 0, 0, 0);
    </PRE>

    Definition der Funktion aus der übernommenen TLB:

    <PRE>
    Models = dispinterface
    ['{49852F8C-A403-11CE-818E-0800363A1E02}']
    function Item(Index: OleVariant): Model; dispid 0;
    function AddBodyFeature(const ImportFileName: WideString): Model; dispid 202;
    function AddFiniteExtrudedProtrusion(NumberOfProfiles: Integer;
    var ProfileArray: {??PSafeArray}OleVariant;
    ProfilePlaneSide: FeaturePropertyConstants;
    ExtrusionDistance: Double;
    KeyPointOrTangentFace: OleVariant;
    KeyPointFlags: OleVariant; FromSurfOrRefPlane: OleVariant;
    ToSurfOrRefPlane: OleVariant): Model; dispid 233;
    </PRE>

    Mfg Uwe

  • #2
    Korrektur:
    bei "SeModel: OleModel;" steht natürlich "SeModel: OleVariant;"

    Uw

    Comment

    Working...
    X