Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks Enterprise PDM
  Fragen zum Thema SOLIDWORKS PDM Strukturkopie / Copy tree

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
  
E-Book: Simulation für Hightech Innovationen
Autor Thema:  Fragen zum Thema SOLIDWORKS PDM Strukturkopie / Copy tree (2475 mal gelesen)
SWX-Quäler
Mitglied
Software Developer


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

Beiträge: 34
Registriert: 04.07.2016

Windows 7 Professionel SP1
SOLIDWORKS Premium 2017 SP2.0 X64 Edition
SOLIDWORKS PDM Professional 17.02.0063

erstellt am: 11. Apr. 2017 10:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Nr_1_Strukturkopie.jpg


Nr_4_Strukturkopie.jpg


Nr_5_Strukturkopie.jpg

 
Guten Tag,

ich habe einige Fragen zum Thema SOLIDWORKS PDM "Strukturkopie / Copy tree" und hoffe dabei auf Eure Hilfe und dass Ihr mich in die richtige Richtung schubsen werdet.        

Istzustand:
Meine Kollegen aus der Konstruktion wünschen sich eine (Teil-)Automatisierung der Strukturkopie, weil sie in unserem PDM immer wieder Geräte (Assemlies) nach einem bestimmten Schema anlegen. Diese Automatisierung bekomme ich auch hin, d.h. Assemblies vom Ort A im PDM nach dem Ort B im PDM zu kopieren. Mein Problem an der Sache ist, dass ich es nicht schaffe, die Referenzen der Dateien (Assembly plus Einelteile) am Ort B zu aktualisieren. Hier stehe ich auf dem Schlauch und hoffe auf Eure hilfreichen Ratschläge.

Zur Veranschaulichung hänge ich mal eine grobe Auflistung der von mir genutzten Befehle und drei Screenshots an:

Screenshot 1: Ort A im PDM
Screenshot 2: Mein Programm
Screenshot 3: Ort B im PDM


Code:

------------------------------------
Copytree / Strukturkopie (C++ / VC6)
------------------------------------

Tresoransicht holen
IEdmVault7Ptr pdmVault = getTresorAnsicht();

Gets an interface to the file with the specified file system path.
IEdmFile5Ptr pdmFile = pdmVault->GetFileFromPath(_bstr_t(csQuelle), &pdmQuellOrdner);

Gets an interface to the files that reference or are referenced by this file.
IEdmReference10Ptr pdmReference = pdmFile->GetReferenceTree(pdmQuellOrdner->ID, 0L);

Starts an enumeration of child references for the specified configuration.
IEdmPos5Ptr pdmPos = pdmReference->GetFirstChildPosition4(
&pbsProjectName, //*pbsProjectName
VARIANT_TRUE, //bIsTopParent
VARIANT_TRUE, //bPermitReadLocal
VARIANT_TRUE, //bGetSuppressedComponent
EdmRef_File, //EdmRefFlags Enumeration: EdmRef_File = 1 = Item to file reference
_T(""), //If an empty string is passed to bsConfiguration, then the file's common configuration is used.
0L //Version for which to get references; use 0 for latest version
);

if (VARIANT_FALSE == pdmPos->IsNull)
{
Copies a file from a different folder in the vault to this folder.
long lRetFileID = pdmZielDir->CopyFile2(
pdmReference->GetFileID(), //lFileID
pdmReference->GetFolderID(), //lSrcFolderID
(long)m_hWnd, //lParentWnd
&lErrorCode, //*plErrorCode
(_bstr_t)csZielName, //bsNewName
EdmAdd_Simple //lFlags
);

//------------------------------
//Die weiteren Kinder ermitteln.
//------------------------------
while (VARIANT_FALSE == pdmPos->IsNull)
{
Enumerates the files referenced by this file.
IEdmReference10Ptr pdmRef = pdmReference->GetNextChild(pdmPos);

Copies a file from a different folder in the vault to this folder.
lRetFileID = pdmZielDir->CopyFile2(
pdmRef->FileID, //lFileID
pdmRef->FolderID, //lSrcFolderID
(long)m_hWnd, //lParentWnd, long *plErrorCode, _bstr_t bsNewName, long lFlags)
&lErrorCode, //*plErrorCode, _bstr_t bsNewName, long lFlags)
(_bstr_t)csZielName, //bsNewName
EdmAdd_Simple //lFlags)
);
}


...Korrigiere die Referenzen...

Creates a utility interface of the specified type.
IEdmRawReferenceMgrPtr pdmRefMgr = pdmVault->CreateUtility(EdmUtil_RawReferenceMgr);

Opens a file.
VARIANT_BOOL varRetval = pdmRefMgr->Open((_bstr_t)csZiel);

SAFEARRAY *pSA

Get a list of all of the file references in the opened file.
HRESULT hres = pdmRefMgr->GetReferences(&pSA);

if (S_OK == hres)
{
Referenzen anpassen für alle Elemente des SafeArrays
Dateipfad: Bleibt immer gleich
Dateiname: 4000231160.SLDASM bzw. 4000231160_BOLZEN.SLDPRT
{
pdmRawRef[i].mbsIncludePath = "Auf neuen Dateipfad setzen"; E:\xxxxx EPDM\Geräte\4000231160\CAD\4000231160.SLDASM
pdmRawRef[i].mbsRefName = "Auf neuen Dateinamen setzen"; 4000231160.SLDASM
}
}

Updates the include paths for the file references.
hres = pdmRefMgr->UpdateReferences(pSA);

Closes the opened file.
hres = pdmRefMgr->Close();
}


Kopieren innerhalb des EPDM funktioniert mit Fehlermeldungen *) und ohne Referenzen (Datenkarten müssen ebenfalls noch ausgefüllt werden)

*)
<262719> = <0x4023F> = The vault has the "Do not allow duplicate file names in the file vault" or "Do not allow duplicate file names with these extensions" option selected, and a file with the same name or filename extension exists in the vault


[Diese Nachricht wurde von SWX-Quäler am 11. Apr. 2017 editiert.]

[Diese Nachricht wurde von SWX-Quäler am 11. Apr. 2017 editiert.]

[Diese Nachricht wurde von SWX-Quäler am 11. Apr. 2017 editiert.]

[Diese Nachricht wurde von SWX-Quäler am 11. Apr. 2017 editiert.]

[Diese Nachricht wurde von SWX-Quäler am 11. Apr. 2017 editiert.]

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

Ulf St.
Mitglied
IT-Verantwortlicher ERP/PDM/CAD


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

Beiträge: 36
Registriert: 10.04.2017

SolidWorks 2017 SP5
SQL-Server 2008-2016

erstellt am: 25. Apr. 2017 22:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SWX-Quäler 10 Unities + Antwort hilfreich

Hallo SWX-Quäler,

ich stehe evtl. vor einer ähnlichen Aufgabe, und mein Ansatz zum Erstellen der Struktur wäre die PackAndGo-API gewesen. Hast du zwischenzeitlich eine Lösung für dein Problem gefunden, um die PDM-Funktion verwenden zu können?

------------------
Mit freundlichen Grüßen
Ulf St.

bii.ustockburger.de

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

SWX-Quäler
Mitglied
Software Developer


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

Beiträge: 34
Registriert: 04.07.2016

Windows 7 Professionel SP1
SOLIDWORKS Premium 2017 SP2.0 X64 Edition
SOLIDWORKS PDM Professional 17.02.0063

erstellt am: 26. Apr. 2017 13:21    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 Ulf St.:
Hallo SWX-Quäler,

ich stehe evtl. vor einer ähnlichen Aufgabe, und mein Ansatz zum Erstellen der Struktur wäre die PackAndGo-API gewesen. Hast du zwischenzeitlich eine Lösung für dein Problem gefunden, um die PDM-Funktion verwenden zu können?



Hallo Ulf,

