|
SolidWorks : API: Koordinatensystem erstellen in Teil
jens_oliver am 22.01.2008 um 10:49 Uhr (0)
bin mir nicht sicher ob ich alles richtig verstanden habe, aber vieleicht hilft es ja.Die Position und Ausrichtung des Standardkoordinatensystem der Bauguppe erhälst du mit ModelDocExtension.GetCoordinateSystemTransformByName ( nameIn).Erzeugst du das Koordinatenssytem(CS) im Bauteil mit dieser Transformationsmatrix liegt das CS nicht an der richtigen Stelle, da das Bauteil in der Baugruppe (Instanz,Component) ja verschoben und verdreht sein kann. Die Lage und Ausrichtung (Transformationmatrix) des Bauteil ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Makro Frage
jens_oliver am 02.11.2005 um 10:26 Uhr (0)
Hallo,hier ein paar Anmerkungen.AddMate verknüpft die beiden selektierten Feature.Im Makro vielleicht die beiden Feature selektierenKonstanten über den Namen ansprechenswMateCOINCIDENT und nicht den Integer Wert (Wert kann sich bei Versionswechsel vielleicht ändern)Bauteile zuerst positionieren wenn man swMateAlignCLOSEST (flip=FALSE) benutzt.(z.B. zwei Koordinatensysteme zur Deckung bringen)Wenn man die Bauteile (Instanzen) nicht positioniert gibt es zwei Lösungen (flip=FLASE oder TRUE). Welche Richtig is ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : API: Grundsätzliches
jens_oliver am 29.01.2008 um 09:32 Uhr (0)
hi,ja aber die Methode gehört zum Objekt und ist keine Funktion. Wenn du "Early Binding" (dim swapp as sldworks.sldworks) benutzt weiß das Programm es schon während des kompilierens. Es gibt dir auch eine Fehlermeldung aus, wenn die Methode nicht existiert. Wenn du einen Punkt nach dem Objekt eintippst schlägt dir der Editor auch alle möglichen Methoden und Member vor.Beim "Late Binding" wird das Objekt erst zur Laufzeit definiert/erzeugt. Somit wird beim kompilieren nicht überprüft ob die Methode für das ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Frage zur SolidWorks-API (put_Transform2)
jens_oliver am 11.08.2008 um 18:20 Uhr (0)
Hallo Jörg,manchmal sind diese matrizen etwas störrisch. ich würde erstmal alle verknüfungen an dem bauteil löschen, falls es denn welche hat. dannach würde ich mit GetTotalTransform(TRUE, &pPosition) und GetTotalTransform(FALSE, &pPosition) mir die matrizen mal anschauen und dann schritt für schritt diese mal ändern oder zuerst einfach mal die einheitsmatrix übergeben mit position auf (0,0,0). Dannach mal ein wenig verschieben und erst am ende die rotation mit reinbringen.oder am ende nochmal GetTotalTra ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : SWX_API: Koordinaten umrechnen
jens_oliver am 28.11.2008 um 09:21 Uhr (0)
hi,die frage ist ja, was sw gerade anzeigt. wenn du den punkt in der zeichnung(ansicht) erstellt hast stehen dort die koordinaten bezogen auf deine zeichnung. da die skizze zur zeichnung gehört, kannst du mitSet swActiveView = Model.ActiveDrawingViewSet swViewSketch = swActiveView.GetSketchSet MathTrans = swViewSketch.ModelToSketchTransformdir die koordinaten berechnen.wurde der punkt aber im 3d erstellt, stehen dort die koordinaten bezogen auf den ursprung des bauteils.liest du den punkt aus, bekommst du ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : API: Linenanfang in Skizze
jens_oliver am 05.08.2008 um 17:08 Uhr (0)
bei den punkten einfach die einzelnen werte vergleichen. allerdings immer mit einer genauigkeit. Code: beispiel in C# (kein VB) public static bool arePointsEqual(Point p1,Point p2) { double acc=0.00000001; if ( Math.Abs(p1.x-p2.x)acc) { return(false); } if ( Math.Abs(p1.y-p2.y)acc) { return(false); } if ( Math.Abs(p1.z-p2.z)acc) { return(false); } return(true); }schleifen über die skizzenelementeCode:for i=0 to anzahl sketchelemente punkt p1=startpunkt von sketchelemen(i) p ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Ref-Ebene, Ausrichtung der Achsen
jens_oliver am 18.06.2009 um 09:39 Uhr (0)
hallo tobi, Zitat:Brauche diese Regel um per API zu wissen wie die Achsen in der Ebene liegen.es kann sein, dass es gar keine lösung gibt. denn eine ebene wird ja gerne in der Normalenform (Hessesche Normalenform) abgespeichert. die ausrichtung der skizze kann auch noch von anderen faktoren abhängig sein. z.B. die blickrichtung oder ausrichtung des bauteils usw. allerdings bietet dir die api ja eine transformationsmatrix der ebene an. (RefPlane::Transform)in der matrix steckt zusätzlich zur normalen eine a ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Makro über alle Konfigurationen
jens_oliver am 09.09.2008 um 14:56 Uhr (0)
Hi,Beispiel ist aus der API Hilfe. ( hätte man finden können. )Get List of Configurations Example (VB)This example shows how to get a list of configuration names for the active document.----------------------------------------Code:Option ExplicitSub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim vConfigName As Variant Dim sConfigName As String Dim swConfig As SldWorks.configuration Dim i As Long Dim bRet As Boolean ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Selektion von Flächen über ID (API)
jens_oliver am 01.08.2008 um 15:17 Uhr (0)
hi,denke aber nicht, dass es am speicher liegt.habe mal eine kleines testmakro geschrieben. leider habe ich kein bauteil mit 15000 flächen, daher die for-schleife. bei 70000 flächen war das makro aber innerhalb einer sekunde fertig. Code:Sub main()Dim swFaceArr() As SldWorks.Face2Dim count As LongDim i As IntegerSet swApp = Application.SldWorksReDim swFaceArr(0)count = 0 Set swModel = swApp.ActiveDoc Set swPart = swModel Set swSelMgr = swModel.SelectionManager Set swSelData = swSelMgr.CreateSelect ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : Punkte von Spline exportieren
jens_oliver am 11.07.2008 um 18:10 Uhr (0)
hallo,ich denke mit einem makro kann man das recht einfach lösen.Code:Set swModel = swApp.ActiveDocSet swSelMgr = swModel.SelectionManagerSet swSketchSeg = swSelMgr.GetSelectedObject5(1)Set swCurve = swSketchSeg.GetCurve swCurve.GetEndParams nStartParam, nEndParam, bIsClosed, bIsPeriodicvstartold = nStartParam steps = 100For i = 1 To steps nextstep = (i * (-nStartParam + nEndParam)) / steps + nStartParam vStart = swCurve.Evaluate(nextstep) length = swCurve.GetLength2(vstartold, nextstep) MsgBo ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : API - Spaltmessung Problem
jens_oliver am 24.06.2009 um 15:50 Uhr (0)
was liefert denn face2.normal?einen vektor der von 0,0,0 zu einem punkt auf der ebene(fläche) geht, natürlich normal steht und ein bestimmte länge hat aber nicht die materialrichtung angibt?odereinen einheitsvektor (länge 1) der normal zur ebene liegt, weg vom material?ich glaube ja die funktion liefert den einheitsvektor mit der materialrichtungsinformation. und mit diesem vektor hast du alle informationen, bis auf den abstand.oder was meinst du mit "position der flächen"?edit: sollte doch erstmal nachden ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : NACA Flügelprofile
jens_oliver am 01.11.2007 um 14:04 Uhr (0)
Hallo Holger,die Dicke des Profils an der Stelle x kannst du ja berechnen mit der Formelyt=t/0.2*(0.2969*Sqrt(x)........) s. LinkAllerdings steht die Dicke senkrecht auf der Skelettlinie. Du benötigst also noch die Steigung oder den Winkel der Skelettlinie an der Stelle x. teta=arctan(dy/dx) s.LinkMit Hilfe der Steigung und der Dicke kannst du dann die beiden Punkte berechnen.xu=x.yt*sin(teta)yu=....Hat das Profil eine große Wölbung, bin ich mir aber nicht sicher, ob die Dicke wirklich an der Stelle x bere ...
|
| In das Form SolidWorks wechseln |
|
SolidWorks : API: Linenanfang in Skizze
jens_oliver am 05.08.2008 um 16:16 Uhr (0)
irgendwie verstehe ich den Code nicht. Nimmst du jetzt nicht einfach den punkt, der im globalen Koordinatensystem den kleinsten x-wert hat? bei einer offenen kontur gibt es zwei punkte, die in allen sketchelementen nur einmal vorkommen. alle anderen punkte sind doppelt.man kann also eine schleife über alle skizzenelement programmieren und dann die beiden punkte (start und end) mit allen anderen punkten der andere skizzenelemente vergleichen. dabei wird es halt genau zwei punkte geben die nur in einem s ...
|
| In das Form SolidWorks wechseln |