Automatische Bearbeitung

Hallo zusammen .

Ich bin ein SW-Benutzer mit bestehenden  (Verlaufs-)Profilen.

Ich für meinen Teil finde sie ein bisschen "altmodisch".

Ich möchte mehrere Dinge automatisieren:

  • Automatisches Update des Browsers, z.B. mit dem Namen der Windows-Sitzung. (Umgebung("BENUTZERNAME"))
  • Automatische Erstellung eines konfigurationsspezifischen Parameters mit dem Namen 'Produktcode'
  • Und 3. in einigen Fällen, in denen wir ein vorhandenes Teil als vorhandene Basis nehmen, möchte ich das Datum in der Kartusche, das auf dem Parameter des Erstellungsdatums der Datei aufruft, durch das aktuelle Datum ersetzen.

Haben Sie Code-Beispiele oder praktische Lösungen?

 

Vielen Dank im Voraus.

 

Jey 

Um die Daten zu aktualisieren, habe ich in meiner Patrone das Datum des letzten Drucks eingegeben

Auf diese Weise hat der Plan immer das richtige Datum des Tages.

Für den Rest, wenn Sie die mycadtools-Tools haben, könnte es nützlich sein

5 „Gefällt mir“

Hallo

 

Was das aktuelle Datum betrifft, so habe ich als Eigenschaftslink die Anmerkung "SW-Date Courte(ShortDate)" eingefügt, d.h. das aktuelle Datum, wenn Sie es öffnen. Es gibt aber auch ein langes Date etc...

 

In der Hoffnung, dass dies helfen kann

2 „Gefällt mir“

nicht schlecht als Lösung Bart☺

Vielen Dank

Was die Bearbeitung Ihres Namens in der Patrone betrifft,

Sie müssen letzteres bearbeiten, eine Notiz hinzufügen, die an der Stelle des Namens des Autors im Titelblock steht, und eine Eigenschaft auf diese Notiz anwenden. Erstellen Sie eine Eigenschaft für die Datei, vergeben Sie einen Namen für diese Eigenschaft, im folgenden Beispiel ist es "Session", geben Sie den Typ "text" ein und setzen Sie den Wert $PRP: "Zuletzt gespeichert von", klicken Sie auf OK.

 

Nehmen Sie in der Liste Link zur Eigenschaft einfach die Eigenschaft Session, und die Notiz ändert sich in den Namen des PC-Benutzers.

 

Das wars


tuto_mise_a_jour_auto_de_lauteur.png

Hallo

Ich habe ein benutzerdefiniertes Eigenschaftenformular eingerichtet, das Datum wird in einem kleinen Kalender sehr praktisch ausgewählt, die Namen der Desinnatoren / Verifizierer / Genehmiger werden in Dropdown-Listen ausgewählt, alles bis zum C-Index, um alte Pläne schnell weiterentwickeln zu können. Der Rest wird automatisch abgeschlossen, Plannamen = Dateinamen, ....

Diese Methode ermöglicht es Ihnen, schnell alle Patronen aller Blätter auf die gleiche Weise zu vervollständigen, und um verschiedene Blätter zu haben, musste ich eine 3D-Kassette erstellen und Sie müssen mit den Ebenen jonglieren, um einige benutzerdefinierte Eigenschaften zu verbergen. Da wir jedoch nicht intern an mehreren Folios arbeiten müssen, ist diese Methode sehr praktisch, da wir regelmäßig alte Pläne bearbeiten.

2 „Gefällt mir“

P.Guyader : Danke, aber ich habe bereits eine Patrone, die automatisch aktualisiert.

Was ich ändern werde, ist der Name der anderen Person, der sich in den Dokumenteigenschaften befindet.

Wenn möglich mit Hilfe eines Makros, wäre ich in Ordnung.

 

A.Leblanc : Haben Sie einige Beispiele?

JEY

Hallo nochmal

Niemand hat eine Lösung, um der Konfiguration des Namens "Produktcode" einen bestimmten Parameter hinzuzufügen?

Und auch nicht für das Date?

 

Jey

Hallo ihr alle.

Zurück von der Avantanz lasse ich das Problem wieder aufleben.

  • Automatisches Update des Browsers, z.B. mit dem Namen der Windows-Sitzung. (environ("USERNAME")).
    - Die Version "letzter Benutzer" ist gut, passt aber nicht zu mir.
    - Ich möchte das Feld mit 1 Klick aktualisieren können
  • Automatische Erstellung eines konfigurationsspezifischen Parameters mit dem Namen 'Produktcode'
    vor allem, wenn ich historische Stücke verwende.
  • Für die Aktualisierung des Datums ist die Einstellung "Datum drucken" nicht schlecht, funktioniert aber historisch gesehen nicht.
    A.Leblanc : Wenn Sie ein Beispiel haben, das ich adaptieren könnte, wäre das cool.

Vielen Dank an alle 

Hallo
Wie a.leblanc richte ich ein Formular für benutzerdefinierte Eigenschaften in Form eines externen Programms ein, das über ein Makro aufgerufen wird, dieses Formular kann je nach Komplexität auch direkt das Makro sein.
Mit diesem Formular können Sie alle benutzerdefinierten Eigenschaften in einem neuen 3D erstellen, aber auch alle Eigenschaften des vorhandenen 3D abrufen und bei Bedarf ändern.
Ich habe mehrere benutzerdefinierte Eigenschaften erstellt (etwa dreißig in meinem Fall) und insbesondere den Autor, den Ersteller der Revision (er ist nicht unbedingt der ursprüngliche Autor), das Erstellungsdatum, das Revisionsdatum, die Revisionsbezeichnung, die Bezeichnung, etc. Ich bekomme auch das Material, den Dateinamen (identisch mit dem Artikelcode in meinem Fall), die Masse, etc... und natürlich befülle ich meine 2D-Patrone mit diesen Eigenschaften.
Die Eigenschaften Author und ReviewCreator sind selbstverständlich gleich dem UserName des PCs, die Erstellungs- und Überarbeitungsdaten sind die des Tages (nur wenn sie zum Zeitpunkt des Ladens des Makros für das Erstellungsdatum leer sind) und über einen kleinen Kalender editierbar (für die Verlaufsverwaltung oder Teilkopien).
Um benutzerdefinierte Eigenschaften per API zu verwalten, müssen Sie zu http://help.solidworks.com/2016/English/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IConfiguration~CustomPropertyManager.html gehen, alles andere ist nur Programmieren und Testen, je nachdem, was Sie tun möchten.

Herzliche Grüße


capture-dr.jpg
2 „Gefällt mir“

Hallo

Ich fülle alles im Raum über ein Formular aus, und wenn ich mein MEP erstelle , wird es dank der zwischen ihnen erstellten Verknüpfungen automatisch ausgefüllt.

1 „Gefällt mir“