die Vorgabe (Pack and Go vs. EPDM Copy Tree/Strukturkopie) kam von unseren Konstrukteuren. Sie haben sich für EPDM Copy Tree/Strukturkopie entschieden. Leider habe ich noch keine Lösung gefunden.

Hier meint ein Forist, dass Copy Tree eventuell einen Fehler hat.
https://forum.solidworks.com/thread/113677

Zitat:

Just experienced this same issue.  My only suggestion is switch to Pro-E.  SolidWorks sucks at top down modeling because of this and many other weaknesses in this area.  Very Frustrating.  Can we all put in a enhancement request for this functionality.  this is unacceptable behavior.

In my model one of the inserted parts updated to the new master model and the reset continued to reference the old master.  Took me a minute to figure out why one of my parts had updated but the other hadn't. Definitely a bug



Hier mal für Dich eine kleine Entscheidungshilfe für und wider Pack and Go Vs Copy Tree:

Using Pack and Go Vs Copy Tree with SOLIDWORKS PDM
http://www.javelin-tech.com/blog/2016/05/pack-go-vs-copy-tree-solidworks-pdm/

Zitat:

Using Pack and Go

Pack and Go doesn’t know about PDM.  It only talks to the SOLIDWORKS files themselves, and gathers its file list directly from them.  This works fine outside of a vault, but in the vault we aren’t just working with files, we work with versions of files and there is no way for Pack and Go to know about that. Pack and Go doesn’t have the ability to check information within the PDM database.


SOLIDWORKS PDM Copy Tree Tool
http://www.javelin-tech.com/blog/2014/07/solidworks-pdm-copy-tree/

Zitat:

SOLIDWORKS PDM Copy Tree offers the same functionality as SOLIDWORKS Pack & Go, but it contains file management tools that are built specifically for use with SOLIDWORKS PDM.

Pack and Go vs. EPDM's Copy Tree - Who Wins?
https://www.3dvision.com/blog/entry/2011/05/12/pack-and-go-vs-epdms-copy-tree-who-wins.html

Zitat:

Pack and Go vs. EPDM's Copy Tree - Who Wins?

When working with files outside of the vault, you have no choice -Pack and Go is the only tool you have, and it is a good tool -all the cool kids are using it.

However, for copying files within SolidWorks Enterprise PDM, both tools are an option, which one should you use?

Easy. Copy Tree. No question, no contest. I don't want to hear your argument for Pack and Go...your argument is bad. Copy Tree gives you:

    Speed
    Less Mistakes
    More Options


Ich wünsche Dir weiterhin viel Erfolg bei Deinen Vorhaben,

SWX-Quäler

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

Ulf St.
Mitglied
IT-Verantwortlicher ERP/PDM/CAD


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

Beiträge: 36
Registriert: 10.04.2017

SolidWorks 2017 SP5
SQL-Server 2008-2016

erstellt am: 01. Mai. 2017 19:36    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 SWX-Quäler 10 Unities + Antwort hilfreich

Hallo SWX-Quäler,

vielen Dank. So wie ich das verstehe, haben die User in den aufgeführten Threads Probleme mit den Funktionen "Strukturkopie / Copy tree" und "Pack & Go", nicht mit den APIs.

Die "Pack & Go-API" funktioniert aus meiner Sicht sehr gut, bis auf die Einschränkung, dass die Namen der Baugruppenkomponenten nicht aktualisiert werden. Das lässt sich aber in meinem Fall problemlos beheben, indem das kopierte Teil nach dem Hinzufügen zum Tresor automatisch geöffnet, neu aufgebaut und gespeichert wird. Zuvor wird über die "EPDM-API" die nächste freie Seriennummer ermittelt, und mit der "SwDocumentManager-API" alle notwendigen Anpassungen in den Modellen und Zeichnungen, wie z.B. das Aktualisieren der Dateieigenschaften, durchgeführt.

Empfehlung von mir: Schau es dir an, denn es funktioniert und ist in relativ kurzer Zeit umsetzbar.

------------------
Mit freundlichen Grüßen
Ulf St.

bii.ustockburger.de

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