Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Assembly über API(VB)

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
  
Profitieren Sie von 3DEXPERIENCE® und beschleunigen Sie Ihre Simulationen
Autor Thema:  Assembly über API(VB) (1050 mal gelesen)
joohwa
Mitglied
studentin


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

Beiträge: 13
Registriert: 06.03.2006

erstellt am: 09. Mrz. 2006 15: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

Hallo

habe ein Problem, und zwar Assembly über API.schon ein sldprt-datei
in solidworks geladen.  da kommt immer eine Meldung.  Das heißt, objektvariable nicht festgelegt. oder
manchmal syntaxfehler.
wie kann ich tun weiter.


das ist mein Macro.(visual basic)
-----------------------------------------------------------------
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim AssemblyDoc As Object

Sub main()

Const x = 0

Const y = 10

Const z = 10

Set swApp = CreateObject("SldWorks.Application")

Set Part = swApp.ActiveDoc

swApp.Visible = True

retval = AssemblyDoc.AddComponent("C\Dokumente und Einstellungen\MA\Eigene Dateien\HIWI\SolidWorks\Greifer1.sldprt", x, y, z)

End Sub


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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 09. Mrz. 2006 15:17    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 joohwa 10 Unities + Antwort hilfreich

Im Makro ist retval nicht definiert und hinter dem Laufwerksbuchstaben C im Pfad fehlt ein Doppelpunkt...

------------------
Lutz Federbusch
Mein Gästebuch

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

joohwa
Mitglied
studentin


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

Beiträge: 13
Registriert: 06.03.2006

erstellt am: 09. Mrz. 2006 15: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

hallo lutz

danke für deinen Hinweis. nach dem c : habe ich zugeführt.
aber ich weiss nicht wie man retval definiert.
oddr ohne retval kann ich assembly führen?
Kannst du noch mal ein Tipp geben?

Danke aus Stutt

[Diese Nachricht wurde von joohwa am 09. Mrz. 2006 editiert.]

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

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



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

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 09. Mrz. 2006 15:31    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 joohwa 10 Unities + Antwort hilfreich

Schreibe mal unter die anderen Dim-Zeilen noch diese:
Dim retval as boolean
Damit definierst Du eine boolsche Variable, die die Werte True oder False haben kann und Dein AddComponent gibt solch einen Wert je nach Erfolg der Operation zurück. Bekommst Du nun eine andere Meldung oder geht es jetzt?!

------------------
Lutz Federbusch
Mein Gästebuch

[Diese Nachricht wurde von Lutz Federbusch am 09. Mrz. 2006 editiert.]

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

joohwa
Mitglied
studentin


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

Beiträge: 13
Registriert: 06.03.2006

erstellt am: 09. Mrz. 2006 15:34    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 Lutz

aber bei retval bekomme eine Meldung.
objektvariable nich festgelegt.
wie kann ich weiter?

danke für deine sofortige antwort!!

Gruss joohwa
------------------------------------------
retval = AssemblyDoc.AddComponent("C:\Dokumente und Einstellungen\MA\Eigene Dateien\HIWI\SolidWorks\Greifer1.sldprt", x, y, z)

-----------------------------

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

Oberparleiter
Mitglied
Konstrukteur


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

Beiträge: 706
Registriert: 06.06.2000

Celsius R630, P4 Xeon 3,2
3GB Ram, 2x24" an FX3500
U320 SCSI,
SWX 2011 SP4.0
WinXP SP3
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wirs nicht wagen, ist es schwer.

erstellt am: 09. Mrz. 2006 15:51    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 joohwa 10 Unities + Antwort hilfreich

Hallo

Entweder noch das "AssemblyDoc" durch "Part" ersetzen oder das "Part" durch "AssemblyDoc"

Dann natürlich noch einen Neuaufbau (retval = ModelDoc2.EditRebuild3 ( )) damit die Änderungen angezeigt werden.

Müsste dann so aussehen:

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim AssemblyDoc As Object
Dim retval as Boolean

Sub main()

Const x = 0

Const y = 10

Const z = 10

Set swApp = CreateObject("SldWorks.Application")