Um an meinen vorherigen Beitrag anzuknüpfen, hier sind 3 Beispiele für Funktionen (in C #) zum Erstellen, Abrufen und Löschen von benutzerdefinierten Eigenschaften, seien Sie vorsichtig, dies sind nur Beispiele mit Links zu textBoxes aus einem UserForm:

// Exemple de fonction pour créer les propriétés personnalisées
private void CreerProprietes()
{
try
{
ModelDoc2 swModel = null;
swModel = ((ModelDoc2)(Program.swapp.ActiveDoc));
CustomPropertyManager PropMgr = null;
CustomPropertyManager PropMgr0 = null;
ConfigurationManager swConfigMgr;
Configuration swConfig;
swConfigMgr = swModel.ConfigurationManager;
swConfig = swConfigMgr.ActiveConfiguration;

int nb = 3;
string[] PropName = new string[nb];
string[] PropVal = new string[nb];

int i = 0;

PropName[i] = CodeArticle;
PropVal[i] = textBox1.Text.Trim();
i++;

PropName[i] = CreateDate;
if (textBox9.Text == "")
{
PropVal[i] = System.DateTime.Today.ToShortDateString();
}
else
{
PropVal[i] = textBox9.Text.Trim();
}
i++;

PropName[i] = Dessinateur;
if (textBox19.Text == "")
{
PropVal[i] = System.Environment.UserName.ToUpperInvariant();
}
else
{
PropVal[i] = textBox19.Text;
}
i++;

PropMgr0 = swModel.Extension.get_CustomPropertyManager("");

int value = 0;
for (int m = 0; m <= (nb - 1); m++)
{
value = PropMgr0.Add2(PropName[m], (int)swCustomInfoType_e.swCustomInfoText, PropVal[m]);
}
}
catch (Exception)
{
MessageBox.Show("Erreur lors de la création des propriétés personnalisées, Contactez l'administrateur.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}

// Exemple de fonction pour récupérer les propriétés personnalisées
private void ObtenirProprietes()
{
try
{
ModelDoc2 swModel = null;
swModel = ((ModelDoc2)(Program.swapp.ActiveDoc));
CustomPropertyManager PropMgr = null;
ConfigurationManager swConfigMgr;
Configuration swConfig;
swConfigMgr = swModel.ConfigurationManager;
swConfig = swConfigMgr.ActiveConfiguration;

int nNbrProps;
int j;
object[] vPropNames;
string valOut;
string resolvedValOut;
int custPropType;

PropMgr = swConfig.CustomPropertyManager;

nNbrProps = PropMgr.Count;

vPropNames = (object[])PropMgr.GetNames();

for (j = 0; j <= nNbrProps - 1; j++)
{
PropMgr.Get2(vPropNames[j].ToString(), out valOut, out resolvedValOut);
custPropType = PropMgr.GetType2(vPropNames[j].ToString());

if (vPropNames[j].ToString() == CodeArticle)
{
textBox1.Text = resolvedValOut.ToString();
}
if (vPropNames[j].ToString() == CreateDate)
{
textBox9.Text = resolvedValOut.ToString();
}
if (vPropNames[j].ToString() == Dessinateur)
{
textBox19.Text = resolvedValOut.ToString();
}
}
}
catch (Exception)
{
MessageBox.Show("Erreur lors de l'obtention des propriétés personnalisées, Contactez l'administrateur.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}

// Exemple de fonction pour effacer toutes les propriétés personnalisées
private void EffacerProprietes()
{
try
{
ModelDoc2 swModel;
swModel = ((ModelDoc2)(Program.swapp.ActiveDoc));
CustomPropertyManager PropMgr;
ConfigurationManager swConfigMgr;
Configuration swConfig;
swConfigMgr = swModel.ConfigurationManager;
swConfig = swConfigMgr.ActiveConfiguration;
PropMgr = swConfig.CustomPropertyManager;

int nNbrProps;
object[] vPropNames;

nNbrProps = PropMgr.Count;

vPropNames = (object[])PropMgr.GetNames();

int h;
for (h = 0; h <= nNbrProps - 1; h++)
{
object[] configNameArr = null;
string configName = null;
int j = 0;
configNameArr = (object[])swModel.GetConfigurationNames();
for (j = 0; j <= configNameArr.GetUpperBound(0); j++)
{
configName = (string)configNameArr[j];
swConfig = (Configuration)swModel.GetConfigurationByName(configName);
PropMgr = swModel.Extension.get_CustomPropertyManager(configName);
PropMgr.Delete(vPropNames[h].ToString());
}
PropMgr = swModel.Extension.get_CustomPropertyManager("");
PropMgr.Delete(vPropNames[h].ToString());
}
return;
}
catch (Exception)
{
MessageBox.Show("Erreur lors de l'effacement des propriétés personnalisées, Contactez l'administrateur.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}

Herzliche Grüße

Vielen Dank.

Sie haben eine ganze Reihe von Spuren, denen ich folgen kann.

Ich werde mir das alles anschauen und versuchen, etwas daraus zu machen.

Bei Bedarf werde ich mich mit Ihnen in Verbindung setzen.

 

Vielen Dank

 

Jey

Hallo

SmartPropeties könnte der Anfang einer Lösung sein. Sie werden auch in der Lage sein, die Eigenschaften entsprechend der Konfiguration Ihres Teils/Ihrer Baugruppe zu verwalten, wie Sie es angefordert haben.

2 „Gefällt mir“