| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: Schriftfeld Benutzerdefinierte Eigenschaft (1121 mal gelesen)
|
Gunnar1973 Mitglied Dipl. Gwl.

 Beiträge: 27 Registriert: 13.07.2004 SolidWorks 2006/2007/2008/2009
|
erstellt am: 28. Nov. 2008 18:52 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, weiß jemand, wie ich im Schriftfeld als benutzerdefinierte Eigenschaft den Rechnernamen automatisiert eintragen kann (ähnlich des Zeichnugnsnamens, Blattformat etc..)? Besten Dank für Eure Hilfe! Gruß ------------------ CSWP 08/2006 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 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: 01. Dez. 2008 09:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Gunnar1973
Hallo Gunnar, das geht so weit ich weiß gar nicht automatisch, genau wie der eingeloggte Benutzer musst du dir das selbst per Makro ermitteln, dann in eine Dateieigenschaft schreiben lassen und diese dann verlinken. für eine automatisiertes Ausfüllen beim Speichern musst du dann ein Addon haben (als DLL), was ein Speichern-Event anfängt, die Funktion dann ausführt und weitermacht. Als Beispiel wie du den Namen der Maschine rausbekommst hier ein Schnipsel mit Windows API:
Code: ' ********************************************************************** ' * Ergänzung zu: http://solidworks.cad.de/mm_04.htm ' * Computername per API auslesen ' * ' * 01.12.2008 Stefan Berlitz (stefan.berlitz@solidworks.cad.de) ' * http://solidworks.cad.de ' * http://swtools.cad.de ' **********************************************************************' Vor dem Aufruf müssen die API deklariert werden. Die Deklarationen ' von API-Calls entnehmen Sie bitte der jeweiligen Dokumentation :-)) ' ACHTUNG, die Deklarationen entweder in einer Zeile schreiben ' ansonsten VB typisch mit _ am Zeilenende Private Declare Function GetComputerName Lib "kernel32" Alias _ "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long ' dann noch ein paar Variablen die benutzt werden Dim strTemp As String Dim strCompName As String Dim strMessage As String Dim retval As Long Sub Main() ' die Beispielfunktionen geben einen "Nullbyte-terminierten String" ' wie in C üblich zurück, also müssen wir uns in VB etwas behelfen ' dazu erst mal einen Puffer vorbereiten, der nur aus CHR$(0) besteht ' Computername holen strCompName = String(16, Chr$(0)) retval = GetComputerName(strCompName, 16) strCompName = Left$(strCompName, InStr(strCompName, Chr$(0)) - 1) ' im Beispiel werden jetzt einfach die beiden Informationen ' in einer Messagebox ausgegeben strMessage = "Aktuell auf Maschine " + strCompName + Chr$(13) MsgBox strMessage End Sub
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 |
MWN Mitglied Dipl.-Ing.
 
 Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 01. Dez. 2008 09:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Gunnar1973
Guten Morgen Gunnar, und wenn ich Stefan's Gedanken fortsetze, dann kannst du mit folgendem Code die benutzerdefinierte Dateieigenschaft eintragen: Code: Dim swApp As SldWorks.SldWorks Dim Part As ModelDoc2 Dim SelMgr As Object Sub main() Dim MyExt As ModelDocExtension Dim MyPropMan As CustomPropertyManager Dim MyError As Long, MyWarn As Long Dim myPrice As String Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Set MyExt = Part.Extension Set MyPropMan = MyExt.CustomPropertyManager("") myPrice = InputBox("Bitte den Preis eingeben", "Preisabfrage") retval = MyPropMan.Add2("Preis", 30, myPrice) If retval = 1 Then Call MsgBox("Eintragung erfolgreich", vbOKOnly) Else Call MsgBox("Eintragung fehlgeschlagen", vbOKOnly) End If Part.Save3 0, MyError, MyWarn End Sub
Ist nur ein Ausschnitt und ich glaub ein Paar Definitionen können auch noch rausgeschmissen werden! Ist die Eigenschaft schon drinnen, dann bringt er die Meldung, dass die Eintragung fehlgeschlagen ist! HTH Grüße Tobias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunnar1973 Mitglied Dipl. Gwl.

 Beiträge: 27 Registriert: 13.07.2004 SolidWorks 2006/2007/2008/2009
|
erstellt am: 01. Dez. 2008 15:25 <-- editieren / zitieren --> Unities abgeben:         
|

| |
VBSpawn Mitglied Programmierer
  
 Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 01. Dez. 2008 15:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Gunnar1973
Hi zusammen, nicht ganz so zuverlässig wie Stefans auslesen des PC's aber dafür ziemlich kanpp kann der Name auch über Call MsgBox(Environ("COMPUTERNAME")) ermittelt werden. (Bei fast allen PC's sind die Umgebungsvariablen entsprechend gefüllt (start -> ausführen -> cmd -> enter -> set -> enter ) alles was dort steht kann mit Environ(%PARAMETER%) abgefragt werden.) Gruß Micha
------------------ Stell dir vor, es geht, und keiner kriegts hin. 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 >>)
 |