Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Externe Referenzen umstellen

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
  
SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
Autor Thema:  API Externe Referenzen umstellen (322 mal gelesen)
bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 09:27    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 ihr API`ler!

Folgendes Problem, vor Weihnachten entstand folgendes Makro, damals passte alles! Makro wurde erprobt und funktionierte soweit!
Seit diesem Jahr, gibt die Zeile
"void = swCustBendAllow.BendTableFile = Pfadkomplett"
nur noch False zurück!
Keine Ahnung wie sich die Randbedingungen genau geändert haben, der neue Pfad ist korrekt!
Wäre toll wenn jemand eine Idee oder Anregung hätte!
Danke im Voraus, Gruß Sebastian


Dim swApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Dim swCustBend As SldWorks.CustomBendAllowance
Dim swCust As SldWorks.CustomBendAllowance
Dim swSheetMetal  As SldWorks.SheetMetalFeatureData
Dim NeuerPfad As String

Sub main()

'----------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------
'Neuer Pfad für Biegetabelle z.B.:  N:\cad\Vorlagen\SWXSolidWorks\Biegetabellen
NeuerPfad = "S:\Einstellungen\Biegetabellen"
'----------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------

Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc


Set retval = swModel.FirstFeature()
    Do While Not retval Is Nothing
   
      Name = retval.Name
      typ = retval.GetTypeName()
      If Not typ = "SheetMetal" Then GoTo 123
 
boolstatus = swModel.Extension.SelectByID2(Name, "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)

If boolstatus = False Then
    MsgBox "Dieses Makro funktioniert nur bei Blechbauteilen!"
    Exit Sub
End If

Set swSelMgr = swModel.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swFeat = swSelMgr.GetSelectedObject5(1)
Set swsketchbend = swFeat.GetDefinition
Set swCustBendAllow = swsketchbend.GetCustomBendAllowance


'------------------------------ Biegetabellenpfad auslesen -----------------------------------
Dim BendTableFile As String
BendTableFile = swCustBendAllow.BendTableFile()

' schneidet aus der Verzeichnis-String alle Zeichen bis zum Dateinamen ab
c = BendTableFile
Do While Not Status = True
  b = Mid(c, InStr(c, "\") + 1)
    If c = b Then
    Status = True
    End If
  c = b
Loop
Biegetabelle = c

Pfadkomplett = NeuerPfad + "\" + "PR_Aluminium.btl" ' Biegetabelle

If BendTableFile = Pfadkomplett Then
    MsgBox "Alter und neuer Pfad sind identisch, es erfolgt keine Umstellung!"
    Exit Sub
End If

'------------------------------- Biegetabellenpfad setzen ------------------------------------

void = swCustBendAllow.BendTableFile = Pfadkomplett

'If void = False Then
'    MsgBox "Pfadumstellung nicht erfolgreich bitte Pfad und Tabellenname überprüfen!"
'    Exit Sub
'End If
swsketchbend.SetCustomBendAllowance (swCustBendAllow)
bRet = swFeat.ModifyDefinition(swsketchbend, swModel, Nothing)
void = swCustBendAllow.BendTableFile = Pfadkomplett
MsgBox "Pfadumstellung der Biegetabelle erfolgreich abgeschlossen!"


123
    Set retval = retval.GetNextFeature()
    Loop

End Sub

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

bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 09:53    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

Nochmal ich!

Also den Pfad der Biegetabelle auszulesen funktioniert einwandfrei, leider kann ich den neuen Pfad nicht setzen!
Hat einer von Euch hierzu eine Idee?

Danke nochmal,

Gruß Sebastian

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 10. Jan. 2006 10: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 Nur für bastl braucht hilfe 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bastl braucht hilfe:
Nochmal ich!

Also den Pfad der Biegetabelle auszulesen funktioniert einwandfrei, leider kann ich den neuen Pfad nicht setzen!
Hat einer von Euch hierzu eine Idee?

Danke nochmal,

Gruß Sebastian



Hi also
void = swCustBendAllow.BendTableFile = Pfadkomplett
da es sich um eine String Prop handelt kann void nur True (clng(True)=-1) werden wenn wirklich BendTable = Pfad ist ... ich denke was passiert ist -> das VB zuerst den BendTableFIle ausliest dann diesen nur Vergleicht und nicht umsetzt.
Probiere mal anstelle von
void = swCustBendAllow.BendTableFile = Pfadkomplett
den 2 Zeiler:
swCustBendAllow.BendTableFile = Pfadkomplett
void = lcase(swCustBendAllow.BendTableFile) = lcase(Pfadkomplett)

Gruß
Micha


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

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

[Diese Nachricht wurde von VBSpawn am 10. Jan. 2006 editiert.]

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

bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 11:09    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 Micha!

Danke für deinen Tip!
Der Void ist jetzt true, leider schreibt das Makro den neuen Pfad nicht zurück!
Sprich der alte Pfad der Biegetabelle bleibt unverändert!
Hast du eine Idee woran dies liegen könnte?
Was macht denn der lcase-Befehl?

Gruß Sebastian

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 10. Jan. 2006 11:20    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 bastl braucht hilfe 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bastl braucht hilfe:
Hallo Micha!

Danke für deinen Tip!
Der Void ist jetzt true, leider schreibt das Makro den neuen Pfad nicht zurück!
Sprich der alte Pfad der Biegetabelle bleibt unverändert!
Hast du eine Idee woran dies liegen könnte?
Was macht denn der lcase-Befehl?

Gruß Sebastian


lcase = "lowercase" wandelt nur alles in KLEIN <grinz>
naja wenn void = true ergeben hat dann wurde auch der Pfad umgebogen und kann nicht mehr auf den Ursprünglichen Pfad zeigen.
Kann die aber auch nicht ganz folgen... an welcher Stelle in deinem Makro taucht der alte Pfad noch auf ?...

Gruß
Micha

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

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 11:27    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 Micha!

Vorgehen:
Ich habe ein Blechteil offen, dann lasse ich das Makro drüber laufen und dann checke ich in Solid ob sich der Pfad verändert hat!
Leider steht dann in Solid immernoch der alte Pfad der Biegetabelle drinn!
Was kann ich hier tun?
Der String BendTableFile besitzt auch noch nach der Void-Zeile den alten Pfad! kann das ein Problem sein?

Gruß Sebastian

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 10. Jan. 2006 11:54    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 bastl braucht hilfe 10 Unities + Antwort hilfreich

Meinst du im 2. Durchlauf
ansonsten und meinst du den von dir mit Dim BendTableFile as String Deklarierten BendTableFile ??

füge mal vor dem eigentlichem Umsetzten  ein und sag mal welche msgbox du bekommst ...


Dim oldBend As String
oldBend = wCustBendAllow.BendTableFile

    If LCase(oldBend) <> LCase(PfadKomplett) Then
      'Neuen Pfad einstellen
        swCustBendAllow.BendTableFile = PfadKomplett
      'Abgleich ob der ursprüngliche Pfad dem neuen Pfad entpricht
        void = LCase(swCustBendAllow.BendTableFile) = LCase(PfadKomplett)
        If void = True Then
                MsgBox "Alles OK." & vbCrLf & "Der Pfad wurde von: " & vbCrLf & oldBend & vbCrLf & "auf" & vbCrLf & PfadKomplett & vbCrLf & "umgesetzt.", vbInformation
        Else
                MsgBox "ooops Fehler " & vbCrLf & "Der Pfad wurde NICHT von: " & vbCrLf & oldBend & vbCrLf & "auf" & vbCrLf & PfadKomplett & vbCrLf & "umgesetzt.", vbExclamation
        End If
    End If

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

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 13:15    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

Also ich hebe deinen Code vor meine neu zuweisende Zeile gestellt es erschien die Msgbox, dass alles soweit passt!
also dass der Pfad erfolgreich umgestellt ist!
Leider ändert sich im Teil dann aber der Pfad nicht!
Wenn ich das Makro 2mal hintereinander ausführe zeigt es mir den geänderten pfad an, aber im teil bleibt Er unverändert!
Habe das Gefühl, dass er die Änderungen nicht richtig ins Teil zurück schreibt!

Hast du hierzu ne Idee?

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

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 10. Jan. 2006 14:18    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 bastl braucht hilfe 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bastl braucht hilfe:
Also ich hebe deinen Code vor meine neu zuweisende Zeile gestellt es erschien die Msgbox, dass alles soweit passt!
also dass der Pfad erfolgreich umgestellt ist!
Leider ändert sich im Teil dann aber der Pfad nicht!
Wenn ich das Makro 2mal hintereinander ausführe zeigt es mir den geänderten pfad an, aber im teil bleibt Er unverändert!
Habe das Gefühl, dass er die Änderungen nicht richtig ins Teil zurück schreibt!

Hast du hierzu ne Idee?


eigentlich nur eine .... Speichern wenn die Umsetzung erfolgt ist  ...
ansonsten bin ich auch ziemlich ratlos ..

Gruß
Micha

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

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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

bastl braucht hilfe
Mitglied



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

Beiträge: 32
Registriert: 09.08.2005

erstellt am: 10. Jan. 2006 14:27    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

also denke das problem liegt daran, dass die geänderte custbendallow nicht richtig zurück in das teil geschrieben wird!
das wären folgende 2 zeilen:
swsketchbend.SetCustomBendAllowance (swcustbendallow)
bRet = swfeat.ModifyDefinition(swsketchbend, swModel, Nothing)

ich tippe eher auf die erste, da die zweite true zurück gibt!
fällt dir zum zurückschreiben noch was ein?

gruß

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



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

VBSpawn
Mitglied
Programmierer


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

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 10. Jan. 2006 15:00    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 bastl braucht hilfe 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bastl braucht hilfe:
also denke das problem liegt daran, dass die geänderte custbendallow nicht richtig zurück in das teil geschrieben wird!
das wären folgende 2 zeilen:
swsketchbend.SetCustomBendAllowance (swcustbendallow)
bRet = swfeat.ModifyDefinition(swsketchbend, swModel, Nothing)

ich tippe eher auf die erste, da die zweite true zurück gibt!
fällt dir zum zurückschreiben noch was ein?

gruß


Eventuell ist UseDefaultBendAllowance = True.. sollte (glaub ich aber false sein wenn man eine Custom verwenden will
also vorher noch UseDefaultBendAllowance = false einstellen ?!

gruß
Micha


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

Zitat:
Interpunktion und Orthographie des Postings sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.

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