Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  part Teil an Koordinaten setzen

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 SolidEdge
Autor Thema:  part Teil an Koordinaten setzen (1094 mal gelesen)
immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 31. Aug. 2007 09:59    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 habe eine Kugel als part-Datei bereits erstellt.
Nun möchte ich sie an bestimmte x,y,z Koordinaten setzen bzw. ich habe eine Textdatei mit diesen Werten.
Aus einem Beispiel konnte ich schon mit
Code:
Part.CoordinateSystems.Add(XCoord, YCoord, ZCoord, 0, 0, 0)
die Koordinatenanzeige positionieren.
Wie bekomme ich nun die Kugeln dorthin? Am Besten mit ihrem Kugelmittelpunkt.
Am Ende sollte eine Art "schwebende Perlenkette" zu sehen sein.
Wenn ich mir dann daraus 2D-Ansichten generieren lasse, möchte ich Abstände zwischen den Kugeln messen können (ergo zwischen Kreismittelpunkten).
Es kann auch ein anderes Element als die Kugel sein; dachte ursprünglich an ein Symbol, aber die gibt es nur in Draft.

Danke für anregende Hinweise. Ich verwende SE V12.

------------------
Gruß Torsten

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

kmw
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 4304
Registriert: 26.02.2002

Wer lesen kann, versteht was er liest, und danach handelt ist anderen gegenüber klar im Vorteil.
Intel® Core i9-9900 @ 8x 5.0GHz,80GB DDR4-RAM 3200MHz,nVidia GeForce RTX 4080, MS Windows 10 64Bit, Solid Edge Premium Version 220.00.09.004 x64, German (ST20MP9).
M$ Surface Book, i7-6600@2.81 Ghz, 16Gb, 512 SSD, Win10 creators upd.
Fairphone 4 5G mit Android 11 mit SE-Mobile Viewer ;)

erstellt am: 31. Aug. 2007 10:07    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 immelmann 10 Unities + Antwort hilfreich

Mit der Funktion Kurve über Tabelle kannst du aus einer Tabelle eine Kurve im Part erstellen. (wer hätte das gedacht ?).

Damit hast du deine 3d Geometriedaten in SE vorliegen.
Du kannst dann im Assembly auf die Punkte Kugeln verbauen, zbsp. mit der Punktbeziehung, falls das noch notwändig ist und dann dein Part mit der Kurve ausblenden. Möglicherweise reicht die Kurve aber auch so schon.

Ach V12.. hm. Kurve über Tabelle gibts da noch nicht. Upgrade doch auf V19.
Weiß gar nicht warum so viele Leute mit total veralteten Versionen arbeiten müssen.

[Diese Nachricht wurde von kmw am 31. Aug. 2007 editiert.]

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

immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 31. Aug. 2007 10:13    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

Danke für Dein schnelles Feedback.
"Kurve über Tabelle" ist in Part zu finden?

Ich vergaß noch zu erwähnen, dass das alles per VB geschehen soll :-)

------------------
Gruß Torsten

[Diese Nachricht wurde von immelmann am 31. Aug. 2007 editiert.]

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

immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 31. Aug. 2007 10:23    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

Deswegen noch V12, da wir diese als "akademisch" nutzen und für gelegentliche 3D Darstellungen und Konstruktionen für unsere Belange (noch) ausreicht.

------------------
Gruß Torsten

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

modeng
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 31. Aug. 2007 10: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 Nur für immelmann 10 Unities + Antwort hilfreich

Moin,

wurde alles schon mal gemacht:
http://www.incobase.de/Download_Soft.html#vispoints

muesste auch in der V12 laufen allerdings nur in der asm

modeng

------------------
Unser Unwissen erobert immer weitere Welten. (S.J. Lec)

[Diese Nachricht wurde von modeng am 31. Aug. 2007 editiert.]

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

immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 31. Aug. 2007 15:42    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

@modeng
danke für den Link, ist genau das, was mir vorschwebt.

Allerdings braucht das Programm 30' für 1500 Punkte - zu lange, um meine Punkte > 20000 darzustellen.
Dauert das deswegen solange, weil ich in Assambly die kugel.par jedesmal als Referenz lade?
Ist es besser, programmgesteuert die Kugel über ein Profil und Rotationsausprägung zu generieren? (das braucht dann nur in Part zu passieren)

------------------
Gruß Torsten

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 31. Aug. 2007 16: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 Nur für immelmann 10 Unities + Antwort hilfreich

@immelmann,

ich sage nur Stichwort: "objSeApp.DelayCompute = True". Damit lassen sich per Programm in Solid Edge vorgenommene Objekterzeugungen größeren Umfangs i.d.R. massiv beschleunigen.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 31. Aug. 2007 16: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

