Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Vorschau von SolidWorks

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Vorschau von SolidWorks (5200 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
privat:
ab 2024 Onshape
seit 2025 SolidWorks for Makers

erstellt am: 06. Mai. 2008 11:33    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

bitte nicht schlagen, ich weiß, dass Cross-Postings nicht erwünscht sind, ich hatte das Problem schon als Beitrag in dem Thread "Vorschaubild per VB/API als separates BMP speichern" geschildert.
Aber erstens wurde mein Problem da leider nicht gelöst, zweitens verschwindet der Thread im SWX-Brett bereits im Vergessen und drittens gehört dieses mein spezielles Problem vielleicht doch eher in die VB-Ecke als in das SWX-Brett.

Mein Problem ist, das etwas in VB6 funktioniert (VBA weiß ich nicht, hab ich nicht probiert), ich das aber in VB.net nicht zum funktionieren bringe.
Ziel ist es, ein Vorschaubild einer SolidWorks-Datei in eine PictureBox auf meiner Form zu bekommen.

Der Code in VB6:

Code:
Private Sub Form_Load()

    Dim retval As Long
    Const SolidWorksFilename = "c:\sw-work\preview.sldprt"
    Const BitmapFilename = "c:\temp\temp.bmp"
    Dim mySWXExtractBitmap As SldWorks_ExtractBitmap.SldWorks_ExtractBitmap
 
    Set mySWXExtractBitmap = New SldWorks_ExtractBitmap.SldWorks_ExtractBitmap
 
    retval = mySWXExtractBitmap.ExtractBitmap(SolidWorksFilename, BitmapFilename, _
                                              200, 200)

    pbPreview.Picture = LoadPicture(BitmapFilename)
End Sub


funktioniert (komischerweise nur, wenn die Datei zu diesem Zeitpunkt nicht in SWX geöffnet ist.

Mein entsprechender Code in VB.net 2008 Express:

Code:
    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim retval As Long
            Const SolidWorksFilename = "c:\sw-work\preview.sldprt"
            Const BitmapFilename = "c:\temp\temp.bmp"
            Dim mySWXExtractBitmap As SldWorks_ExtractBitmap.SldWorks_ExtractBitmap

            'Bei dieser New-Anweisung tritt offenbar der Fehler auf:
            mySWXExtractBitmap = New SldWorks_ExtractBitmap.SldWorks_ExtractBitmap

            retval = mySWXExtractBitmap.ExtractBitmap(SolidWorksFilename, BitmapFilename, _
                                                      200, 200)
            Debug.Print(retval)
            pbPreview.Image = Image.FromFile(BitmapFilename)

        End Sub
    End Class


funktioniert nicht. Bei der Zeile "mySWXExtractBitmap = New SldWorks_ExtractBitmap.SldWorks_ExtractBitmap" tritt immer eine Ausnahme auf. Was mache ich da grundsätzlich falsch?

[Edit]
Zur Ergänzung:
pbPreview ist eine PictureBox auf der Form, SolidWorksFilename und BitmapFilename sind als Konstanten definiert, die entsprechende SWX-Datei existiert natürlich. Die Datei "BitmapFilename" sollte vor jedem Durchgang gelöscht werden.
[/Edit]

------------------
Klaus

    www.al-ko.com | mein Gästebuch | privat...

[Diese Nachricht wurde von KMassler am 06. Mai. 2008 editiert.]

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 06. Mai. 2008 11:43    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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

in welchem Verweis ist der Namespace SldWorks_ExtractBitmap enthalten? Kannst du diesen Verweis überhaupt in einem .net Projekt verwenden? Welchen Ausnahme wird den ausgelöst? Hast du es schon mal mit "lade binding" versucht?

Das Problem mit den Vorschaubildern ist mir ab SolidWorks 2008 bekannt. Das funktioniert jetzt über die "SolidWorks Document Manager API" (Schau mal in die SolidWorks API Hilfe, Register Inhalt, dort ist es in der ersten Ebene zu finden). Jedoch benötigst du für die "SolidWorks Document Manager API" eine extra Lizenz, welche du beantragen musst. Ich habe mir erstmal mit diesem Tipp geholfen, auch wenn die Auflösung durch die Icon-Größe nicht mit der alten sdm.dll vergleichbar ist.

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 06. Mai. 2008 12: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

Zitat:
Original erstellt von tbd:
Hallo Klaus,

in welchem Verweis ist der Namespace SldWorks_ExtractBitmap enthalten? Kannst du diesen Verweis überhaupt in einem .net Projekt verwenden? Welchen Ausnahme wird den ausgelöst? Hast du es schon mal mit "lade binding" versucht?

Das Problem mit den Vorschaubildern ist mir ab SolidWorks 2008 bekannt. Das funktioniert jetzt über die "SolidWorks Document Manager API" (Schau mal in die SolidWorks API Hilfe, Register Inhalt, dort ist es in der ersten Ebene zu finden). Jedoch benötigst du für die "SolidWorks Document Manager API" eine extra Lizenz, welche du beantragen musst. Ich habe mir erstmal mit diesem Tipp geholfen, auch wenn die Auflösung durch die Icon-Größe nicht mit der alten sdm.dll vergleichbar ist.



Der Verweis gehört zur Interop.SldWorks_ExtractBitmap.dll
Ob der VB.Net-tauglich ist..äh...  gute Frage

Late binding...du meinst so:

Code:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim retval As Long
        Const SolidWorksFilename = "c:\sw-work\preview.sldprt"
        Const BitmapFilename = "c:\temp\temp.bmp"

        Dim mySWXExtractBitmap As New SldWorks_ExtractBitmap.SldWorks_ExtractBitmap

        retval = mySWXExtractBitmap.ExtractBitmap(SolidWorksFilename, BitmapFilename, _
                                                  200, 200)
        Debug.Print(retval)
        pbPreview.Image = Image.FromFile(BitmapFilename)

    End Sub


geht auch nicht

Der Tipp mit den Icons ist nicht das, was mir vorschwebt. Ist allerdings für andere Anwendungen prima, dafür allein schon mal 10 Us 

Mal schauen, wie ich an die Lizenz komme, vielleicht geht das ja dann über das "GetPreviewBitmap"...ich hatte das schon mal versucht, aber ohne Lizenz kann das ja dann nicht gehen.

Danke für den Hinweis.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 06. Mai. 2008 12: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 Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

also wenn ich mir das anschaue denke ich das dein Problem darin besteht das du die Instanz der Interop.SldWorks_ExtractBitmap.dll nicht mit New erzeugen kannst.

Mal so ein Schuß ins Blaue. Registriere mal deine Original dll, also nicht die Interop in deinem System (wahrscheinlich mit regsvr32, da ActiveX dll) und erzeuge deine Instanz mal mit CreateObject.

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 06. Mai. 2008 12: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

Zitat:
Original erstellt von tbd:
...und erzeuge deine Instanz mal mit CreateObject.

und da verließen sie ihn ...

Ich finde zwar Hinweise, wie ich ein Excel, Word oder sonst ein Anwendungsobjekt kreieren kann, aber von einer DLL?
Öhm..

LAIE <- Das bin ich!

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 06. Mai. 2008 13:10    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 KMassler 10 Unities + Antwort hilfreich

Also Schritt für Schritt:

1. dll Registrieren:
Dafür im cmd die RegSvr32 mit deinem dll-Pfad (Achtung Dos-Pfad) als Befehlszeilenparameter aufrufen.
Also so: RegSvr32 %DLL-PFAD%
Oder einfach diesen kleinen Trick verwenden.

2. Nach ProgID suchen
In der Windows Registry (regedit.exe) einfach nach deinem dll-Pfad suchen und die ProgID ermitteln. Normal ist das der Namespace und Klassenname, also SldWorks_ExtractBitmap.SldWorks_ExtractBitmap, aber sicher ist sicher!

3. Instanz erzeugen
Mit CreateObject Instanz erzeugen:

Code:

Dim mySWXExtractBitmap as SldWorks_ExtractBitmap.SldWorks_ExtractBitmap
'Ermittelte ProdId Aus der Regisrty als Parameter für CreatObject
mySWXExtractBitmap = CreateObject("SldWorks_ExtractBitmap.SldWorks_ExtractBitmap")

Obs Funktioniert 

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 06. Mai. 2008 14: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 die Mühe.

Registriert ist die DLL (in VB6 gehts ja auch, und in der Registry steht sie auch drin).
Und die ProgID stimmt so. Aber es funktioniert trotzdem nicht, es tritt immer noch die Ausnahme auf:
"Eine Ausnahme (erste Chance) des Typs "System.Exception" ist in Microsoft.VisualBasic.dll aufgetreten." Super Fehlermeldung 
Na, ich versuche mal den Lizenzkey für die "SolidWorks Document Manager API" zu bekommen. Mal schauen, ob ich damit dann klar komme.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 06. Mai. 2008 14:25    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 KMassler 10 Unities + Antwort hilfreich

Leider kann ich dir da auch nicht weiterhelfen.
Aber ich denke mal das die "SolidWorks Document Manager API" für euch e Sinn macht.
Deshalb ist das Vorschau-Problem doch ein guter anstoß um die Lizenz zu beantragen, kostet ja auch nichts, soviel ich weis!

------------------
Mfg Daniel

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 07. Mai. 2008 06: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 Nur für KMassler 10 Unities + Antwort hilfreich

Guten Morgen Klaus,

es ist mir doch noch eine Idee eingefallen.
Verwende die Methode ExtractBitmap mit Hilfe einer Declare Anweisung.

Das Ganze könnte dann ungefähr so aussehen:

Code:

Private Declare Ansi Function ExtractBitmap Lib "SldWorks_ExtractBitmap"( _
        ByVal SolidWorksFilename As String, _
        ByVal BitmapFilename As String, _
        ByVal Laenge as Interger, _
        ByVal Breite as Interger) As Object

Die Parameterbezeichnungen und -variablentypen sowie den Rückgabevariablentyp müsstest du noch an die ExtractBitmap Methode anpassen.

Vielleicht klappt es ja so!

------------------
Mfg Daniel

 

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 14. Mai. 2008 11:10    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

*tiefluftholen*

Also...

Ich habe mir den Lizenzkey für den swDocumentManager besorgt und wollte das ganze jetzt analog zu dem Beispiel in der Hilfe aufbauen.

Das sieht jetzt in VB.Net also folgendermaßen aus:

Code:
Imports SwConst
Imports SwDocumentMgr.SwDmDocumentType
Imports SwDocumentMgr.SwDmDocumentOpenError

Public Class Form1
    Const swDMLicenseKey = "<mein Lizenzkey>"
    Const sDocFileName As String = "c:\sw-work\preview.SLDPRT"
    Const sExtractDir As String = "c:\temp\"
    Dim nDocType As Long
    Dim swClassFact As SwDocumentMgr.SwDMClassFactory
    Dim swDocMgr As SwDocumentMgr.SwDMApplication
    Dim swDoc As SwDocumentMgr.SwDMDocument
    Dim swCfgMgr As SwDocumentMgr.SwDMConfigurationMgr
    Dim vCfgNameArr As Object  ' Im Originalbeispiel steht hier "Variant"
    Dim vCfgName As String      ' Im Originalbeispiel steht hier "Variant"
    Dim swCfg As SwDocumentMgr.SwDMConfiguration7
    Dim pPreview As Object      ' Im Originalbeispiel steht hier "IPictureDisp"
                                ' ich habe das auch mit Image probiert, geht auch nicht
    Dim nRetVal As Long
    Dim i As Long
    Dim bRet As Boolean

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        ' Determine type of SolidWorks file based on file extension
        If InStr(LCase(sDocFileName), "sldprt") > 0 Then
            nDocType = swDmDocumentPart
        ElseIf InStr(LCase(sDocFileName), "sldasm") > 0 Then
            nDocType = swDmDocumentAssembly
        ElseIf InStr(LCase(sDocFileName), "slddrw") > 0 Then
            nDocType = swDmDocumentDrawing
        Else
            ' Probably not a SolidWorks file
            nDocType = swDmDocumentUnknown
            ' so cannot open
            MsgBox("Keine Solidworksdatei...")
            End
        End If

        swClassFact = CreateObject("SwDocumentMgr.SwDMClassFactory")
        swDocMgr = swClassFact.GetApplication(swDMLicenseKey)
        swDoc = swDocMgr.GetDocument(sDocFileName, nDocType, False, nRetVal) : Debug.Assert(swDmDocumentOpenErrorNone = nRetVal)

        swCfgMgr = swDoc.ConfigurationManager

        Debug.Print("File = " & swDoc.FullName)

        Debug.Print("  Active configuration name    = " & swCfgMgr.GetActiveConfigurationName)

        vCfgNameArr = swCfgMgr.GetConfigurationNames

        For Each vCfgName In vCfgNameArr
        ' Für die Variable vCfgName bekomme ich immer eine Warnung,
        ' egal ob als String oder Object deklariert:
        ' Der Typ für die Variable "vCfgName" wird nicht abgeleitet,
        ' da er an ein Feld in einem einschließenden Bereich gebunden ist...

       
            swCfg = swCfgMgr.GetConfigurationByName(vCfgName)
            pPreview = swCfg.GetPreviewPNGBitmap(nRetVal)
            ' Im Original-Beispiel heißt das
            'Set pPreview = swCfg.GetPreviewPNGBitmap(nRetVal)

            SavePicture(pPreview, sExtractDir & vCfgName & ".PNG")
            ' geht nicht. Was ist die VB.Net-Alternative zu SavePicture?

            Debug.Print("  " & vCfgName)
            Debug.Print("    PNG preview stream        = " & swCfg.PreviewPNGStreamName)
            Debug.Print("  ")
        Next
        swDoc.CloseDoc()

        'Wenn das oben alles funktionieren würde, dann könnte ich mir das Bild aus der Datei holen mit
        'pbPreview.Image = Image.FromFile(BitmapFilename)
        'bpPreview ist eine PictureBox

    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        End
    End Sub
End Class


------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 14. Mai. 2008 14: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 Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

also die Variable vCfgNameArr ist nach meiner Meinung ein String Array in welchen die Konfigurationnamen stehen. Du musst also das SaveArray der Methode GetConfigurationNames in eine StringArray umwandeln.

Alle Long Variablen aus VB6 sind in VB.Net Integer.

Wegen dem IPictureDisp schau dir mal den die AxHost Klasse und dort vor allem die GetPictureFromIPictureDisp Methode an. Wenn du diese Anwendest kannst du, wenn ich jetzt alles richtig erkannt und kombiniert habe auf SavePicture verzichten, weil du ja von GetPictureFromIPictureDisp ein Image Objekt zurückbekommst.

Viel Glück


------------------
Mfg Daniel

 

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

StefanBerlitz
Ehrenmitglied V.I.P. h.c.
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 14. Mai. 2008 14:37    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 KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

die vCfgNameArr und vCfgName müssen Variant bleiben, das Safearray wird dir ja als Variant zurückgegeben (in vCfgNameArr ) und das vCfgName ist ja deine "Schleifenvariable" und muss deswegen ebenfalls Variant sein.

Dann ist mir noch aufgefallen, dass du

    Dim swDoc As SwDocumentMgr.SwDMDocument

machst, dass muss so heißen:

    Dim swDoc As SwDocumentMgr.SwDMDocument10

da die Methode erst mit dem SwDMDocument10 verfügbar ist; ja ich weiß, ich bin auch am Anfang drauf reingefallen und hab wie bei den "normalen" SolidWorks Objekten gedacht, dass ich die Nummer bei den Objekten nicht brauche, aber zumindest bei meinem Code aus PAC4SWX funktioniert es nur mit der 10 am Ende.

Dann solltest du dein Bildobjekt so deklarieren:

    Dim pPreview  As IPictureDisp

und trotzdem mit Set zuweisen. Das Bild kannst du übringens auch ohne Umweg über ein File direkt deinem Image oder Picturebox zuweisen:

    picHidden.Picture = pPreview

Ich hoffe, damit kommst du etwas weiter, aber ich mach das ja in VB6, sollte aber auch in VS2008 so gehen.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de
Stefans SolidWorks Blog

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 14. Mai. 2008 15: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

Ich glaub, da hab ich mich ein bischen  übernommen, ich steh jetzt total auf dem Schlauch.

Zitat:
Original erstellt von tbd:
...also die Variable vCfgNameArr ist nach meiner Meinung ein String Array in welchen die Konfigurationnamen stehen. Du musst also das SaveArray der Methode GetConfigurationNames in eine StringArray umwandeln.

Wie definiere ich ein StringArray, ohne zu wissen wie groß das wird? Deswegen war das ja in VB6 ein Variant, da kann man so ziemlich alles rein packen.

Zitat:
Original erstellt von tbd:
Alle Long Variablen aus VB6 sind in VB.Net Integer.

ok, das lässt sich ändern, obwohl das ja nur unterschiedliche Wertebereiche definiert. Mit Long passen die Werte auf jeden fall rein, ist halt überdimensioniert.

Zitat:
Original erstellt von tbd:
Wegen dem IPictureDisp schau dir mal den die AxHost Klasse und dort vor allem die GetPictureFromIPictureDisp Methode an. Wenn du diese Anwendest kannst du, wenn ich jetzt alles richtig erkannt und kombiniert habe auf SavePicture verzichten, weil du ja von GetPictureFromIPictureDisp ein Image Objekt zurückbekommst.

das wäre schön, wenn ich da auf den Umweg über die temporäre Datei verzichten kann, sowas hätte ich dann auch versucht.

sowas wie
pbPreview.Image = AxHost.GetPictureFromIPictureDisp(pPreview)
mag mein VB.Net aber nicht. Meldung "System.Windows.Forms.AxHost.Protected Shared Function GetPictureFromIPictureDisp(picture As Object) As System.Drawing.Image" ist in diesem Kontext nicht zugreifbar, da es "Protected" ist."

Zitat:
Original erstellt von StefanBerlitz:
die vCfgNameArr und vCfgName müssen Variant bleiben, das Safearray wird dir ja als Variant zurückgegeben (in vCfgNameArr ) und das vCfgName ist ja deine "Schleifenvariable" und muss deswegen ebenfalls Variant sein....
Das geht leider nicht, Variant gibts in VB.Net (soviel ich bisher weiß) nicht. Und der Typ VariantType ist damit leider nicht identisch.


Zitat:
Original erstellt von StefanBerlitz:
...Dann ist mir noch aufgefallen, dass du

    Dim swDoc As SwDocumentMgr.SwDMDocument

machst, dass muss so heißen:

    Dim swDoc As SwDocumentMgr.SwDMDocument10

da die Methode erst mit dem SwDMDocument10 verfügbar ist; ja ich weiß, ich bin auch am Anfang drauf reingefallen und hab wie bei den "normalen" SolidWorks Objekten gedacht, dass ich die Nummer bei den Objekten nicht brauche, aber zumindest bei meinem Code aus PAC4SWX funktioniert es nur mit der 10 am Ende.


SwDMDocument10 gibts bei mir komischerweise nicht, das geht bis 9, dann kommt gleich 11. Aber egal welche ich nehme, etwas anderes als SwDMDocument wird nicht akzeptiert.


Zitat:
Original erstellt von StefanBerlitz:
...Dann solltest du dein Bildobjekt so deklarieren:

    Dim pPreview  As IPictureDisp

und trotzdem mit Set zuweisen. Das Bild kannst du übringens auch ohne Umweg über ein File direkt deinem Image oder Picturebox zuweisen:

    picHidden.Picture = pPreview

Ich hoffe, damit kommst du etwas weiter, aber ich mach das ja in VB6, sollte aber auch in VS2008 so gehen.
...



Hmm...IPictureDisp gibts entweder in VB.Net auch nicht, oder mir fehlt dazu der passende Verweis.

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

Die Warnung wegen dem vCfgName ist jetzt weg, man muss die Variable nur genauer ansprechen mit Me.vCfgName.
Damit ist das Object pPreview nach der Zeile  pPreview = swCfg.GetPreviewBitmap(nRetVal) immerhin schon mal belegt, aber weiter anfangen kann ich damit noch nichts.

Aktueller Stand:

Code:
    Dim pPreview As Object
    Dim vCfgNameArr As Object
    Dim vCfgName As String

' ...
        For Each Me.vCfgName In vCfgNameArr  ' so wird Me.vCfgName aktzeptiert,
                                              ' egal ob als String oder Object deklariert

            swCfg = swCfgMgr.GetConfigurationByName(Me.vCfgName) 
            pPreview = swCfg.GetPreviewBitmap(nRetVal)

            'pbPreview.Image = AxHost.GetPictureFromIPictureDisp(pPreview)  'das hier funzt nicht
                                      'auch nicht, wenn ich eine  Variable
                                      ' als AxHost deklariere und diese hier verwende

            Debug.Print("  " & vCfgName)  ' Die Konfiguration bekomme ich immerhin

        Next

...


------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 14. Mai. 2008 16: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 Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,

    ...und das alles für ein blödes Bild.

Ein SaveArray kannst du z.B. so in ein StingArray umwandeln

Code:

        Dim oDummy As Object
        Dim oDummyArray() As Object
        Dim sStringArray() As String
        oDummy = swCfgMgr.GetConfigurationNames
        oDummyArray = CType(oDummy, [Object]())
        'SaveArray aufschlüsseln in einer Schleife
        For i As Integer = 1 To _
                oDummyArray.GetUpperBound(0)
            sStringArray(i) = CStr(oDummyArray(i))
        Next
        'Manchmal geht es auch direkt (einfach ausprobieren )
        sStringArray = CType(oDummyArray, String())

Protected bedeutet das du die Klasse, in dem Fall AxHost, erben musst:

Code:

        Inherits System.Windows.Forms.AxHost

        Public ReadOnly Property GetImage(ByVal oSwImage As Object) As Image
            Get
                Return AxHost.GetPictureFromIPicture(oSwImage)
            End Get
        End Property


Was Stefan antwortete kann man leider in .net nicht mehr anwenden!

------------------
Mfg Daniel

   

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 15. Mai. 2008 08:32    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


axhostproblem.gif

 
*SCHWERRNOCHVERRÜCKT*

Danke für die Tipps!

Aber:

Zitat:
Original erstellt von tbd:
Hallo Klaus,

      ...und das alles für ein blödes Bild.
...


Das kannst du laut sagen!

Zitat:
Original erstellt von tbd:
...
Ein SaveArray kannst du z.B. so in ein StingArray umwandeln
Code:

        Dim oDummy As Object
        Dim oDummyArray() As Object
        Dim sStringArray() As String
        oDummy = swCfgMgr.GetConfigurationNames
        oDummyArray = CType(oDummy, [Object]())
        'SaveArray aufschlüsseln in einer Schleife
        For i As Integer = 1 To _
                oDummyArray.GetUpperBound(0)
            sStringArray(i) = CStr(oDummyArray(i))
        Next
        'Manchmal geht es auch direkt (einfach ausprobieren )
        sStringArray = CType(oDummyArray, String())


...

Gut zu wissen. Offenbar geht das ja aber hier auch ohne die Umwandlung, denn die Konfigurationsnamen bekomme ich sauber geliefert.

So, aber jetzt wieder zum richtigen Sorgenkind:

Zitat:
Original erstellt von tbd:
...
Protected bedeutet das du die Klasse, in dem Fall AxHost, erben musst:
Code:

        Inherits System.Windows.Forms.AxHost

        Public ReadOnly Property GetImage(ByVal oSwImage As Object) As Image
            Get
                Return AxHost.GetPictureFromIPicture(oSwImage)
            End Get
        End Property



...

Ok, das haber ich so eingefügt am Anfang der Class Form1 ..und erzeuge damit neue Fehlermeldungen:
"Die für die Form1-Klasse festgelegte System.Windows.Forms.AxHost-Basisklasse darf sich nicht von der System.Windows.Forms.Form-Basisklasse eines ihrer anderen partiellen Typen unterscheiden."
Als Lösungsmöglichkeiten bekomme ich angeboten:
1. Ändern Sie die Form1-Klasse, sodass sie von "System.Windows.Forms.AxHost" erbt
Danach verschwinden meine bisherigen Fehler zu AxHost, dafür bekomme ich massenhaft Fehler vom Form1.Designer.vb, Form1.vb, Application.Designer.vb...also nix.

2. Ändern Sie die Form1-Klasse, sodass sie von "System.Windows.Forms.Form" erbt
Wenn ich das verwende, dann ändert sich der Inherits-Befehl zu "Inherits Form"...und meine Fehler zum AxHost bleiben unverändert.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 15. Mai. 2008 09:01    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 KMassler 10 Unities + Antwort hilfreich

Guten Morgen Klaus,

in eine Klasse kannst du keine zwei Basisklassen erben. Da ein Formular in der %Formname%.Designer.vb bereits die Basisklasse System.Windows.Forms.Form erbt, musst du die System.Windows.Forms.AxHost in eine andere Klasse auslagern.

Ich habe mir das Ganze gerade mal angeschaut. Die AxHost Klasse hat einen Konstruktor, welcher eine Clsid erfordert. Ich schätze das du dort die Clsid der SwDocumentMgr Type Library (Ich denke diese hat eine feste Clsid, also wie bei mir 00AB5D8D-2B8F-416b-9761-92FACC8872BE) angeben musst. Sicher weis ich es allerdings nicht.

Wenn ich recht habe würde das dann wie folgt aussehen.
Hier die Klasse:

Code:

Public Class MyAxHost

    Inherits System.Windows.Forms.AxHost

    Public Sub New(ByVal clsid As String)
        MyBase.New(clsid)
    End Sub

    Public ReadOnly Property GetImage(ByVal oSwImage As Object) As Image
        Get
            Return AxHost.GetPictureFromIPicture(oSwImage)
        End Get
    End Property

End Class



Hier der Aufruf:
Code:

Dim oMyAxHost As New MyAxHost("00AB5D8D-2B8F-416b-9761-92FACC8872BE")
Me.MyPicture = oMyAxHost.GetImage(oSwImage)

Ich hoffe das klappt!

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 15. Mai. 2008 09:57    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

das geht ja wie's Bretzel-Backen...und es klappt!!!
       
100Us for you... ach, geht ja nicht.

Ich habe zwar ehrlich gesagt nicht alles verstanden, aber ich nehme das jetzt mal als gegeben hin.

Ein kleiner Schönheitsfehler ist noch da: Ich bekomme noch die Warnung:
Der Designer kann keine Instanz des Typs System.Windows.Forms.AxHost erstellen, da dieser als abstrakt deklariert ist.
Aber davon abgesehen, scheint jetzt alles ok zu sein.

Wie versprochen bekommst du das für www.mysldworks.de!

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 15. Mai. 2008 10:03    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 KMassler 10 Unities + Antwort hilfreich

Hat ja zum Glück nicht lange gedauert, freut mich aber das wir es hinbekommen haben!

Zitat:
Original erstellt von KMassler:
...da dieser als abstrakt deklariert ist...

... ist die gesamte Funktion nicht etwas abstrakt?!   

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 15. Mai. 2008 14:37    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

Damit der Thread nicht zu früh aufhört 

die Vorgehensweise geht so leider nicht für Drawings, da diese ja keine Konfigurationen haben. Hier führt jeder Aufruf des ConfigurationManager zu einer Ausnahme.

Hmm...

Vielleicht dann mit
SwDMDocument11.GetPreviewBitmapBytes(ByRef result As SwDocumentMgr.SwDmPreviewError) As Object
Müsste dann etwa heißen
    oByteArray = swDoc.GetPreviewBitmapBytes(iRetVal)
das gibt aber wieder nen Ausnahmefehler.

Das Ergebnis sollte hier ein Byte-Array sein - wie kriege ich aus dem dann wieder die Bitmap? Dazu gibts leider kein Beispiel in der API-Hilfe.

Fragen über fragen :/

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 15. Mai. 2008 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 KMassler 10 Unities + Antwort hilfreich

Und weiter gehts...

ein ByteArray musst du in einem Stream einlesen.
Das funktioniert mit Stream.Read. Mit diesen Stream kannst du ein Image Objekt initialisieren.
Ohne das ich es getestet habe und soweit ich mich erinnern kann müsste das so gehen:

Code:

Dim oStream As New System.IO.MemoryStream
Dim oImage As Image
Dim oByteArray() As Byte
oByteArray = swDoc.GetPreviewBitmapBytes(iRetVal)
oStream.Read(oByteArray, 0, oByteArray.GetUpperBound(0))
oImage = System.Drawing.Image.FromStream(oStream)

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 16. Mai. 2008 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

Da tritt leider wieder eine "System.NullReferenceException" auf bei
oByteArray = swDoc.GetPreviewBitmapBytes(iRetVal)

Ich frage mich ehrlich gesagt, was sich SWX dabei gedacht hat? Was fängt man denn bei einer Vorschau mit einem ByteArray an? Wieso stellen die da nicht einfach ne Funktion GetPreviewBitmap ähnlich wie bei den Konfigurationen zur Verfügung. Und da ist das ja schon kompliziert genug. :/

Manchmal frage ich mich auch, wieso ich mir das antue und nicht beim alten VB6 bleibe...da war vieles doch viel einfacher.

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 16. Mai. 2008 10: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 KMassler 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von KMassler:
Manchmal frage ich mich auch, wieso ich mir das antue und nicht beim alten VB6 bleibe...da war vieles doch viel einfacher.

Weil .net einfach Spaß macht und viel mehr Möglichkeiten bietet! 

NullReferenceException, das hört sich so an als ob dein swDoc Objekt nicht richtig initialisiert ist und noch mit Nothing belegt ist, das würde VB6 auch nicht gefallen  .

Jetzt bist du scho soweit gekommen, nur nicht aufgeben!

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 16. Mai. 2008 11: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

Zitat:
Original erstellt von tbd:
Weil .net einfach Spaß macht und viel mehr Möglichkeiten bietet!    ...

Irgendeinen Vorteil muss es ja bringen, ist dafür ja auch ganz schön kompliziert.

Doch, das swDoc ist initialisiert und nicht Nothing- wenn ich statt ner Drawing ein Part verwende, dann funktioniert die Konfigurationsvorschau so wie oben erarbeitet mit demselben swDoc ja auch.

Stimmt der Aufruf in dieser Form "oByteArray = swDoc.GetPreviewBitmapBytes(iRetVal)"?

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 16. Mai. 2008 11: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 Nur für KMassler 10 Unities + Antwort hilfreich

Als was ist swDoc deklariert?
SwDocumentMgr.SwDMDocument, SwDocumentMgr.SwDMDocument10 oder SwDocumentMgr.SwDMDocument11?
Ich hoffe du sieht worauf ich hinaus will. 

Hinweis:
Evtl klappt auch die direkte Umwandlung des SaveArrays in ein ByteArray nicht (das löst aber einen anderen Fehler aus). Falls das so ist musst das noch anpassen.

------------------
Mfg Daniel

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 16. Mai. 2008 11:44    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

 
Zitat:
Original erstellt von tbd:
Als was ist swDoc deklariert?
SwDocumentMgr.SwDMDocument, SwDocumentMgr.SwDMDocument10 oder SwDocumentMgr.SwDMDocument11?
Ich hoffe du sieht worauf ich hinaus will.     

Hinweis:
Evtl klappt auch die direkte Umwandlung des SaveArrays in ein ByteArray nicht (das löst aber einen anderen Fehler aus). Falls das so ist musst das noch anpassen.


Hmm..ja, ich sehe, worauf du hinaus willst.
Es war natürlich als SwDocumentMgr.SwDMDocument deklariert, das war für die Previewerstellung der Konfigurationen auch ok.

Das heißt, ich muss abhängig davon, ob es sich um ein Modell oder eine Drawing handelt, eine andere Deklaration verwenden.

Code:
    Dim swDoc As SwDocumentMgr.SwDMDocument
    Dim swDoc11 As SwDocumentMgr.SwDMDocument11


Damit funktioniert dann
Code:
oByteArray = swDoc11.GetPreviewBitmapBytes(iRetVal)

Nach langem herumprobieren bin ich noch darauf gekommen:
Es muß heißen
Code:
            oStream.Write(oByteArray, 0, oByteArray.GetUpperBound(0))

und nicht
Code:
            oStream.Read(oByteArray, 0, oByteArray.GetUpperBound(0))

schließlich wollen wir ja (bzw. ich will) den Stream befüllen und nicht daraus lesen.
Danach ist der Stream definitiv gefüllt und genauso groß wie das ByteArray.

Aber:

Code:
            pbPreview.Image = System.Drawing.Image.FromStream(oStream)

geht nicht, da ...Image.FromStream einen System.IO.Stream verlangt, keinen System.IO.Memorystream (laut Hilfe). Umgekehrt klappt aber das stream.read mit einem System.IO.Stream nicht. 

Wir kriege ich den MemoryStream in mein Image? Kann man das nun wieder irgendwie in einen Stream umwandeln?
 
Klaus

    www.al-ko.com | mein Gästebuch | privat...

[Diese Nachricht wurde von KMassler am 16. Mai. 2008 editiert.]

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

tbd
Moderator
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600

erstellt am: 16. Mai. 2008 11: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 Nur für KMassler 10 Unities + Antwort hilfreich

Ich bin ein Doof    !
Du musst natürlich den Stream nicht lesen, sondern ja beschreiben (befüllen).
Also so:
Code:

oStream.Write(oByteArray, 0, oByteArray.Length)

Hinweis zum Stream:
Die Klasse System.IO.Stream ist eine abstrakte Basisklasse aller Streams. Deshalb kannst du diese nicht direkt verwenden, sondern nur die abgeleiteten Klassen wie z.B. MemoryStream oder FileStream.


------------------
Mfg Daniel

   

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 16. Mai. 2008 13:01    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

ok, kapiert.

mit
            oStream.Write(oByteArray, 0, oByteArray.Length)
gehts!!!

Komisch. oByteArray.Length müsste doch das selbe sein, wie oByteArray.GetUpperBound(0) oder Ubound(oByteArray).
Das Ergebnis sah auch in der IDE genauso aus.

Na wie auch immer...ich habe meine Vorschau!!

Vielen Herzlichen Dank für den geduldigen Privat-Kurs in VB.Net 

Ich habe die korrigierte Fassung natürlich gleich bei dir in www.mysldworks.de reingestellt.

Und damit wünsche ich euch allen ein schönes Wochenenede 

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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

Schraml
Mitglied
Administrator


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

Beiträge: 22
Registriert: 18.07.2006

Solidworks 2008

erstellt am: 27. Okt. 2008 19:58    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 KMassler 10 Unities + Antwort hilfreich

Hi,

ich hab das Programm gefunden und den Foren Eintrag dazu.
Finde es spitze und brauch genau so was.

Kannst du mir vielleicht bitte ein wenig weiterhelfen?
Ich hab das jetzt alles so gemacht wie du, aber ich bekomme noch zwei Fehler gemeldet. (Solidworks 2008)

1. Imports SwConst
Ich hab die Dll eingebunden c:\Programme\SWX2008\SolidWorks.Interop.swconst.dll

Warnung 1 Der in Imports "SwConst" angegebene Namespace oder Typ enthält keine öffentlichen Member oder kann nicht gefunden werden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen Member enthält und dass der importierte Elementname keine weiteren Aliase enthält. C:\SLD_Vorschau\Form1.vb 6 9 VB_Test


2. Dim swDoc11 As SwDocumentMgr.SwDMDocument11
Bei mir geht es nur bis 9 und leider auch nicht mit 11 weiter? C:\Programme\SWX2008\CircuitWorksFull\interop.swdocumentmgr.dll
Fehler 3 Der Typ "SwDocumentMgr.SwDMDocument11" ist nicht definiert. C:\SLD_Vorschau\Form1.vb 30 20 VB_Test


Wäre nett wenn mir da weiterhelfen könntest.
Weißt du was ich da falsch mache? Hab den Lizenzkey letzten Freitag beantrag, kanns also noch nicht testen.


Hier mal der Code, ein wenig umgebaut....weil da noch auch noch meine andere Preview eingebunden ist. Die aber bei weitem nicht so gut ist wie deine.


Gruß
Philipp


Option Strict Off

Option Explicit On

Imports System.Windows.Forms

Imports SwDocumentMgr.SwDmDocumentType

Imports SwDocumentMgr.SwDmDocumentOpenError

Imports SwConst

Imports System.Drawing

Public Class Form1

Inherits System.Windows.Forms.Form

Dim strZeichnungsnr As String

Dim strBezeichnung As String

Dim strFilename As String

Dim strIDENT As String

Const swDMLicenseKey = "55555555"

'Wahlweise Part oder Drawing aktivieren:

'Const sDocFileName As String = "c:\sw-work\PREVIEW.SLDPRT"

Dim sDocFileName As String

Dim nDocType As Integer

Dim swClassFact As SwDocumentMgr.SwDMClassFactory

Dim swDocMgr As SwDocumentMgr.SwDMApplication

'Dummerweise sind die benötigten Methoden für Drawing und Modell

'nicht im selben Objekttyp verfügbar, daher brauchen wir hier 2

'Objekte für das Dokument  

Dim swDoc As SwDocumentMgr.SwDMDocument

Dim swDoc11 As SwDocumentMgr.SwDMDocument11

Dim swCfgMgr As SwDocumentMgr.SwDMConfigurationMgr

Dim swCfg As SwDocumentMgr.SwDMConfiguration7

Dim iRetVal As Integer

Dim oMyAxHost As New MyAxHost("00AB5D8D-2B8F-416b-9761-92FACC8872BE") 'das ist die CLSID der

'swdocumentmgr.dll

Dim oPreview As Object

Dim oCfgNameArr As Object

Dim sCfgName As String

Dim oByteArray() As Byte

Dim oStream As New System.IO.MemoryStream

Private Sub lbConfigurations_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbConfigurations.SelectedIndexChanged

Dim sDummy As String

sDummy = lbConfigurations.SelectedItem

'If sDummy = "" Then Exit Sub

ShowConfigurationPreview(sDummy)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim Extractor As SldWorks_ExtractBitmap.SldWorks_ExtractBitmap

Dim nErrors As Integer

Dim tmpfile As String

Dim a_strArgs() As String

Dim a_filename() As String

a_strArgs = Split(Command$, ",")

strFilename = a_strArgs(0)

strIDENT = a_strArgs(1)

strZeichnungsnr = a_strArgs(2)

strBezeichnung = a_strArgs(3)

sDocFileName = strFilename

tmpfile = strFilename

Zeichungsnr.Text = strZeichnungsnr

Bezeichnung.Text = strBezeichnung

Extractor = New SldWorks_ExtractBitmap.SldWorks_ExtractBitmap

a_filename = Split(tmpfile, ".")

'UPGRADE_WARNING: Die Standardeigenschaft des Objekts Extractor.ExtractBitmap konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'

nErrors = Extractor.ExtractBitmap(tmpfile, "C:\temp\" & strIDENT & ".bmp", 500, 500)

PictureBox1.Image = System.Drawing.Image.FromFile("C:\temp\" & strIDENT & ".bmp")

PictureBox1.Width = VB6.TwipsToPixelsX(VB6.PixelsToTwipsX(Me.Width) - VB6.PixelsToTwipsX(PictureBox1.Left) - 200)

PictureBox1.Height = VB6.TwipsToPixelsY(VB6.PixelsToTwipsX(PictureBox1.Width) * PictureBox1.ClientRectangle.Height / PictureBox1.ClientRectangle.Width)

' Startwert im Label ausgeben

Timer1.Start()

' Festellen des Dokumententypes über die Dateiendung

If InStr(LCase(sDocFileName), "sldprt") > 0 Then

nDocType = swDmDocumentPart

ElseIf InStr(LCase(sDocFileName), "sldasm") > 0 Then

nDocType = swDmDocumentAssembly

ElseIf InStr(LCase(sDocFileName), "slddrw") > 0 Then

nDocType = swDmDocumentDrawing

Else

' Keine SolidWorks-Datei

nDocType = swDmDocumentUnknown

MsgBox("Keine Solidworksdatei...")

End

End If

lbConfigurations.Items.Clear()

swClassFact = CreateObject("SwDocumentMgr.SwDMClassFactory")

swDocMgr = swClassFact.GetApplication(swDMLicenseKey)

swDoc11 = swDocMgr.GetDocument(sDocFileName, nDocType, True, iRetVal)

swDoc = swDocMgr.GetDocument(sDocFileName, nDocType, True, iRetVal)

Debug.Print("File = " & swDoc.FullName)

If nDocType = swDmDocumentDrawing Then

'Wenn es sich um eine Zeichnung handelt, muss die Vorschau anders

'extrahiert werden, als bei Modellen, da es hier keine Konfigurationen gibt

'Leider gibt es da auch keine direkte Funktion GetPreview oder so

oByteArray = swDoc11.GetPreviewBitmapBytes(iRetVal)

oStream.Write(oByteArray, 0, oByteArray.Length)

pbPreview.Image = System.Drawing.Image.FromStream(oStream)

Else

'Bei Modellen die Listbox mit den Konfigurationsnamen füllen,

'die Vorschau wird dann bei Auswahl einer Konfig erzeugt.

swCfgMgr = swDoc.ConfigurationManager

oCfgNameArr = swCfgMgr.GetConfigurationNames

For Each Me.sCfgName In oCfgNameArr

swCfg = swCfgMgr.GetConfigurationByName(sCfgName)

lbConfigurations.Items.Add(sCfgName)

Next

End If

End Sub

Sub ShowConfigurationPreview(ByVal sConfig As String)

If nDocType = swDmDocumentDrawing Then Exit Sub

swCfg = swCfgMgr.GetConfigurationByName(sConfig)

oPreview = swCfg.GetPreviewBitmap(iRetVal)

pbPreview.Image = oMyAxHost.GetImage(oPreview)

Debug.Print("ShowConfigurationPreview(" & sConfig & ")")

End Sub

Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click

swDoc.CloseDoc()

End

End Sub

Dim zaehler As Integer = 40 ' Startwert festlegen

Private Sub InitializeTimer()

' Timer-Intervall auf eine Sekunde festlegen

Timer1.Interval = 1000

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Timer1.Tick

' Zählvariable um 1 verringern

zaehler -= 1

If zaehler = -1 Then

' Timer anhalten

Timer1.Stop()

' Meldung anzeigen

End

' Startwert neu setzen

zaehler = 60

End If

' Startwert im Label anzeigen

ProgressBar1.Value = CStr(zaehler)

End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

End

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Timer1.Stop()

End Sub

End Class


[Diese Nachricht wurde von Schraml am 27. Okt. 2008 editiert.]

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

Schraml
Mitglied
Administrator


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

Beiträge: 22
Registriert: 18.07.2006

Solidworks 2008

erstellt am: 27. Okt. 2008 20:38    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 KMassler 10 Unities + Antwort hilfreich

Problem gelöst.
Hatte die falschen Dlls eingebunden

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

erstellt am: 28. Okt. 2008 07: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

Freut mich  

Da ich SWX 2008 bisher nicht einsetze (nur auf einer Testmaschine, auf der nicht programmiert wird), hätte ich dir da jetzt auch nicht weiter helfen können.

Aber beim Überfliegen von deinem Code sind mir ein paar Kleinigkeiten aufgefallen
1. Wäre gut, wenn du Code hier auch strukturiert darstellen würdest - mit Einrückungen und ohne große Zeilenabstände, macht das ganze für uns lesbarer.
2. du hast da die Zeile
      a_filename = Split(tmpfile, ".")
Erstens ist der Punkt ein schlechter Trenner für Dateinamen, da er ja ein ganz normaler Bestandteile des Dateinamens sein kann.
Zweitens gibt es ab Framework 3.0 (oder wars 3.5?) eine Erweiterung des Typs String: der hat das "Split" als Methode eingebaut. Das hieße dann etwa
      a_filename = tmpfile.split(".")
Ist aber Geschmackssache und mit Framework 2.0 noch nicht verfügbar.

2. Im Teil
' Festellen des Dokumententypes über die Dateiendung
If InStr(LCase(sDocFileName), "sldprt") > 0 Then
nDocType = swDmDocumentPart
ElseIf InStr(LCase(sDocFileName), "sldasm") > 0 Then
nDocType = swDmDocumentAssembly
ElseIf InStr(LCase(sDocFileName), "slddrw") > 0 Then
...
suchst du irgendwo im Dateinamen nach der Dateiendung.
Die Wahrscheinlichkeit, dass das passiert ist zwar extrem gering, aber grundsätzlich ist es natürlich möglich, dass die Dateiendung ganz normaler Bestandteil des Dateinamens ist- und dann bist du aufgeflogen.
Besser wäre, du suchst von rechts 7 Stellen (Endung incl. Punkt), etwa so:
            Select Case UCase(Microsoft.VisualBasic.Right(sDocFileName, 7))
                Case ".SLDPRT"
                    nDocType = swDmDocumentPart
                Case ".SLDASM"
                    nDocType = swDmDocumentAssembly
                Case ".SLDDRW"
                    nDocType = swDmDocumentDrawing
            End Select

So, das reicht erst mal, viel Spaß weiterhin damit. 
------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...   

[Diese Nachricht wurde von KMassler am 28. Okt. 2008 editiert.]

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles... i.R.



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

Beiträge: 2678
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
privat:
ab 2024 Onshape
seit 2025 SolidWorks for Makers

erstellt am: 28. Okt. 2008 09:08    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

Ups ist das peinlich!
Das mit den Dateiendungen stammt ja aus meinem eigenen Snippet bzw. steht da auch so drin, wie ich es bei dir kritisiert habe.

Na, man lernt nie aus.
Ich werde das auch auf http://www.mysldworks.de sofort berichtigen!!

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat...

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