Set Part = swApp.ActiveDoc

swApp.Visible = True

retval = Part.AddComponent("C:\Dokumente und Einstellungen\MA\Eigene Dateien\HIWI\SolidWorks\Greifer1.sldprt", x, y, z)

retval = Part.EditRebuild3 ()

End Sub


------------------
Gruss Frank O.

[Diese Nachricht wurde von Oberparleiter am 09. Mrz. 2006 editiert.]

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

joohwa
Mitglied
studentin


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

Beiträge: 13
Registriert: 06.03.2006

erstellt am: 09. Mrz. 2006 16:02    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 Hinweis

Deine macro habe probiert, aber hauptproblem ist immer bei retval addomponent.Da kommt immer selbe meldung.

was ist problem? syntax?

gruss Joohwa

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

Oberparleiter
Mitglied
Konstrukteur


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

Beiträge: 706
Registriert: 06.06.2000

Celsius R630, P4 Xeon 3,2
3GB Ram, 2x24" an FX3500
U320 SCSI,
SWX 2011 SP4.0
WinXP SP3
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wirs nicht wagen, ist es schwer.

erstellt am: 09. Mrz. 2006 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 joohwa 10 Unities + Antwort hilfreich

Also genau dieses Proggi geht bei mir.

Es muss eine neue Baugruppe offen und Activ sein. Der Greifer muss auch im Hintergrund offen sein.

x,y und z würde ich aber zuerst auf 0 setzen da das Teil ausserhalb der Anzeige eingefügt wird.
Stimmt der Pfad von dem Greifer vielleicht nicht?

------------------
Gruss Frank O.

[Diese Nachricht wurde von Oberparleiter am 09. Mrz. 2006 editiert.]

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

joohwa
Mitglied
studentin


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

Beiträge: 13
Registriert: 06.03.2006

erstellt am: 09. Mrz. 2006 16:22    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 deine Hilfe. Endlich erfolgriech gegangen.

Jetzt würde ich 2 Teile in  Baugruppe laden.

Da  habe ich hinter retval von addcomponet.

retval = Part.AddComponent("C:\Dokumente und Einstellungen\MA\Eigene Dateien\HIWI\SolidWorks\bitte_schokoeier1.sldprt", x, y, z)

auch dazu geschrieben. aber der zuerst genannte Teil d.h Pulver ist
nicht sichtbar. aber die 2 Teile sind geladen.

wie kann ich wieter tun?

gruss Joohwa

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 10. Mrz. 2006 07:51    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 joohwa 10 Unities + Antwort hilfreich

Hallo Joohwa

versuch es mal mit dem angefügten Code
Du musst nur den Dateinamen anpassen
Zur Erklärung:
in Deinem Makro wird der Variablen "AssemblyDoc" kein Wert zugeordnet,
also kannst Du sie auch nicht bei "AssemblyDoc.AddComponent" verwenden.

Grüße
Heinz


' Teil in Baugruppe einfügen
' Voraussetzungen:
'  Eine Baugruppendatei ist geöffnet und aktiv
'  Das Bauteil ist geladen

Sub main()
  Dim swApp As Object
  Dim boolstatus As Boolean
  Dim AssemblyDoc As Object
 
  Const x = 0
  Const y = 10
  Const z = 10

  Set swApp = CreateObject("SldWorks.Application")
  swApp.Visible = True
 
  Set AssemblyDoc = swApp.ActiveDoc
   
  boolstatus = AssemblyDoc.AddComponent("E:\dd\00012437.SLDPRT", x, y, z)
  If boolstatus = False Then
    MsgBox "Teil konnte nicht eingefügt werden!", vbOKOnly, "Fehler"
    Set AssemblyDoc = Nothing
    Set swApp = Nothing
    Exit Sub
  End If
 
  ' Rebuild (damit das einfeügte Teil sichtbar wird)
  boolstatus = AssemblyDoc.ForceRebuild3(False)
 
  ' Zoom to Fit
  AssemblyDoc.ViewZoomtofit2
 
End Sub

------------------
Grüße
Heinz

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