@wksyspro
das beschleunigt ja richtig gut!
Beobachte jedoch, dass das Einlesen resp. Erstellen in Assembly nicht linear erfolgt, sondern "schwungweise", d.h. es tritt dann erstmal eine kurze Pause ein. Aktuell hat er in 5' 5000 Punkte eingelesen und es wird langsamer, d.h. in 2s ca. 10 Pkte.
Ich poste mal die Schleife, vielleicht kann man da noch etwas optimieren
Code:
  Set Assy = objSE.ActiveDocument
  Set UOM = Assy.UnitsOfMeasure

  anz = UBound(arrKoord)
  objSE.DelayCompute = True
 
  For i = 0 To anz
      XCoord = UOM.ParseUnit(igUnitDistance, arrKoord(i, 0))
      YCoord = UOM.ParseUnit(igUnitDistance, arrKoord(i, 1))
      ZCoord = UOM.ParseUnit(igUnitDistance, arrKoord(i, 2))
 
      Call Assy.Occurrences.AddWithTransform(App.Path & "\kugel1.par", _
              XCoord, YCoord, ZCoord, 0#, 0#, 0#)
      Assy.Occurrences.Item(Assy.Occurrences.Count).IncludeInBom = False
      Assy.Occurrences.Item(Assy.Occurrences.Count).IncludeInPhysicalProperties = False
  Next i


PS: habe bisher nur in SmartSketch programmiert

------------------
Gruß Torsten

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

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


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

Beiträge: 7321
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 31. Aug. 2007 18: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 Nur für immelmann 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von immelmann:
[...]PS: habe bisher nur in SmartSketch programmiert
[/B]

Toll, mal jemand der SmartSketch benutzt. Schönes Programm. Schade, dass es nur so ein Nieschenprodukt geblieben ist.
Welche Version hast Du denn zurzeit im Einsatz?

------------------
APeters@BSS-Online.de

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 31. Aug. 2007 22:42    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 immelmann 10 Unities + Antwort hilfreich

@immelmann,

also ich schätze, dass das UOM.Parse jeweils für die x, y und z Werte recht viel Zeit schluckt. Besser wäre es sicherlich, wenn das Array die Koordinatenwerte in [m] bereits enthalten würde, so dass sie direkt ohne das UOM Objekt verwendbar sind.
Sehr schlecht für die Performance ist es auch Objekte jeweils über Objekt.SubObjekt.SubSubObjekt anzusprechen. Besser ist es, ausserhalb der Schleife den Verweis auf das gewünschte Objekt direkt einer eigenen Objektvariablen zuzuweisen und diese Variable innerhalb der Schleife zu verwenden.
Die Bestimmung des Index über die Count Eigenschaft ist sicher ein weiteres Bremselement. Ich würde die Zuweisung der beiden Eigenschaften in einer nachfolgenden ForEach-Schleife machen.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

[Diese Nachricht wurde von wksyspro am 31. Aug. 2007 editiert.]

[Diese Nachricht wurde von wksyspro am 31. Aug. 2007 editiert.]

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 03. Sep. 2007 11:50    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 immelmann 10 Unities + Antwort hilfreich

@immelmann,

ausser den zuvor genannten Optimierungen kannst Du noch die objSeApp.ScreenUpdating=False Eigenschaft zur Performancesteigerung und Vermeidung von Bildschirmflackern verwenden.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

immelmann
Mitglied


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

Beiträge: 6
Registriert: 30.08.2007

erstellt am: 03. Sep. 2007 13:35    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

@Arne
Benutze die Version 4 mit SP5

@Wolfgang
Danke für Deine Vorschläge. Hier nun das Feedback.
Habe nach 1000 Punkten die Schleife abgebrochen und mir die Zeit ausgeben lassen.
Obige Veriante: 23,6 s
ohne UOM-Objekt: 22,8 s
Zuweisung über Objektvariablen: 20,8 s
beide .Count hinter For-Schleife: 15,8 s
ScreenUpdating bringt in diesem Fall nichts, da ich das aus der VB-IDE starte und SE somit verdeckt ist.

Fazit: für 1000 Werte ein Zeitgewinn von knapp 8s und bei linearer Betrachtung benötigen die 20000 Werte jetzt 5 min (vorher nur 5000 Werte in dieser Zeit).

Außerdem braucht SE genau so lange zum Schließen der Datei, wie zum Erstellen. ??

Ich werde es nun auf einen anderen Weg versuchen, indem ich über .Profile mir die Kugel zur Laufzeit generiere und nicht über eine Datei heranreferenziere.

------------------
Gruß Torsten

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