Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Linien mit einer Schleife erstellen, Sketchmanager

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
The VISUALIZER: Die gerenderte Realität
Autor Thema:  Linien mit einer Schleife erstellen, Sketchmanager (1167 mal gelesen)
Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 02. Jul. 2017 18:11    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,

ich hab da ein merkwürdiges Problem mit meinen Code, und zwar möchte ich Linien zeichnen lassen mit .CreateCenterLine welche unterschiedliche Längen und Höhen vom Koordinatenursprung haben.

Code:

For Each Typ1 In Range("G33:G155")
  If Typ1 <> "" Then
    value1(i) = Typ1
    i = i + 1
    j = i
  End If
Next
j = j - 1

For Each Abun In Range("F33:F155")
  If Abun <> "" Then
    value5(Y) = Abun
   Y = Y + 1
  End If
Next

i = 0
For i = 0 To j
Set skSegment = Part.SketchManager.CreateCenterLine((value1(i) / 2000) * -1, value5(i) / 1000, 0#, value1(i) / 2000, value5(i) / 1000, 0#)
Next i


Die einzelnen Werte für die Höhen value5(i) und Längen value1(i) werden aus einem Excel Dokument gelesen. Das Problem besteht darin, dass der Code oder SolidWorks plötzlich Linien, die nur einmal erstellt werden müssen, doppelt oder dreifach in der Skizze erstellt, anstatt andere benötigte Linien. Wenn ich mir die einzelnen Werte im Direktbereich anschaue, sind es auch die richtigen Werte, die ich für die Erstellung der Skizze brauche. Sie können es schon mal nicht sein, die den Fehler verursachen.

Also angenommen ich brauche eine erste Linie mit 100mm Länge und 10mm vom Ursprung als Höhe. Sie wird vom Code gezeichnet. Die nächste Linie aber, die 110mm haben soll, wird wieder nur 100mm lang gezeichnet, aber mit der richtigen Höhe.
Das erste Bild zeigt, was ich eigentlich haben will. Das zweite, was mein Code macht    , bin verwirrt.

Eine Idee woran das liegen könnte?

Gruß
Eugen

[Diese Nachricht wurde von Steufrit am 02. Jul. 2017 editiert.]

[Diese Nachricht wurde von Steufrit am 03. Jul. 2017 editiert.]

[Diese Nachricht wurde von Steufrit am 03. Jul. 2017 editiert.]

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

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



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

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 03. Jul. 2017 07:04    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 Steufrit 10 Unities + Antwort hilfreich

Hallo Eugen,

könnte man das ganze nicht in eine Schleife packen.

Code:

Dim Cell as Range

For Each Cell in Range ("G33:G" & Cells(Rows.Count, "A").End(xlUp).Row)
If Cell <> "" Then
value1 = Cell
value5 = ActiveCell.Offset(0,1).Value
Set skSegment = Part.SketchManager.CreateCenterLine((value1 / 2000) * -1, value5 / 1000, 0#, value1 / 2000, value5 / 1000, 0#)
Next


Den Code habe ich jetzt nicht getestet da ich mit Excell VBA nicht viel am Hut habe.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

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

Steufrit
Mitglied
Student

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

Beiträge: 7
Registriert: 19.06.2017

Solidworks 2016

erstellt am: 03. Jul. 2017 08:04    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

Morgen,

mit VBA hab ich auch nicht viel am Hut, aber gefragt hat mich leider keiner . Ich probiers aus, unabhängig davon hab ich mein Problem gelöst. Mit dem Zusatz .AddtoDB = true, und nachdem zeichnen .AddtoDB = False gehts.

Set swSketchMgr = Part.SketchManager
swSketchMgr.AddToDB = True

i = 0
For i = 0 To j
Set skSegment = Part.SketchManager.CreateCenterLine((value1(i) / 2000) * -1, value5(i) / 1000, 0#, value1(i) / 2000, value5(i) / 1000, 0#)
Next i

swSketchMgr.AddToDB = False

Gruß

Eugen

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)2024 CAD.de | Impressum | Datenschutz