Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  3-Punkte-Kreisbogen aus Datei einlesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   3-Punkte-Kreisbogen aus Datei einlesen (324 mal gelesen)
GMura
Mitglied
Entwicklungsingenieur

Sehen Sie sich das Profil von GMura an!   Senden Sie eine Private Message an GMura  Schreiben Sie einen Gästebucheintrag für GMura

Beiträge: 3
Registriert: 25.10.2018

erstellt am: 30. Okt. 2018 13:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

Ich würde gerne über ein Makro aus einer Datei Koordinaten einlesen und daraus 3-Punkte-Kreisbögen erzeugen.

Über den Befehl

boolstatus = Part.InsertCurveFile("C:\Users\...\Kurve.txt")

kann ich zwar Koordinaten einlesen und durch diese eine Kurve zeichnen, diese entspricht aber nicht zwingend einem Kreisbogen.

Der Befehl

Set skSegment = Part.SketchManager.Create3PointArc(1, -1, 0, 1, 1, 0, 0, 0, 0)

zeichnet mir zwar einen Kreisbogen nach vorgegebenen Koordinaten, aber ich habe davon so viele, dass es mühsam ist diese entsprechend aufzubereiten und immer in das Makro zu schreiben. Daher meine Frage, ob man beides kombinieren kann.

Ich habe leider bisher nichts ähnliches gefunden und bedanke mich jetzt schon für eure Hilfe.

Folgende Version von SolidWorks ist installiert: SolidWorks Professionell 2016 SP 3.0

Grüße,

Gregor Mura

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 645
Registriert: 18.05.2005

SolidWorks 2018 x64 SP4.0
Dell T3600 Workstation
Intel XENON 6x3.2 GHz
NVIDIA Quadro 4000 2 GB
16GB RAM
2x Dell U2412M, 24" TFT
Windows 7 Professional x64 SP1
Microsoft Office Pro 2010 SP2
Kaspersky Anti-Virus 10.2.4.674
Microsoft VB 2010 Express
SpacePilot von 3Dconnexion

erstellt am: 30. Okt. 2018 17:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GMura 10 Unities + Antwort hilfreich

Hallo Gregor
Schau dir dies einmal an.
SolidWorks MakroMania - 3D Punktwolke einlesen
Punkte in 3D-Skizze automatisch verbinden

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GMura
Mitglied
Entwicklungsingenieur

Sehen Sie sich das Profil von GMura an!   Senden Sie eine Private Message an GMura  Schreiben Sie einen Gästebucheintrag für GMura

Beiträge: 3
Registriert: 25.10.2018

erstellt am: 07. Nov. 2018 07:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Fehlermeldung.png

 
Hallo,

vielen Dank für die Hilfe. Das Makro als solches funktioniert prima, auch die Änderung zur Erzeugung von Linien, wie im zweiten Link beschrieben.

Leider funktioniert das mit dem Befehl "Create3PointArc" nicht (siehe Fehlermeldung). Ich kann mir diesen Fehler leider nicht erklären, da "point" bereits als "Object" deklariert ist.

Im Debug-Modus kann ich aber feststellen, dass alle Variablen (X1, Y1, Z1, X2, Y2, Z2, x, y, z) mit den richtigen Werten belegt sind.

Ob ich jetzt über eine If- oder eine Select Case-Bedingung versuche die Kreisbögen zu zeichnen, stellt keinen Unterschied dar.

Hat jemand von euch eine Idee woran es liegen könnte? Mit der Makro-Programmierung in SolidWorks beschäftige ich mich seit ca. einer Woche und sehe vermutlich auch nicht die offensichtlichsten Fehler.


Weiterhin habe ich ein zweites Problem festgestellt:

Benutze ich den Befehl Creat3PointArc und gebe ihm feste Werte für einen einzelnen Kreisbogen vor, so sehe ich gerade keine Logik wonach er den Kreisbogen zeichnet:

"Set skSegment = Part.SketchManager.Create3PointArc(-100, 0, 0, 100, 0, 0, 0, -25, 0)"
zeichnet einen Kreisbogen, der genau durch diese Punkte verläuft.

"Set skSegment = Part.SketchManager.Create3PointArc(-100, 0, 0, 100, 0, 0, 0, 25, 0)"
zeichnet allerdings nahezu einen Vollkreis, im dem genau das vorgegebene Teilstück ausgelassen wird. Muss Solidworks da eine Art Orientierung vorgegeben werden? Oder wonach richtet sich dort die Logik?

Vielen Dank für eure Hilfe, Ideen und Denkanstöße im Voraus!

Gruß,

Gregor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

Beiträge: 2105
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 07. Nov. 2018 09:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GMura 10 Unities + Antwort hilfreich

Zitat:
... Ich kann mir diesen Fehler leider nicht erklären, da "point" bereits als "Object" deklariert ist.
...
"Set skSegment = Part.SketchManager.Create3PointArc(-100, 0, 0, 100, 0, 0, 0, -25, 0)"
...

Moin,

wird das besser, wenn du im Makro den SketchManager mit reinnimmst?
- bei der Fehlermeldung sehe ich "modeldoc2.create..."
- im anderen Beispiel hast du "Part.SketchManager.Create...."

Gruß, Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

GMura
Mitglied
Entwicklungsingenieur

Sehen Sie sich das Profil von GMura an!   Senden Sie eine Private Message an GMura  Schreiben Sie einen Gästebucheintrag für GMura

Beiträge: 3
Registriert: 25.10.2018

erstellt am: 07. Nov. 2018 10:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

tatsächlich hat es geholfen aus "modeldoc2.creat.." ein "modeldoc2.SketchManager.create..." zu machen.

Vielen Dank!

Leider bleibt noch das zweite beschriebene Problem:

SolidWorks nimmt die Punkte und zieht einen Kreisbogen, der genau den dritten Punkt auslässt.
Kennt jemand die Lösung dafür?

Gruß,

Gregor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

Beiträge: 2105
Registriert: 04.04.2001

SWX 2016sp5 WIN7-64
proAlpha6.2e/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19) CSWP 12/2015

erstellt am: 07. Nov. 2018 13:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für GMura 10 Unities + Antwort hilfreich

Kennen nicht,
aber es gibt wohl einen Call, dass die Richtung nicht die erwartete ist, wenn man "Sketchmanager.AddToDB" auf true stellt.

vielleicht ist es eindeutiger, wenn du die "alte" Funktion create3PointArc (ohne Sketchmanager) benutzt?
Rückgabewert ist dann aber ein Boolean, nicht Objekt!
(siehe api-help Create3PointArc Method (IModelDoc2))

Gruß, Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2018 CAD.de | Impressum | Datenschutz