| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SOLIDWORKS PDM Professional im Einsatz bei Wölfle, ein Anwenderbericht
|
Autor
|
Thema: Benennung im Schriftfeld (5960 mal gelesen)
|
neo14515x Mitglied Student, Nebenjob: Konstruktion im Sondermaschinenbau
Beiträge: 24 Registriert: 02.02.2005 SWX 2005 man höre und staune auf einem Toshiba Sattelite S2410-404 und es funktioniert ohne Probleme :-)
|
erstellt am: 01. Sep. 2006 10:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich bräuchte schnelle Hilfe. Ich möchte die "Benennung" eines Teils, die ich in der Konfiguration eines Teils mit "Benutzerdefinierter Name" angegeben habe im Schriftfeld der Zeichnung haben. Leider wird mir diese Auswahl bei den "Eigenschaften-Links" nicht angezeigt. Ich hoffe Ihr versteht mein Problem und könnt mir Helfen. Im vorraus schon mal recht herzlichen Dank. Gruß Alexander ------------------ Probleme sind da um gelöst zu werden! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
serpenti Mitglied
Beiträge: 13 Registriert: 14.06.2005
|
erstellt am: 01. Sep. 2006 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
|
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 01. Sep. 2006 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Hallo Alexander, Du willst, daß die Benennung des Teils, die Du in der SWX -Stückliste findest, auch auf der Zeichnung steht. Und das hat -so glaube ich- SWX nicht vorgesehen. Du kannst zwar mit $Benennung in der Tabelle diesen alternativen Namen für die Stückliste an die Konfiguration hängen. Aber Du bekommst ihn nicht mehr zurück. Du kannst aber in das Schriftfeldprogramm von Stefan Berlitz noch etwas einfügen, das Dir die Benennung holt und in eine benutzerdef. Eigenschaft schreibt: Code: If Configuration.UseAlternateNameInBOM Then eigensch(1) = Configuration.AlternateName If eigensch(1) = "" Then eigensch(1) = Configuration.Name End If Else eigensch(1) = dateiname End If
Diese benutzerdef. Eigenschaft holst Du dann mit $PRPSHEET:".... auf deine Zeichnung. Viele Grüße Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 01. Sep. 2006 17:51 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
hallo thomas5 jede beliebige eigenschaft die in einem teil oder einer konfiguration stehen, können im schriftkopf automatisch angezeigt werden, so ist es in solidworks vorgesehen einfach mal die hilfe und das forum durchsuchen suchbegriffe: $PRP eigenschaften schriftkopf gruss martin ------------------ Wann wird SolidWorks endlich beim "Bohrungsassistenten" und "Intelligenten Verbindungselementen" die Qualität von Inventor haben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 01. Sep. 2006 21:48 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Hallo Martin, bitte verrate mir das das Zauberwort "$PRP.... " für die alternative Benennung einer Konfiguration. Ich konnte es nicht finden. Sicher sind auch viele andere User für Deinen Tipp dankbar. Viele Grüße! Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 02. Sep. 2006 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
ich weis ihn auch nicht so auswendig, aber versuche folgendes (damit habe ich damals einiges rausfinden können) erstelle einen teil mit 2 konfigurationen dann ändere in einer konfiguration die gesuchte eigenschaft dann füge eine tabelle ein und lass sie automatisch erstellen (übrigens, so mache ich immer die ergänzungen bei tabellen für konfigurationen, ist meiner meinung der übersichstlichste weg) dann sollten alle eigenschaften, die verschieden sind (meist noch mehr) automatisch in der tabelle erscheinen hoffe die alternative beschreibung wird mit aufgelistet bin vorher von selbst deffinierten eigenschaften ausgegangen, würde mich aber wundern, wenn gerade diese eigenschaft (wenn sie eine ist) nicht auch in die liste geschrieben würde gruss martin hab zu hause leider kein solidworks (würd mein 800 duron auch nicht begrüssen ) ------------------ Wann wird SolidWorks endlich beim "Bohrungsassistenten" und "Intelligenten Verbindungselementen" die Qualität von Inventor haben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neo14515x Mitglied Student, Nebenjob: Konstruktion im Sondermaschinenbau
Beiträge: 24 Registriert: 02.02.2005 SWX 2005 man höre und staune auf einem Toshiba Sattelite S2410-404 und es funktioniert ohne Probleme :-)
|
erstellt am: 02. Sep. 2006 16:10 <-- editieren / zitieren --> Unities abgeben:
Guten Tag die Herren, erstmal vielen Dank für die zahlreichen Tipps und Tricks. Doch leider hat nichts geholfen. Den Trick mit der Tabelle hatte ich auch schon probiert. Bei allen Eigenschaften entsteht in der Tabelle ein "$PRP@..." nur bei Benennung entsteht ein einfaches "$BENENNUNG" und genau dieses kann ich im Schriftfeld nicht ansprechen. SWX sieht das $BENENNUG nicht als Eigenschaftslink an sondern als Text. Eigentlich genau wie Thomas es beschrieben hat. Was funktioniert ist das ansprechen per Macro als Configuration.AlternateName. Diese Lösung ist aber nicht unbedingt das was ich gesucht habe. Wird aber wohl das einzige sein was übrig bleibt. Hierzu hätt ich dann aber noch eine Frage. Ist es möglich, die Konfiguration eines Teils per Macro zu ändern, ohne das Teil per Macro erstmal zu öffnen?? Als Beispiel: Bis jetzt öffne ich ein Teil mittels Application.SldWorks.OpenDoc und ändere hierin die Konfiguration mit Application.SLDWorks.ActiveDoc.EditConfiguration Geht dies auch ohne das Teil zu öffene?? Schöne Grüße Alexander ------------------ Probleme sind da um gelöst zu werden! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 02. Sep. 2006 20:49 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
sende dir per pm meine mailadresse sende mir bitte deinen zeichnung und die teiledatei zu, werde mir das ganze dann am montag mal mit solidworks ansehen und nicht blind weiter schreiben gruss martin ------------------ Wann wird SolidWorks endlich beim "Bohrungsassistenten" und "Intelligenten Verbindungselementen" die Qualität von Inventor haben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neo14515x Mitglied Student, Nebenjob: Konstruktion im Sondermaschinenbau
Beiträge: 24 Registriert: 02.02.2005 SWX 2005 man höre und staune auf einem Toshiba Sattelite S2410-404 und es funktioniert ohne Probleme :-)
|
erstellt am: 03. Sep. 2006 02:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Martin, es gibt zu dem Thema kein Teil und auch keine Zeichnung. Es war eine rein allgemeine Frage. Dementsprechend möchte ich ja mein Schriftfeld anpassen. Da es anscheinend nicht möglich ist, die Benennung im Schriftfeld einzufügen fang ich garnicht an meine Teile so zu benennen. Nicht dass ich dann irgendwann 100 Teile wieder umkonfigurieren muss weil ich alles mit "Benennung" benannt habe. Aber du kannst es ganz einfach Testen. Teil erstellen (einfach ein Zylinder oder sonst ein Gschmarri) -> KonfigurationsManager -> Eigenschaften der Konfiguration -> und bei "Stücklistenoptionen" dem Teil ein "Benutzerdefinierten Namen geben" Ist eine Sache von 30 Sekunden. Anschließend neue Zeichnung erstellen, Teil einfügen und im Schriftfeld versuchen die Benennung zu verlinken. Schöne Grüße Alexander ------------------ Probleme sind da um gelöst zu werden! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Edge Mitglied Konstrukteur
Beiträge: 38 Registriert: 12.01.2006 MS Windows XP Intel Pentium 4 3,8GHz 4GB RAM ATI FireGL V3250 SW 2007
|
erstellt am: 04. Sep. 2006 09:13 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Hallo zusammen! Solidworks arbeitet bei den Dateieigenschaften folgendermassen: Die Dateieigenschaften könnnen allgemein oder konfigurationsspezifisch erstellt werden. Es dürfen hier auch die gleichen Namen benutzt werden. Bei Verknüpfungen zu den Dateieigenschaften nimmt Solidworks grundsätzlich die Eigenschaften, die unter konfigurationsspezifisch angelegt wurden. Nur wenn die Eigenschaft hier nicht besteht, wird die allgemnein definierte genommen. Gruß aus WW The Edge Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dopplerm Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3627 Registriert: 11.02.2005 Win 10 SWX 2019 SP 5.0
|
erstellt am: 04. Sep. 2006 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
hallo neo! habs jetzt getestet, anscheinend, ist diese Variable nicht abzufragen, wundert mich werde mal WB8 hierher einladen gruss martin ------------------ Wann wird SolidWorks endlich beim "Bohrungsassistenten" und "Intelligenten Verbindungselementen" die Qualität von Inventor haben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kaehner Mitglied Dipl. Ing.
Beiträge: 448 Registriert: 15.01.2002
|
erstellt am: 04. Sep. 2006 09:44 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Zitat: Original erstellt von dopplerm: habs jetzt getestet, anscheinend, ist diese Variable nicht abzufragen, wundert mich
Ich habe mich zu dem Thema auch schon totgesucht und bin zum gleichen Ergebnis gekommen. Die Variable "angezeigte Benennung" gibts einfach nicht. Das einzige was nach meinem Kenntnisstand hilft ist, wie oben beschrieben, den Namen per API auszulesen und in eine neue Variable zu schreiben. Oder der Konfiguration den Namen geben (also z.B. die Zeichnungsnummer anstelle von Standard) der auch in der Zeichnung angezeigt werden soll und dann $PRP:SW-Konfigurationsname abzurufen. ------------------ Gruß Manuel http://www.kb-ohnemus.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WB8 Mitglied Application Engineer
Beiträge: 444 Registriert: 19.03.2004 SolidWorks Elite Applications Engineer
|
erstellt am: 04. Sep. 2006 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Es ist nun mal so, dass SolidWorks eine Reihe an benutzerdefinierten Eigenschaften von Haus aus zu verfügung stellt (Konfigurationsname, Beschreibung, Kommentar etc.). Neben diesen "Konfigurationseigenschaften" gibt es noch zusätzlich "Stücklistenoptionen" die wie der Name schon sagt NUR für die Stückliste gedacht sind. Man kann also schon vom Namen her davon ausgehen dass SolidWorks hier in 2 Richtungen geht. Es gibt wie oben angesprochen natürllich im API die Möglichkeit diesen namen auszulesen (Die Variable muss ja irgendwann gesetzt werden ) aber über die "normalen" SolidWorks Eigenschaften wird man nicht fündig. Sorry LG WB8 (der sich SEEEHR freut, den PhotoWorks Rendering Contest gewonnen zu haben!!!! ) ------------------ ->dream believe dare do!<- www.wb8.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 04. Sep. 2006 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
@neo14515x: am Besten fragst Du Deinen Support!! Vielleicht wissen die ja etwas was hier niemand weiss....?! Per Exceltabelle wäre es ganz einfach, bedingt nur, dass Du in jedem Teil eine Tabelle haben musst! Sagen wir mal, Deinen Spalte B heisst $BENENNUNG, dann machst Du eine Spalte C und benennst diese $PRP@Benennung_NEO, dann schreibst Du in Zelle C2 -> =B2 und fertig. Nachteile: Du brauchst immer eine Tabelle; eine Tabelle aktualisieren ist ... ehm, naja... ein riesen MIST! ------------------ SolidWorks is my friend... SolidWorks, frieeeend! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neo14515x Mitglied Student, Nebenjob: Konstruktion im Sondermaschinenbau
Beiträge: 24 Registriert: 02.02.2005 SWX 2005 man höre und staune auf einem Toshiba Sattelite S2410-404 und es funktioniert ohne Probleme :-)
|
erstellt am: 04. Sep. 2006 19:31 <-- editieren / zitieren --> Unities abgeben:
Hallo die Herren, danke für die zahlreichen Versuche. Aber gut zu wissen, dann werden die Teile halt mittels anderer Variablen benannt. Ist ja auch keine große Sache. Schöne Grüße Alexander ------------------ Probleme sind da um gelöst zu werden! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Winni69 Mitglied
Beiträge: 4 Registriert: 28.03.2008
|
erstellt am: 01. Apr. 2008 00:33 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Hallo Thomas, ich versuche gerade auch, für jede Konfiguration die Konfigurationsbeschreibung (Feld unter dem Konfigurationsnamen) und die benutzerdefinierte Benennung aus der Konfigurtion auszulesen, um diese Werte dann in eine benutzerdefinierte Eigenschaft zu schreiben. Ziel: Zugang zu diesen Werten mittels $PRP: bzw. $PRPSHEET: Habe mir aus verschiedenen VBA-Codes (u.a. auch deinem) versucht, etwas zusammen zu basteln. Leider komme ich als Fast-VBA-Laie nicht wirklich zum Ziel. Kannst du da vielleicht mal drüberschauen? Code: **************************************************************
Dim swApp As Object Dim Model As Object Dim Configuration As Object Dim KonfigDes As Object Dim Konfigname As Object Sub main() Dim Anzahl As Long Dim i As Long Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True swApp.UserControl = True Set Model = swApp.ActiveDoc If Model Is Nothing Then MsgBox "Kein Dokument aktiv" End End If ' Anzahl der Konfigurationen holen Anzahl = Model.GetConfigurationCount ' Konfigurationsbeschreibung in die benuterdefinierte Eigenschaft "Beschreibung" ' für jede Konfiguration hineinschreiben If Anzahl > 0 Then For i = 0 To Anzahl - 1 Konfigname = Model.GetConfigurationNames KonfigDes = Configuration.AlternateName Model.CustomInfo2(Konfigname, "Beschreibung") = KonfigDes Next End If Set swApp = Application.SldWorks End Sub **************************************** P.S: Bei der Zeile "Konfigname = Model.GetConfigurationNames" bleibt der Debugger das erste mal stehen. Vielen Dank schon im Voraus! Gruß Winni69
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 01. Apr. 2008 07:29 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Zitat: Original erstellt von Winni69: Bei der Zeile "Konfigname = Model.GetConfigurationNames" bleibt der Debugger das erste mal stehen. :(
Ist auch gleich klar wieso! ;) Wie Du sicher in der API-Hilfe gesehen hast, ist das ein Array: Model.GetConfigurationNames. Dazu müsstest Du noch Konfigname as Variant machen und nicht als Object. Du findest in der API-Hilfe ein Schnippsel welcher eine Liste der Konfigurationen herausgibt. Vielleicht hilft Dir dieser weiter. ...Wenn wir schon dabei sind:
Code: '---------------------------------------- Option Explicit Sub main() Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim vConfigName As Variant Dim sConfigName As String Dim swConfig As SldWorks.configuration Dim i As Long Dim bRet As Boolean Set swApp = CreateObject("SldWorks.Application") Set swModel = swApp.ActiveDoc Set swConfig = swModel.GetActiveConfiguration Debug.Print "File = " & swModel.GetPathName Debug.Print " Active Config = " & swConfig.Name Debug.Print "" vConfigName = swModel.GetConfigurationNames For i = 0 To UBound(vConfigName) sConfigName = vConfigName(i) Set swConfig = swModel.GetConfigurationByName(sConfigName) Debug.Print " ConfigName(" + Str(i) + ") = " + sConfigName Debug.Print " UseAlternateNameInBOM = " + Str(swConfig.UseAlternateNameInBOM) Debug.Print " AlternateName = " + swConfig.alternateName Debug.Print " Comment = " + swConfig.comment Debug.Print "" Next i End Sub '----------------------------------------
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 01. Apr. 2008 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für neo14515x
Zitat: Original erstellt von Winni69:
Code:
Dim Konfigname As Object Konfigname = Model.GetConfigurationNames
So, jetzt habe ich es wieder gefunden! Deine Zeilen sollten heissen: Code:
Dim Konfigname As String Konfigname = Model.GetActiveConfiguration.Name
------------------
[Diese Nachricht wurde von G. Dawg am 01. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |