Upload
tranlien
View
227
Download
0
Embed Size (px)
Citation preview
� �Programmierung
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
COMOS
Platform Programmierung
Bedienhandbuch
09/2011 A5E03638266-01
Marken 1
.NET-Komponeten für COMOS
2
Entwicklung mit Visual Basic 6 in COMOS
3
Side-by-Side-Konfiguration mit Manifesten
4
WinCC 5
ControlProperties 6
3D-Symbole erzeugen und einbinden
7
Icon-Spezifikationen 8
Andere Komponenten 9
Rechtliche Hinweise
Rechtliche Hinweise Warnhinweiskonzept
Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie zur Vermeidung von Sachschäden beachten müssen. Die Hinweise zu Ihrer persönlichen Sicherheit sind durch ein Warndreieck hervorgehoben, Hinweise zu alleinigen Sachschäden stehen ohne Warndreieck. Je nach Gefährdungsstufe werden die Warnhinweise in abnehmender Reihenfolge wie folgt dargestellt.
GEFAHR bedeutet, dass Tod oder schwere Körperverletzung eintreten wird, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
WARNUNG bedeutet, dass Tod oder schwere Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
VORSICHT mit Warndreieck bedeutet, dass eine leichte Körperverletzung eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
VORSICHT ohne Warndreieck bedeutet, dass Sachschaden eintreten kann, wenn die entsprechenden Vorsichtsmaßnahmen nicht getroffen werden.
ACHTUNG bedeutet, dass ein unerwünschtes Ergebnis oder Zustand eintreten kann, wenn der entsprechende Hinweis nicht beachtet wird.
Beim Auftreten mehrerer Gefährdungsstufen wird immer der Warnhinweis zur jeweils höchsten Stufe verwendet. Wenn in einem Warnhinweis mit dem Warndreieck vor Personenschäden gewarnt wird, dann kann im selben Warnhinweis zusätzlich eine Warnung vor Sachschäden angefügt sein.
Qualifiziertes Personal Das zu dieser Dokumentation zugehörige Produkt/System darf nur von für die jeweilige Aufgabenstellung qualifiziertem Personal gehandhabt werden unter Beachtung der für die jeweilige Aufgabenstellung zugehörigen Dokumentation, insbesondere der darin enthaltenen Sicherheits- und Warnhinweise. Qualifiziertes Personal ist auf Grund seiner Ausbildung und Erfahrung befähigt, im Umgang mit diesen Produkten/Systemen Risiken zu erkennen und mögliche Gefährdungen zu vermeiden.
Bestimmungsgemäßer Gebrauch von Siemens-Produkten Beachten Sie Folgendes:
WARNUNG Siemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen, müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation, Inbetriebnahme, Bedienung und Instandhaltung voraus. Die zulässigen Umgebungsbedingungen müssen eingehalten werden. Hinweise in den zugehörigen Dokumentationen müssen beachtet werden.
Marken Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann.
Haftungsausschluss Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden regelmäßig überprüft, notwendige Korrekturen sind in den nachfolgenden Auflagen enthalten.
Siemens AG Industry Sector Postfach 48 48 90026 NÜRNBERG DEUTSCHLAND
A5E03638266-01 Ⓟ 09/2011
Copyright © Siemens AG 2011.Änderungen vorbehalten
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 3
Inhaltsverzeichnis
1 Marken....................................................................................................................................................... 5
2 .NET-Komponeten für COMOS ................................................................................................................. 7
2.1 .NET-Komponente für GUI.............................................................................................................7 2.1.1 Control für die Applikation bekannt machen ..................................................................................7 2.1.2 Voraussetzungen für ein .NET-Control in COMOS .......................................................................8 2.1.3 Anwendung ..................................................................................................................................11
2.2 .NET-Komponenten für Dokumente ............................................................................................11 2.2.1 Control für die Applikation bekannt machen ................................................................................11 2.2.2 Voraussetzungen für ein .NET-Control in Dokumenten ..............................................................12 2.2.3 Anwendung ..................................................................................................................................13
3 Entwicklung mit Visual Basic 6 in COMOS .............................................................................................. 15
3.1 Empfehlung..................................................................................................................................15
3.2 Technische Voraussetzungen......................................................................................................15 3.2.1 COM-Komponenten registrieren..................................................................................................16 3.2.2 Typelibs registrieren.....................................................................................................................16 3.2.3 Visual Basic-Dateien in das Verzeichnis "Bin" kopieren..............................................................18
3.3 Visual Basic-Komponenten debuggen.........................................................................................19
3.4 Testen von Visual Basic-Komponenten.......................................................................................19
4 Side-by-Side-Konfiguration mit Manifesten.............................................................................................. 21
4.1 Manifeste......................................................................................................................................21
4.2 Erstellung und Aktualisierung von Manifesten für COM-Komponenten ......................................23
4.3 Manifeste für .NET-Assemblies erstellen und aktualisieren ........................................................25
4.4 Manifest in .NET-Assembly einbetten..........................................................................................26
5 WinCC ..................................................................................................................................................... 27
6 ControlProperties..................................................................................................................................... 29
6.1 Zugriff auf Property CtrlProperty über Lib.Sui..............................................................................29
6.2 Massenbearbeitung von ControlProperties über Objektabfragen ...............................................29
6.3 Liste der ControlProperties ..........................................................................................................30
6.4 Zuordnung ControlProperties zu SuiControls ..............................................................................32
7 3D-Symbole erzeugen und einbinden...................................................................................................... 35
7.1 Einleitung .....................................................................................................................................35
7.2 VB-Projekt anlegen ......................................................................................................................35
7.3 Anlegen eines COMOS 3D-Stammobjektes................................................................................36
7.4 Anlegen der Zeichenprozeduren..................................................................................................37
Inhaltsverzeichnis
Programmierung 4 Bedienhandbuch, 09/2011, A5E03638266-01
7.5 Vordefinierte Zeichenfunktionen ................................................................................................. 39 7.5.1 Einleitung..................................................................................................................................... 39 7.5.2 Quader ........................................................................................................................................ 40 7.5.3 Zylinder auf quadratischem Untergrund...................................................................................... 41 7.5.4 Zylinder 1 (optional Boden) ......................................................................................................... 42 7.5.5 Zylinder 2 (optional Boden und Deckel)...................................................................................... 43 7.5.6 Zylindersegment.......................................................................................................................... 44 7.5.7 Zylinderwand............................................................................................................................... 45 7.5.8 Kreisförmige Scheibe .................................................................................................................. 46 7.5.9 Polygon1 ..................................................................................................................................... 46 7.5.10 Polygon2 ..................................................................................................................................... 46 7.5.11 Rotationskörper........................................................................................................................... 47 7.5.12 Exzentrischer Zylinder................................................................................................................. 48 7.5.13 Klöpperboden.............................................................................................................................. 49 7.5.14 Pyramide ..................................................................................................................................... 50 7.5.15 Zylinder........................................................................................................................................ 51 7.5.16 Kugel ........................................................................................................................................... 52 7.5.17 Kugelsegment ............................................................................................................................. 53 7.5.18 Text ............................................................................................................................................. 54 7.5.19 Torus ........................................................................................................................................... 54 7.5.20 Torussegment ............................................................................................................................. 55 7.5.21 Drahtgitter-Quader ...................................................................................................................... 56 7.5.22 Zylinderschnitt ............................................................................................................................. 57 7.5.23 Exzentrische Pyramide ............................................................................................................... 58 7.5.24 Torusbogen (Reduzierung möglich)............................................................................................ 59 7.5.25 OpenGL-Funktionen.................................................................................................................... 59 7.5.26 Anschlüsse erzeugen.................................................................................................................. 60 7.5.26.1 Beispiele...................................................................................................................................... 62 7.5.27 Bemaßungen (Grabs) ................................................................................................................. 64 7.5.28 Anfasser (SnapPoints) ................................................................................................................ 64 7.5.29 Expertenfunktionen ..................................................................................................................... 64
8 Icon-Spezifikationen ................................................................................................................................ 67
9 Andere Komponenten.............................................................................................................................. 69
9.1 Report.ocx................................................................................................................................... 69
9.2 UseSpecs.dll ............................................................................................................................... 69
9.3 ComosTGeneratorJobs............................................................................................................... 71 9.3.1 Class NextString und Class RunValues...................................................................................... 71
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 5
Marken 1Marken
Eingetragener Schutzrechtsvermerk: COMOS®
Marken
Programmierung 6 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 7
.NET-Komponeten für COMOS 22.1 .NET-Komponente für GUI
.NET-Komponenten können sowohl als PlugIns als auch als Oberflächen für Device und CDevice eingesetzt werden. Mit anderen Worten: Es gibt keinen Unterschied mehr zwischen PlugIns und den Registerkarten "Eigenschaften".
2.1.1 Control für die Applikation bekannt machen
Main.xml Das verwendete Control muss der COMOS-Applikation bekannt sein. Dazu erzeugt man einen Eintrag in Main.xml, siehe dazu das Handbuch "COMOS starten".
<Tool>-Eintrag Für jedes Control muss mindestens ein <Tool>-Eintrag vorhanden sein.
Beispiel: <ComosMainMenu> <Lib> <Tools> ... <Tool id="@NETWPFControl" type="Button"> <Caption> <Text itx="WPFControl"/> </Caption> <Class type="NET" assembly="Comos.Test.WinFormsUC" progid="Comos.Test.WinFormsUC.WPFTestControl"/> <Picture key="std_actionTry"/> <Parameters> <Parameter name="P1" value="WPF" /> </Parameters> </Tool> ...
Control im COMOS-Menü Wenn das Control auch im COMOS-Menü angezeigt werden soll, benötigt man zusätzlich einen Referenzeintrag idref im <Menu>-Knoten.
Beispiel: <ComosMainMenu> ... <Menu> <Toolbars>
.NET-Komponeten für COMOS 2.1 .NET-Komponente für GUI
Programmierung 8 Bedienhandbuch, 09/2011, A5E03638266-01
... <Tool idref="Test"> ... <Tool idref="@NETWPFControl"/>
ID-Angabe am CDevice Soll das Control mittels Doppelklick eines Objektes gestartet werden, muss man den Wert aus <Tool id> am CDevice eintragen.
1. Öffnen Sie in den Eigenschaften eines Stammobjekts die Registerkarte "System".
2. Klicken Sie auf die Schaltfläche "ControlTyp (ProgID) definieren zur Bestimmung des Eigenschaftenfensters".
3. Tragen Sie im Feld "ProgID des Steuerelements" den Wert aus <Tool id> ein.
Für die alten COM-Komponenten wurde hier die ProgID eingetragen. Für die .NET-Komponenten muss es <Tool id> sein, da die ProgID nicht ausreicht. Zusätzlich zur ProgID benötigt man noch weitere Informationen, mindestens noch den AssemblyName. Diese zusätzlichen Informationen werden aus <Tool id> entnommen.
2.1.2 Voraussetzungen für ein .NET-Control in COMOS
Mindestvoraussetzung System.Windows.FrameworkElement
Außerdem ist auch System.Windows.Controls.UserControl zulässig.
Alternativ kann auch System.Windows.Forms.UserControl eingesetzt werden. Das ist allerdings nicht empfehlenswert, weil ein Forms-Control letztendlich in <WindowsFormsHost .../> gehostet wird. Damit ist die direkte Verwendung von System.Windows.Controls.UserControl schneller, logischer und stabiler.
Kommunikation von .NET und COMOS-Controls Um mit der COMOS-Welt besser kommunizieren zu können, kann das Control zwei public Properties besitzen: Workset und ItemObjects. Sie werden per Reflection vom System erkannt und entsprechend gesetzt: public Plt.IComosDWorkset Workset { get; set; } public object ItemObjects // hier ItemObjects vom Type: IComosDCollection oder IComosDBaseObejct oder VBA.Collection { get; set; }
.NET-Komponeten für COMOS 2.1 .NET-Komponente für GUI
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 9
Die bessere und elegantere Variante besteht darin, das Interface Comos.Controls.IComosControl (Comos.Controls.dll) zu implementieren. namespace Comos.Controls { public interface IComosControl { Plt.IComosDWorkset Workset { get; set; } Plt.IComosDGeneralCollection Objects { get; set; } string Parameters { get; set; } IContainer ControlContainer { get; set; } void OnExecuted(ExecutedRoutedEventArgs e); void OnCanExecute(CanExecuteRoutedEventArgs e); void OnPreviewExecuted(ExecutedRoutedEventArgs e); }
Wenn nötig kann auch System.IDisposable implementiert werden.
Das originale Control wird in einem Container untergebracht, der das OkAbort-Control beinhaltet und die Undostate-Verwaltung erledigt. Man hat Zugriff auf den Container, womit man die Buttons und eventuell die Undostate-Verwaltung ein- oder ausschaltet: public interface IContainer { object Child { get; set; } bool UndoStateAdministration { get; set; } //default true void InitButton(StandardButtons button, string caption, Visibility visibility); object UIFParent { get; } void Close(); }
OnExecuted, OnCanExecute, OnPreviewExecuted sind an RoutedUICommand von WPF angelehnt. Damit werden die Button-Aktionen gesteuert sowie die Commands von CloseUIForm und ProjectOrWOChange. Aber im Gegensatz zu WPF kann man Executed und PreviewExecuted bearbeiten. Üblicherweise wird bei WPF-RoutedUICommand, wenn PreviewExecuted bearbeitet wird, kein Executed geworfen, und zwar unabhängig von e.Handled.
In COMOS-Container werden die Commands wie folgt abgearbeitet: //. . . Comos.Controls.IComosControl ctrl; CanExecuteRoutedEventArgs e; ExecutedRoutedEventArgs ee; //. . . ctrl.OnCanExecute(e); if (e.CanExecute) { ctrl.OnPreviewExecuted(ee); if (!ee.Handled) ctrl.OnExecuted(ee); }
.NET-Komponeten für COMOS 2.1 .NET-Komponente für GUI
Programmierung 10 Bedienhandbuch, 09/2011, A5E03638266-01
Ausnahme bei Abarbeitung von ProjectOrWOChange Bei der Abarbeitung von ProjectOrWOChange wird OnExecuted unabhängig von ee.Handled aufgerufen. Im Vergleich zu den anderen Commands bezieht sich ProjectOrWOChange nicht nur auf ein einzelnes Control, sondern eventuell auf mehrere Controls. Deswegen darf die angefangene Aktion nicht von einem Control abgebrochen werden. Beim OnCanExecute ist dagegen die Aktion noch nicht zu Stande gekommen, deswegen kann man die Ausführung noch stoppen.
Grundsätzlich ist ProjectOrWOChange nur für solche Controls interessant, die auch nach einem Projektwechsel noch vorhanden sein sollen. Standardmäßig werden alle Controls beim Projektwechseln geschlossen. Wenn ein Control nach einem Projektwechsel weiterhin vorhanden sein soll, ist außerdem folgender Eintrag erforderlich: <Tool> <... autoClose="false">.
Beispiel: <Tool id="@NET.UIFormsList" type="Button"> <Caption> <Text itx="~03416 Fensterliste"/> </Caption> <Class type="NET" assembly="Comos.UIF" progid="Comos.UIF.UIControls.UIFormsList"/> <Picture key="std_windowList"/> <Window type="Tab" area="Navigator" subarea="Detail" autoClose="false" /> </Tool>
Starten von Controls im Code Im Code kann man die Controls so starten (z.B. im Objekt-Debugger): Set WS = a.Workset ToolID = "@NETWPFControl" ' als 'PlugIn' starten Set AppComd = WS.Globals.AppCommand AppComd.Execute "ExecuteMenuByID", ToolID ' als 'Eigenschaften' starten: Set App = WS.Globals.Application App.ShowPropertiesOnMdiChild a, false, "", "CONTROLTYPE", ToolID
.NET-Komponeten für COMOS 2.2 .NET-Komponenten für Dokumente
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 11
2.1.3 Anwendung Das Ergebnis könnte beispielweise so aussehen:
Beispiel COMOS-Menü, Eintrag "Hilfe > International > NET-Example_GUI"
2.2 .NET-Komponenten für Dokumente .NET-Komponenten können auch für Dokumente verwendet werden. Dazu werden die .NET-Komponenten in den Dokumententypen als Programm angegeben. Bei einem Doppelklick auf das jeweilige Dokument wird die Komponente geöffnet.
2.2.1 Control für die Applikation bekannt machen
Main.xml Das verwendete Control muss der COMOS-Applikation bekannt sein. Dazu erzeugt man einen Eintrag in Main.xml ein, siehe dazu das Handbuch "COMOS starten".
<Tool>-Eintrag Für jedes Control muss mindestens ein <Tool>-Eintrag vorhanden sein.
Beispiel: <ComosMainMenu> <Lib> <Tools> … <Tool id="@NET.DocumentAdapterTest" type="Button"> <Caption> <Text itx="DocumentAdapter Test"/> </Caption> <Class type="NET" assembly="Comos.Test.TextDocument" progid="Comos.Test.TextDocument.TextDocControl"/> </Tool> … </Lib> … </ComosMainMenu>
.NET-Komponeten für COMOS 2.2 .NET-Komponenten für Dokumente
Programmierung 12 Bedienhandbuch, 09/2011, A5E03638266-01
Dokumententyp anlegen Es muss ein Dokumententyp angelegt werden, der als Programmname den Wert aus <Tool id> erhält:
Für die alten COM-Komponenten wurde hier die ProgID eingetragen. Für die NET-Komponenten muss es <Tool id> sein, da die ProgID nicht ausreicht. Zusätzlich zur ProgID benötigt man noch weitere Informationen, mindestens noch den AssemblyName. Diese zusätzlichen Informationen werden aus <Tool id> entnommen.
2.2.2 Voraussetzungen für ein .NET-Control in Dokumenten
Mindestvoraussetzung System.Windows.FrameworkElement
Außerdem ist auch System.Windows.Controls.UserControl zulässig.
Alternativ kann auch System.Windows.Forms.UserControl eingesetzt werden. Das ist allerdings nicht empfehlenswert, weil ein Forms-Control letztendlich in <WindowsFormsHost .../> gehostet wird. Damit ist die direkte Verwendung von System.Windows.Controls.UserControl schneller, logischer und stabiler.
Weitere Informationen Siehe ansonsten Voraussetzungen für ein .NET-Control in COMOS (Seite 8).
.NET-Komponeten für COMOS 2.2 .NET-Komponenten für Dokumente
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 13
2.2.3 Anwendung Auf der Basis des neuen Dokumententyps kann wie gewohnt ein Dokument angelegt werden. Beim Doppelklick öffnet sich die gewünschte Oberfläche.
Ausschlüsse Aus technischen Gründen wird momentan nur das Öffnen eines Dokumentes unterstützt.
Drucken, Revisionieren usw. ist noch nicht möglich.
Beispiel COMOS-Menü, Eintrag "Hilfe > International > NET-Example_Doc"
.NET-Komponeten für COMOS 2.2 .NET-Komponenten für Dokumente
Programmierung 14 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 15
Entwicklung mit Visual Basic 6 in COMOS 33.1 Empfehlung
Komponenten in Visual Basic 6 werden in COMOS nur aus Kompatibilitätsgründen unterstützt. Verwenden Sie für Neuentwicklungen die .NET-Technik.
Siehe auch .NET-Komponeten für COMOS (Seite 7)
3.2 Technische Voraussetzungen Wenn Sie COMOS installieren, läuft COMOS in der Regel ohne Registrierung der COM-Komponenten und verwendet stattdessen die Side-by-Side-Technologie von Windows. Da Visual Basic die Side-by-Side-Technologie nicht unterstützt, müssen Sie Entwicklungen in Visual Basic unter COMOS 9.0 mit registrierter COMOS 9.0 durchführen.
Voraussetzungen Folgende Voraussetzungen sind für die Visual Basic-Entwicklung notwendig:
● Die COM-Komponenten von COMOS müssen registriert sein.
● Die Typelibs von COMOS müssen registriert sein.
● Visual Basic-Dateien müssen im Verzeichnis "Bin" von COMOS liegen.
Siehe auch COM-Komponenten registrieren (Seite 16)
Typelibs registrieren (Seite 16)
Visual Basic-Dateien in das Verzeichnis "Bin" kopieren (Seite 18)
Entwicklung mit Visual Basic 6 in COMOS 3.2 Technische Voraussetzungen
Programmierung 16 Bedienhandbuch, 09/2011, A5E03638266-01
3.2.1 COM-Komponenten registrieren
Voraussetzung Damit die Registrierung funktioniert, verwenden Sie die Datei "ComosRegister.dll" in der Version 1,0,0,1 und registrieren Sie diese. Die Datei finden Sie im folgenden Verzeichnis:
"<Installationsverzeichnis von COMOS>\updatecenter"
Vorgehen Um die COM-Komponenten zu registrieren, gehen Sie folgendermaßen vor:
1. Öffnen Sie im Installationsverzeichnis von COMOS den Ordner "Bin".
2. Um alle COM-Komponenten im Verzeichnis "OCX" und "ComosX.ocx" zu registrieren, führen Sie die Datei "ComosReg.exe" aus.
Ergebnis Die COM-Komponenten sind registriert.
3.2.2 Typelibs registrieren
Voraussetzung Die Script-Datei "RegTLB.bat", mit der Sie die Typelibs von COMOS registrieren, setzt voraus, dass das Laufwerk R gemappt ist. Die Script-Datei finden Sie im folgenden Verzeichnis:
"<Installationsverzeichnis von COMOS>\Current\Bin\DeveloperReg"
Vorgehen Um das Laufwerk R zu mappen, gehen Sie folgendermaßen vor:
1. Rufen Sie die Kommandozeile auf.
2. Führen Sie in der Kommandozeile folgende Zeile aus:
Subst R: <Installationsverzeichnis von COMOS>
Ergebnis Das Laufwerk R ist gemappt.
Entwicklung mit Visual Basic 6 in COMOS 3.2 Technische Voraussetzungen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 17
Alternatives Vorgehen Um ein anderes Laufwerk zu mappen, gehen Sie folgendermaßen vor:
1. Öffnen Sie die Script-Datei "RegTLB.bat".
2. Passen Sie in dieser Datei alle Verweise auf das Installationsverzeichnis von COMOS an.
Vorgehen Um die Typelibs von COMOS zu registrieren, gehen Sie folgendermaßen vor:
1. Rufen Sie folgendes Verzeichnis auf: "<Installationsverzeichnis von COMOS>\Current\Bin\DeveloperReg"
2. Um die Typelibs zu registrieren, führen Sie in diesem Verzeichnis die Script-Datei "RegTLB.bat" aus.
Ergebnis Die Typelibs von COMOS sind registriert.
Entwicklung mit Visual Basic 6 in COMOS 3.2 Technische Voraussetzungen
Programmierung 18 Bedienhandbuch, 09/2011, A5E03638266-01
3.2.3 Visual Basic-Dateien in das Verzeichnis "Bin" kopieren
Voraussetzung Sie verwenden Visual Basic 6.0 SP6.
Vorgehen Um Visual Basic-Dateien in das Verzeichnis "Bin" zu kopieren, gehen Sie folgendermaßen vor:
1. Rufen Sie das Installationsverzeichnis von Visual Basic auf.
2. Kopieren Sie die folgenden Dateien in das Verzeichnis "<COMOS Installationsverzeichnis>\Current\Bin":
– "C2.exe"
– "CVPACK.exe"
– "LINK.exe"
– "MSDIS110.dll"
– "MSPDB60.dll"
– "VB6.exe"
– "VB6.olb"
– "VB6DEBUG.dll"
– "VB6EXT.olb"
– "VB6IDE.dll"
– "VBA6.dll"
– "VBAEXE6.lib"
Die Dateien "VB6.exe.config" und "VB6.exe.Manifest" müssen ebenfalls vorhanden sein. In der Regel werden diese beiden Dateien bei der Installation von COMOS mit installiert.
Hinweis
Öffnen Sie die VBP-Datei nicht, indem Sie im Explorer die VBP-Datei doppelklicken. Das hat zur Folge, dass Sie die falsche Datei "VB6.exe" verwenden oder die Funktion ändern, die per Doppelklick definiert ist.
Entwicklung mit Visual Basic 6 in COMOS 3.3 Visual Basic-Komponenten debuggen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 19
3.3 Visual Basic-Komponenten debuggen
Voraussetzung Alle Komponenten sind auf dem Versionsstand COMOS 9.0.
Empfehlung Um Probleme mit Zugriffsrechten zu vermeiden, entwickeln Sie auf Ihrem lokalen Rechner.
Vorgehen Um die Visual Basic-Komponenten zu debuggen, gehen Sie folgendermaßen vor:
1. Führen Sie im Verzeichnis "<Installationsverzeichnis von COMOS>\Current\Bin" die Datei "VB6.exe" aus.
2. Öffnen Sie das Projekt "ComosDebug", das im folgenden Verzeichnis liegt:
"<Installationsverzeichnis von COMOS>\Current\Bin\ComosDebug"
3. Fügen Sie das umgestellte VB6-Projekt hinzu.
4. Starten Sie das Projekt.
Ergebnis COMOS wird geöffnet und Sie haben die Möglichkeit in Visual Basic zu debuggen.
Hinweis Debug-Modus
Die Events von .NET-Komponenten werden im Debug-Modus nicht alle und nicht immer berücksichtigt.
3.4 Testen von Visual Basic-Komponenten Sie haben die Möglichkeit neu kompilierte Komponenten zu testen, indem Sie die kompilierte Datei in das COMOS-Installationsverzeichnis kopieren.
Entwicklung mit Visual Basic 6 in COMOS 3.4 Testen von Visual Basic-Komponenten
Programmierung 20 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 21
Side-by-Side-Konfiguration mit Manifesten 4
Wenn Sie eine ältere COMOS Version als 9.0 verwenden, ist der konventionelle Weg über die Registrierung der COM-Komponenten erforderlich, beispielsweise über "RegSvr32".
Alternative ab Windows XP SP2 Ab Windows XP SP2 haben Sie alternativ die Möglichkeit, eine COM-Komponente durch die Side-By-Side-Konfiguration zu kopieren und die COM-Komponente ohne Registrierung zu verwenden. Kopieren Sie die COM-Komponente in dasselbe Verzeichnis, in dem die EXE-Datei liegt.
4.1 Manifeste Für die Side-By-Side-Konfiguration fügen Sie der EXE-Datei ein Manifest hinzu.
Definition Das Manifest ist eine XML-Datei, die Angaben über die Vorbedingungen enthält, die eine EXE-Anwendung zur Ausführung benötigt. Diese Datei enthält die Angaben zur COM-Registrierung. Das sind in der Regel die Angaben, die in der Windows Registry stehen. Deshalb kann die Anwendung ausgeführt werden, auch wenn die COM-Komponenten nicht registriert sind.
Speichern der Manifeste Sie haben die Möglichkeit Manifeste in EXE-Dateien als externe Dateien mit folgendem Dateinamen zu speichern:
<Name der EXE-Anwendung>.manifest
Alternativ haben Sie die Möglichkeit die Manifeste in den Programmressourcen als Ressource einzubetten.
COM-Assemblies In COMOS sind für die COM-Assemblies die Manifeste als externe Dateien gespeichert. Der Ordner "Bin" enthält eine Manifest-Datei mit den COM-Typen für die jeweilige EXE-Datei.
Side-by-Side-Konfiguration mit Manifesten 4.1 Manifeste
Programmierung 22 Bedienhandbuch, 09/2011, A5E03638266-01
Einschränkungen Im Zusammenhang mit der Side-By-Side-Konfiguration gelten folgende Einschränkungen:
● Da die COM-Programme in COMOS 9.0 nicht mehr in der Windows Registry registriert werden, erhalten die Programme eine Manifest-Datei über die die COM-Typen nur lokal über die jeweilige EXE bekannt gemacht werden. Deshalb gibt es im Ordner "Bin" zu jeder EXE-Datei auch eine exe.manifest-Datei.
● Alle ausgelieferten COM-Assemblies von COMOS (OCXs und DLL-Dateien) werden standardmäßig nicht mehr über "RegSvr32" in der Windows Registry registriert. Stattdessen sind alle Informationen über die Assemblies in der Datei "ComosOcx.manifest" gespeichert.
● Über ein Manifest kann nur ab der entsprechenden Verzeichnisebene auf Verweise und auf darunter liegende Verzeichnisse zugegriffen werden. Die entsprechende Verzeichnisebene ist in der Regel das Verzeichnis "Bin".
Das Verzeichnis "OCX" befindet sich im Ordner "Bin".
● Das Side-By-Side-Verfahren ist nicht für Entwicklungsmaschinen geeignet, sondern nur für die Anwendung auf den Rechnern der Benutzer. Auf dem Entwicklungsrechner ist eine Registrierung weiterhin erforderlich.
Externe Programme Für externe Programme, die über COM auf COMOS im Side-By-Side-Verfahren zugreifen, gelten folgende Regeln:
● Alle externen Programme, sowohl COM als auch .NET, müssen im Ordner "Bin" der lokalen Installation von COMOS gespeichert werden. Kopieren Sie beispielsweise das Programm "CustomComosExtension.exe" in folgendes Verzeichnis: "<Installationspfad von COMOS >\Current\Bin"
● Alle .NET-DLL-Dateien, die aus COM sichtbar sind (technisch: COM-Visible), müssen im Ordner "Bin" gespeichert werden.
● Erstellen Sie eine passende Manifest-Datei, damit von der externen Datei "CustomComosExtension.exe" per COM-Interop auf COMOS-Objekte zugegriffen werden kann.
Side-by-Side-Konfiguration mit Manifesten 4.2 Erstellung und Aktualisierung von Manifesten für COM-Komponenten
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 23
4.2 Erstellung und Aktualisierung von Manifesten für COM-Komponenten
Überblick Wenn Sie eine COM-Komponente in eine Manifest-Datei aufnehmen möchten oder bei Schnittstellenänderungen eine Anpassung einer Manifest-Datei erfolgt, haben Sie die Möglichkeit das Programm "Comos.ManifestMaker.exe" dafür zu verwenden.
Beispiel Sie verwenden eine COM-DLL-Datei, beispielsweise eine DLL-Datei in Visual Basic, die "CustomComosExtension.dll" heißt. In der Kommandozeile oder in einer Script-Datei fügen Sie die folgende Zeile hinzu und führen diese aus:
"C:\ManifestMaker\Comos.ManifestMaker.exe" -type:COM -filename:C:\Custom\MyCustomComosExtension.dll -output:C:\Custom
● Der erste Parameter ist der Typ der Assembly (COM oder DOTNET).
● Der zweite Parameter ist der Name der Assembly.
● Der dritte Parameter ist optional und bestimmt, wo die erstellte Manifest-Datei gespeichert wird und welchen Namen die Manifest-Datei erhält.
Ergebnis Nach der Erstellung einer Manifest-Datei sieht das Ergebnis beispielsweise folgendermaßen aus:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <file name="MyCustomComosExtension.dll"> <typelib tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" version="1.8" helpdir="" /> <comClass description="MyCustomComosExtension" progid="CustomComosExtension.HelperClass1" clsid="{69DAA847-D481-446E-967B-2DE3EFBBB672}" tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" /> <comClass description="MyCustomComosExtension" progid="CustomComosExtension.HelperClass2" clsid="{9F40C2F3-96D4-40cf-83B9-6D85DDE8E0E9}" tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" /> </file> </assembly>
Side-by-Side-Konfiguration mit Manifesten 4.2 Erstellung und Aktualisierung von Manifesten für COM-Komponenten
Programmierung 24 Bedienhandbuch, 09/2011, A5E03638266-01
Knoten File Im Knoten File finden Sie Informationen über die Komponente. Diesen Knoten fügen Sie folgendermaßen in die Datei "ComosCustomizeOcx.manifest" ein:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="ComosCustomizeOcx" version="1.0.0.0" type="win32" /> <!-- ************************************************************* --> <!-- ** ComosCustomizeOcx.manifest ** --> <!-- ** ** --> <!-- ** References to additional Assemblies or OCX Components ** --> <!-- ** ** --> <!-- ** please insert here manifest information for own ** --> <!-- ** components, that exist only at specific customer ** --> <!-- ** installation ** --> <!-- ************************************************************* --> <file name="Custom\MyCustomComosExtension.dll"> <typelib tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" version="1.8" helpdir="" /> <comClass description="MyCustomComosExtension" progid="CustomComosExtension.HelperClass1" clsid="{69DAA847-D481-446E-967B-2DE3EFBBB672}" tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" /> <comClass description="MyCustomComosExtension" progid="CustomComosExtension.HelperClass2" clsid="{9F40C2F3-96D4-40cf-83B9-6D85DDE8E0E9}" tlbid="{B7FFF897-DA01-4b88-AD41-F75CF213FE9C}" /> </file> </assembly>
In diesem Beispiel ist die Datei "MyCustomComosExtension.dll" im Unterverzeichnis "Custom" des Ordners "Bin" gespeichert. Deshalb wird das Attribut Name vom Knoten File entsprechend angepasst.
Side-by-Side-Konfiguration mit Manifesten 4.3 Manifeste für .NET-Assemblies erstellen und aktualisieren
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 25
4.3 Manifeste für .NET-Assemblies erstellen und aktualisieren
Vorgehen Um Manifeste für .NET-Assemblies zu erstellen und zu aktualisieren, gehen Sie folgendermaßen vor:
1. Verwenden Sie über die Befehlszeile das Werkzeug "Comos.ManifestMaker.exe".
2. Rufen Sie die Kommandozeile auf.
3. Geben Sie in die Kommandozeile folgende Zeile ein:
"<Installationsverzeichnis con COMOS>\PTV001_Vega\Bin\COMOS.ManifestMaker.exe" -type:DOTNET -filename:C:\Custom\ComosCustom.dll –output:C:\Custom
4. Führen Sie Ihre Eingaben aus.
Ergebnis Die generierte Manifest-Datei wird im Verzeichnis "Custom" gespeichert.
Hinweis
Achten Sie darauf, dass Manifest-Dateien, die Sie mit "mt.exe" erstellen, immer im gleichen Verzeichnis liegen, wie die in der Manifest-Datei zugewiesene Komponente.
Empfehlung Betten Sie bei einer .NET-Assembly (Anwendung oder Bibliothek) das Manifest in die endgültige Binärdatei ein.
Siehe auch Manifest in .NET-Assembly einbetten (Seite 26)
Side-by-Side-Konfiguration mit Manifesten 4.4 Manifest in .NET-Assembly einbetten
Programmierung 26 Bedienhandbuch, 09/2011, A5E03638266-01
4.4 Manifest in .NET-Assembly einbetten
Voraussetzung Um ein Manifest in eine .NET-Assembly einzubetten, verwenden Sie die Parameter autoembed und mtpath.
Vorgehen Um ein Manifest in eine .NET-Assembly einzubetten, gehen Sie folgendermaßen vor:
Hinweis
Um Manifest-Dateien in .NET-Assemblies einzubetten, benötigen Sie das Programm "mt.exe" von Microsoft. Dieses Programm ist ein Bestandteil von Windows SDK ab Windows Vista oder von Visual Studio .NET SDK ab Visual Studio .NET 2005. Sie haben die Möglichkeit die SDKs kostenlos von der Microsoft-Homepage herunterzuladen.
1. Öffnen Sie die Eingabeaufforderung mit Zugriff auf das Verzeichnis, in dem die Datei "mt.exe" gespeichert ist.
2. Führen Sie für die Assembly folgenden Befehl aus:
"C:\Comos\PTV001_Vega\Bin\Comos.ManifestMaker.exe" -type:DOTNET
-filename:C:\Custom\ComosCustom.dll –autoembed -mtpath:C:\Tools
Ergebnis Ein Manifest des Typs "RT_MANIFEST" mit der ID "1" wird als Ressource in die Assembly eingebettet.
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 27
WinCC 5Beispiel
Im folgenden Beispiel wird zunächst der String dimensioniert (char ASString[250]) und dann einen Variable vorbereitet, in der die COMOS SystemUIDs abgelegt werden können (char SystemUID[20]).
WinCC-spezifische Einstellungen Es folgen WinCC-spezifische Einstellungen: der if-else-Block dient zur Fehlersuche.
Hinweis
Die UIDs sind nur Beispiele. In Ihrer Datenbank werden andere UIDs existieren.
In der if-Zeile ist eine andere UID als in den beiden folgenden else-Zeilen (sonst würde der ganze if-else-Block ja keinen Sinn machen). Bei realen Daten wird man sicher tausende, wenn nicht sogar zehntausende Objekte (zum Beispiel Signale) verwalten, da ergeben if-else-Schleifen keinen Sinn mehr und müssen durch entsprechend fortgeschrittene Fehlerabfänger ersetzt werden.
Danach wird der String zusammengesetzt, der in der ersten Zeile dimensioniert wurde ("strcpy").
Erlaubte Parameter und Schalter Siehe Handbuch "COMOS starten", Stichwort "Parameter".
Die dort beschriebenen Schalter können jeweils an den String angehängt werden ("strcat").
Programmbeispiel Der in "ASString" gespeicherte String wird dann an den Befehl "ProgramExecute" übergeben. ProgramExecute findet in dem String als erstes den Aufruf von XIF und führt dieses dann mit den folgenden Parametern aus. { char ASString[250] ; char SystemUID[20]; if (GetTagBit("U2") == 1) strcpy( SystemUID, "/ID: C1D45BO8U7 " ); else if (GetTagBit("Fehler") == 1) strcpy( SystemUID, "/ID: A1D9VBO5U7 " ); else strcpy( SystemUID, "/ID: A1D9VBO5U7 " ); strcpy( ASString, "C:\\Programme\\COMOS\\Bin\\XIF.exe " ); strcat( ASString, "/DB: ACCESS ");
WinCC
Programmierung 28 Bedienhandbuch, 09/2011, A5E03638266-01
strcat( ASString, "/DN: C:\\COMOS_DB\\COMOSPT.MDB " ); strcat( ASString, "/PR: CeBIT " ); strcat( ASString, SystemUID ); strcat( ASString, "/PA: DETAIL" ); ProgramExecute( ASString ); }
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 29
ControlProperties 66.1 Zugriff auf Property CtrlProperty über Lib.Sui
Controlproperties können mittels einer Konstante per Script gesetzt werden. Alternativ kann der Controlproperties-String zerlegt und wieder zusammengefügt werden.
Beispiel Schreibzugriff a.workset.lib.sui.CtrlProperty (27,a) = 0...'27 = Left a.workset.lib.sui.CtrlProperty (28,a) = 0...'28 = Top a.workset.lib.sui.CtrlProperty (29,a) = 20...'29 = Right a.workset.lib.sui.CtrlProperty (30,a) = 5...'30 = Bottom
Beispiel Lesezugriff cp=0...'0 = LabelSize Output a.workset.lib.sui.CtrlProperty (cp,a)
6.2 Massenbearbeitung von ControlProperties über Objektabfragen
Vorgehen ● Standardabfrage für Attribute anlegen.
● Abfrage aus xml-Datei laden (Beispiel: QueryControlProperties.xml; siehe das COMOS-Installationsverzeichnis, Unterordner Help\ Deutsch\ Sonstige Dokumentation\ ControlProperties Beispiele XML.zip).
● Weitere Spalten für gewünschte Properties hinzufügen:
– Unter Optionen, Spaltenbearbeitung Spalte kopieren,
– umbenennen,
– ggf. nummerisch umstellen,
– unter Eigenschaften in Scripten 'Wertberechnung' und 'Objekt per Wert' jeweils die Konstante cp für die Property auf gewünschten Wert ändern (s. Tabelle).
● Spalten für ControlProperties sind editierbar.
● Um ControlProperties von CSpecification an BackPointer zu übergeben, ebenfalls eine Abfrage aus einer XML-Datei laden (Beispiel: ControlPropertiesToBackPointer.xml; siehe das COMOS-Installationsverzeichnis, Unterordner Help\ Deutsch\ Sonstige Dokumentation\ ControlProperties Beispiele XML.zip). Konstanten cpX (s. Tabelle) für die Properties im Script von Aktionsblock ändern.
ControlProperties 6.3 Liste der ControlProperties
Programmierung 30 Bedienhandbuch, 09/2011, A5E03638266-01
6.3 Liste der ControlProperties
ControlProperties Konstante Name Beschreibung Datentyp Mögliche Werte 0 LabelSize Breite der
Beschreibung Double
1 NameSize Breite des Namens
Double
2 UnitControlSize Breite der Einheit Double 3 ShowLabelNameDescr Beschreibung/
Name anzeigen Integer 0 = nur Beschreibung
1 = Name und Beschreibung 4 ControlType Typ des
Eingabefeldes Integer 1 = Textfeld
2 = Editierbare Combobox 3 = Combobox
5 UnitControlType Einheit fest Integer 2 = Combobox 3 = Einheit fest
6 ProductRequestLbSize Breite der Produktdaten
Double
7 ScrollBarActiv Bildlaufleiste aktiv Integer 0= Nein 1= Ja
8 ButtonVisible Schaltfläche sichtbar
Integer 0= Nein 1= Ja
9 LabelAlignment Textausrichtung Double 0 = Links 1 = Rechts
10 LabelFontName Schriftart Name String 11 LabelFontSize Schriftart Größe Double 12 LabelFontBold Schriftart Fett Boolean 13 LabelFontItalic Schriftart Kursiv Boolean 14 LabelFontUnderLine Schriftart Unter-
strichen Boolean
15 LabelForeColor Schriftart Farbe Long 16 ProductRequestKeyInput Lokale
Editierbarkeit der Produktdaten
Integer 0 = Nicht editierbar 1 = Immer 2 = Wenn Planungsobjekt "Anforderung" ist
17 SpecNames (nur lesend!)
Namenspräfixe des Attributs
String Nur an Oberfläche änderbar
18 MaxCount (nur lesend!)
Maximale Anzahl Sätze
Integer Nur an Oberfläche änderbar
19 Nicht nutzbar (Abgeschaltet) 20 Nicht nutzbar (Abgeschaltet)
ControlProperties 6.3 Liste der ControlProperties
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 31
Konstante Name Beschreibung Datentyp Mögliche Werte 21 ShowLinkObjectName Anzeige Integer 0 = Beschreibung des verknüpften
Objektes 1 = Name des verknüpften Objektes 2 = FullName des verknüpften Objektes 3 = DisplayValue des Attributs
22 KeyInput Darstellung: Nicht editierbar
Integer 0 = Editierbar 1 = Nicht Editierbar
23 QueryFullName System-FullName der Objektabfrage
String
24 FilterStdTable Auswahllisten filtern
Integer 0 = Aus 1 = Auf Stammdatenseite 2 = Immer
25 BtnClickAllowed Schaltfläche ausführbar
Long 0 = <normale Rechteverwaltung>1 = Immer (unabhängig von Berechtigungen)
26 BorderType Rahmentyp Integer Rahmentyp 1 = Normal 2 = Einfach 3 = Hervorstehend 4 = Abgesenkt
27 Left 28 Top 29 Right 30 Bottom 31 CaptionVisible Rahmen-
überschrift sichtbarBoolean
32 Mode Schaltflächen Variant als binäre Summen: 1 = Dateiauswahl 2 = Excel-Blatt bearbeiten 4 = Excel-Blatt berechnen 8 = Zuordnung
33 ExecuteValue Abfrage sofort ausführen
Integer 0= Nein 1= Ja
34 LabelFontStrikethrough Schriftart durchgestrichen
Boolean
35 ButtonStyle Darstellung: Kompakt
Integer 0= Alle Buttons 1= Kompakt
ControlProperties 6.4 Zuordnung ControlProperties zu SuiControls
Programmierung 32 Bedienhandbuch, 09/2011, A5E03638266-01
6.4 Zuordnung ControlProperties zu SuiControls
Legende zur Zuordnungsliste (Spalten) A = Edit E = Excel I = Repeater M = Query B = Border F = Check J = Memo N = FOpen C = Button G = Image K = Memo_rtf O = Link D = Label H = Signature L = Date P = List
Zuordnungsliste Name A B C C E F G H I J K L M N O P 0 LabelSize + + + + + + + 1 NameSize + + + 2 UnitControlSize + 3 ShowLabelNameDescr + + + 4 ControlType + 5 UnitControlType + 6 ProductRequestLbSize + 7 ScrollBarActiv + 8 ButtonVisible + 9 LabelAlignment + 10 LabelFontName + + + + + + + + + + 11 LabelFontSize + + + + + + + + + + 12 LabelFontBold + + + + + + + + + + 13 LabelFontItalic + + + + + + + + + + 14 LabelFontUnderLine + + + + + + + + + + 15 LabelForeColor + + + + + + + + + 16 ProductRequestKeyInput + 17 SpecNames (read only) + 18 MaxCount (read only) + 19 (Abgeschaltet) 20 (Abgeschaltet) 21 ShowLinkObjectName + 22 KeyInput + 23 QueryFullName + 24 FilterStdTable + 25 BtnClickAllowed + 26 BorderType + 27 Left + + + + + + + + + + + + + + + 28 Top + + + + + + + + + + + + + + +
ControlProperties 6.4 Zuordnung ControlProperties zu SuiControls
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 33
Name A B C C E F G H I J K L M N O P 29 Right + + + + + + + + + + + + + + + 30 Bottom + + + + + + + + + + + + + + + 31 CaptionVisible + 32 Mode + 33 ExecuteValue + 34 LabelFontStrikethrough + + + + + + + + + + 35 ButtonStyle +
ControlProperties 6.4 Zuordnung ControlProperties zu SuiControls
Programmierung 34 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 35
3D-Symbole erzeugen und einbinden 77.1 Einleitung
Dieses Kapitel beschreibt, wie man 3D-Symbole mittels VisualBasic erzeugt, in einer dll ablegt und in COMOS für Viper verfügbar macht.
7.2 VB-Projekt anlegen
Vorbereitung Zunächst wird ein neues VB-Projekt erzeugt.
Modul und Interface deklarieren
Nun können die 3D-Zeichenprozeduren erstellt und parallel dazu die entsprechenden COMOS-Stammobjekte angelegt werden.
Ist dieser Vorgang beendet, erstellt man die dll-Datei des Projektes und legt diese im COMOS-Installationsverzeichnis "\<COMOS> \ OCX \ GL" ab. Abschließend wird die neue Datei in diesem Verzeichnis registriert (öffnen mit WINNT\system32\regsvr32.exe).
3D-Symbole erzeugen und einbinden 7.3 Anlegen eines COMOS 3D-Stammobjektes
Programmierung 36 Bedienhandbuch, 09/2011, A5E03638266-01
7.3 Anlegen eines COMOS 3D-Stammobjektes
Einleitung Jedes Stammobjekt, das in COMOS-Viper platziert wird, muss eine Registerkarte namens "GD" besitzen. Auf dieser Karte werden alle für die 3D-Ansicht wichtigen Attribute aufgeführt.
Für alle 3D-relevanten Attribute gilt: Registerkarte "Verknüpfung". "3D-Modus": Ein.
Bereits bestehende Attribute sind in der Auslieferungsdatenbank im Pfad "@Viper > @Y > @3D > @PP > 01 GD Registerkarte". Hier bereits bestehende Attribute sollten bei neuen Objekten wiederverwendet werden. Attribute deren Name "VC" + Zahl lautet, müssen unbedingt aus diesem Verzeichnis verwendet werden. Diese Attribute beschreiben Anschlüsse, auf die aus COMOS direkt zugegriffen wird.
Attribute für jedes 3D-Bauteil ● "VGEO GeoTyp":
Beinhaltet den Zeichenprozeduraufruf in der Form: (Dateiname der cls-Datei ohne "Objects") + "." + Zeichenfunktionsname
● Unerlässliche Attribute speziell für jedes Rohrleitungs-Bauteil:
– "VPCL Rohrklasse": Legt die Rohrklasse eines Objektes fest.
– "VFCD Funktionscode": Ordnet das Objekt einer Gruppe von ähnlichen Objekten zu. Dient zur Rohrklassenabbildung und der Identifizierung eines Objekttyps im Code.
Optionale Attribute ● "LAYER Ebene":
Legt eine Gruppe von Objekten fest, die gemeinsam ein- und ausgeblendet werden.
● "VCOL Farbe": Legt die Farbe des Objektes fest.
● "VR01 AR-Code": Bestimmt den Status eines Objektes beim Routen. Ist dieses Attribut nicht vorhanden, wird das Bauteil vom Router berücksichtigt.
● "VSUI Editierbare Attribute": Beinhaltet durch Komma getrennt, die Namen aller Attribute, die in der 3D-Oberfläche angezeigt werden, wenn das entsprechende Objekt selektiert ist. Hier muss der D3-Modus nicht gesetzt werden, da dieses Attribut auch außerhalb des Viper Moduls verwendet werden kann.
3D-Symbole erzeugen und einbinden 7.4 Anlegen der Zeichenprozeduren
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 37
7.4 Anlegen der Zeichenprozeduren Definition einer Prozedur mit sprechendem Name (z.B. Box als Prozedurname für einen Quader). Zusätzlich sollte jede Zeichenfunktion mit einem ErrorHandler ausgestattet sein:
Deklaration der Variablen und Einlesen der Attributwerte von der GD-Registerkarte mit dem Befehl Geo.Value ("Attributname").
3D-Symbole erzeugen und einbinden 7.4 Anlegen der Zeichenprozeduren
Programmierung 38 Bedienhandbuch, 09/2011, A5E03638266-01
Die Zeichenfunktion wird in COMOS mehrmals aufgerufen, wobei jedes Mal ein oder mehrere Teile des Symbols gezeichnet oder aktualisiert werden. Deshalb unterscheidet man mit Geo.GeometrieMode den Status des aktuellen Prozeduraufrufs. Es existieren, wie man unten sehen kann, 7 unterschiedliche Zustände, die man jeweils in einer If-Abfrage definiert. Nicht benötigte GeometrieModes müssen in der Prozedur nicht definiert werden.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 39
Nun Zeichnet man die Form des Symbols in der If-Schleife mit dem Ausdruck Geo.GeometrieMode.GenerateGeometrie.
7.5 Vordefinierte Zeichenfunktionen
7.5.1 Einleitung Die eingezeichneten Koordinatenachsen geben den Nullpunkt und die Orientierung des Bauteils an (grün: x-Achse, gelb: y-Achse, blau: z-Achse).
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 40 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.2 Quader
Funktion Geo.Box SX As Double, SY As Double, SZ As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 41
7.5.3 Zylinder auf quadratischem Untergrund
Funktion Geo.BoxCylinder BaseRadius As Double, TopRadius As Double, Height As Double, [Top As Boolean=Wahr], [Bottom As Boolean=Wahr]
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 42 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.4 Zylinder 1 (optional Boden)
Funktion Geo.BoxCylinder BaseRadius As Double, TopRadius As Double, Height As Double, [Top As Boolean=Wahr], [Bottom As Boolean=Wahr]
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 43
7.5.5 Zylinder 2 (optional Boden und Deckel)
Funktion Geo.Cylinder BaseRadius As Double, TopRadius As Double, Height As Double, [Top As Boolean=Wahr], [Bottom As Boolean=Wahr]
Top und Bottom bestimmen die Darstellung von Boden und Deckel.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 44 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.6 Zylindersegment
Funktion Geo.CylinderSegment BigRadius As Double, SmallRadius As Double, Height As Double, StartAngle As Double, Angle As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 45
7.5.7 Zylinderwand
Funktion Geo.CylinderSide Outside As Boolean, Radius As Double, Height As Double
Outside bestimmt die Sichtbarkeit der Außenfläche.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 46 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.8 Kreisförmige Scheibe
Funktion Geo.CylinderSide Outside As Boolean, Radius As Double, Height As Double
Outside bestimmt die Sichtbarkeit der Außenfläche.
7.5.9 Polygon1
Funktion Geo.Extrusion NumPoints As Long, Contur() As POINT3D, Height As Double, [Side_Lines As Boolean=Wahr]
In z-Richtung durch die Height erweitertes Polygon.
7.5.10 Polygon2
Funktion Geo.Polygon NumPoints As Long, Contur() As POINT3D,
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 47
XNormal As Double, YNormal As Double, ZNormal As Double, [Reverse As Boolean]
XNormal, YNormal, ZNormal bestimmen, welche Fläche dargestellt wird. Definition des Normalenvektors.
7.5.11 Rotationskörper
Funktion Geo.Rotation NumPoints As Long, Contur() As POINT3D, Angle As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 48 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.12 Exzentrischer Zylinder
Funktion Geo.ExzCylinder BaseRadius As Double, TopRadius As Double, Height As Double, Offset As Double, [Top As Boolean=Wahr], [Bottom As Boolean=Wahr]
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 49
7.5.13 Klöpperboden
Funktion Geo.KPBoden Diameter As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 50 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.14 Pyramide
Funktion Geo.Pyramid SX As Double, SY As Double, SZ As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 51
7.5.15 Zylinder
Funktion Geo.SheetWithRoundedCorner Depth as Double, Width As Double, Height As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 52 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.16 Kugel
Funktion Geo.Sphere Radius As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 53
7.5.17 Kugelsegment
Funktion Geo.SphereSegment Radius As Double, StartAngle As Double, Angle As Double
(-90 < StartAngle < 90; Angle + StartAngel <=180)
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 54 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.18 Text
Funktion Geo.Text sText As String, Height As Double
7.5.19 Torus
Funktion Geo.TorusArc SmallRadius As Double, BigRadius As Double, [StartAngle As Double], [Angle As Double=360]
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 55
7.5.20 Torussegment
Funktion Geo.TorusArcSegment SmallRadius As Double, BigRadius As Double, [StartAngleForBigRadius As Double], [AngleForBigRadius As Double], [StartAngleForSmallRadius As Double], [AngleForSmallRadius As Double=360]
Gezeichnete Außenfläche wird mit StartAngleForBigRadius und AngleForBigRadius beeinflusst:
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 56 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.21 Drahtgitter-Quader
Funktion Geo.WireBox SX As Double, SY As Double, SZ As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 57
7.5.22 Zylinderschnitt
Funktion Geo.CylinderCylinderIntersection r3top As Double, r3bot As Double, r As Double, I As Double, [DW As Double], [e As Double], [PHI As Double]
r3top und PHI sind derzeit nicht in Verwendung.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 58 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.23 Exzentrische Pyramide
Funktion Geo.ExzPyramide Width As Double, Depth As Double, Height AS Double, [TopWidth As Double], [TopDepth As Double], [OffsetX As Double], [OffsetY As Double]
OffsetX und OffsetY beschreiben den Versatz der Deckelfläche gegenüber der Bodenfläche entlang der X- und Y-Achse.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 59
7.5.24 Torusbogen (Reduzierung möglich)
Funktion Geo.TorusArc1 SmallRadius As Double, BigRadius As Double, [StartAngle As Double], [Angle As Double = 360], [ReducedSmallRadius As Double = -1], [NumberOfSegments As Long = -1]
7.5.25 OpenGL-Funktionen
Navigieren im 3D-Raum Zusätzlich stehen von OpenGL abgeleitete Funktionen zum Navigieren im 3D-Raum zur Verfügung:
● Rotation um beliebige Achse Geo.Rotate
AngleDegree As Double,
X AS Double,
Y As Double,
Z As Double
● Rotation um bestimmte Objektachse
– Geo.RotateX
AngleDegree As Double
– Geo.RotateY
AngleDegree As Double
– Geo.RotateZ
AngleDegree As Double
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 60 Bedienhandbuch, 09/2011, A5E03638266-01
● Verschiebung relativ zur aktuellen Position Geo.Move
X As Double,
Y As Double,
Z As Double
● Aktuelle Position merken Geo.PushMatrix
● Zu gemerkter Position zurückkehren Geo.PopMatrix
● Zum absoluten Nullpunkt zurückkehren Geo.LoadIdentity
● Die Position der angegeben Matrix wird eingenommen Geo.LoadMatrix m As MATRIX3D
7.5.26 Anschlüsse erzeugen
Symbole mit Konnektoren verbinden (allgemein) Um das neu erzeugte Symbol mit anderen Symbolen verbinden zu können, muss man es mit Konnektor ausstatten. Das funktioniert analog zum Zeichnen der Grundform, in der oben genannten If-Schleife. Man bewegt sich also im Raum an die Stelle an der der Konnektor am Symbol platziert wird, richtet sich aus (Befehle siehe oben) und zeichnet den Konnektor mit dem Funktionsaufruf: Geo.GeoConnector (Index As Long, [ConnectorClass As eConnectorClass=ConnectorClass_General] As I3Dconnector)
Der Index des Konnektors muss >0 sein. In diesem Zusammenhang werden 6 Konnektorklassen, die jeweils unterschiedliche Eigenschaften haben, unterschieden:
● ConnectorClass_Elo (für E-Technik Objekte)
● ConnectorClass_General (default Einstellung)
● ConnectorClass_Pipe (für Rohrleitungsteile, Armaturen etc.)
● ConnectorClass_Steel (für Stahlbau Objekte)
● ConnectorClass_Undef
● ConnectorClass_VesselNozzle (für Behälter und Kolonnen)
Besondere Angaben für ConnectorClass_Pipe Bitte beachten: Erzeugt man Konnektoren vom Typ ConnectorClass_Pipe, so muss man darauf achten, dass diese Konnektoren Informationen über ihre Nennweite, Nenndruck und Anschlussart erhalten müssen:
● VC11, VC12 und VC13 müssen an jedem Objekt mit Konnektoren vom Typ ConnectorClass_Pipe auf der Registerkarte "GD" vorhanden sein.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 61
Des Weiteren kann man (optional) folgende Attribute anlegen, um den neuen Konnektor zu definieren:
● "VC" + Konnektorindex + "1" für Nennweite
● "VC" + Konnektorindex + "2" für Nenndruck
● "VC" + Konnektorindex + "3" für Anschlussart
Ist eins dieser Attribute nicht vorhanden, wird schrittweise versucht auf Attribute mit kleinerem Konnektorindex zuzugreifen.
Hat ein Konnektor dieses Typs die Anschlussart "geflanscht", so wird die Flanschfläche automatisch gezeichnet. Das funktioniert nur wenn für diesen Konnektor ein Nenndruck ausgewählt wurde.
Beispiel:
Das Attribut "VC11" ist auf der Registerkarte "GD" vorhanden. Legt man nun einen Konnektor vom Typ ConnectorClass_Pipe mit Index 4 an, so passiert folgendes:
Da "VC41" nicht vorhanden ist wird versucht erst auf "VC31" und dann auf "VC21" zuzugreifen. Da diese beiden Attribute auch nicht vorhanden sind, wird der Wert schließlich aus dem Attribut "VC11" ausgelesen.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 62 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.26.1 Beispiele
Beispiel1 Die Symbolbeschreibung eines Quaders mit unausgerichteten Konnektoren an jeder Ecke könnte folgendermaßen aussehen:
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 63
Beispiel 2 Die Symbolbeschreibung eines Quaders mit ausgerichteten Konnektoren an jeder Ecke könnte folgendermaßen aussehen:
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 64 Bedienhandbuch, 09/2011, A5E03638266-01
7.5.27 Bemaßungen (Grabs) Anschließend können Sie im Modus Geo.GeometrieMode.GenerateGrabs, einem Attribut zugeordnet, eine Bemaßung definieren. Es ist somit möglich ein Objekt im 3D-Plan online anzupassen.
7.5.28 Anfasser (SnapPoints) Modus Geo.GeometrieMode.GenerateSnapPoints definiert zusätzliche Anfasser.
7.5.29 Expertenfunktionen Folgend Expertenfunktionen sind verfügbar:
● Geo.GeometrieMode.GenerateOutlines
● Geo.GeometrieMode.GenerateCenterLines
Geo.GeometrieMode.GenerateCenterLines Modus Geo.GeometrieMode.GenerateOutlines definiert zusätzliche Außenlinien. Implementierung in diesem Modus sollten vermieden werden, da es zu fundamentalen Fehlern kommen kann.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 65
Geo.GeometrieMode.GenerateCenterLines Modus Geo.GeometrieMode.GenerateCenterLines definiert zusätzliche Linien. Implementierung in diesem Modus sollten vermieden werden, da es zu fundamentalen Fehlern kommen kann.
3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen
Programmierung 66 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 67
Icon-Spezifikationen 8Technische Spezifikationen für Icons
● 72 dpi
● RGB 8-bit
● 16x16 Nur Icons in der Größe von 16x16 werden offiziell unterstützt. Alle anderen Formate werden nicht an jeder Stelle in COMOS korrekt dargestellt.
● Skalierung: Ab COMOS 8.2 gilt: die Seitenverhältnisse werden nicht automatisch beibehalten. Stattdessen entscheidet die verwendende Stelle in COMOS, wie das Bild dargestellt wird.
● Hintergrund: Transparent Aus Interoperabilitätsgründen (wegen VB) muss die PicturesLibrary beim konvertieren zwischen den beiden Welten (COM und .NET) eine Farbe als transparent markieren. Hierbei hält sich PicturesLibrary an den Standard von Microsoft und nimmt dafür die Farbe des unteren linken Pixels des Bildes (es sei denn der ist Schwarz). Wer also ein Bild erstellt oder eins in der Datenbank findet, welches nur eine Farbe hat und diese auch auf dem unteren linken Pixel gesetzt ist, darf sich nicht wundern wenn er dann kein Bild mehr sieht bzw. diese Farbe in dem Bild fehlt.
Icon-Spezifikationen
Programmierung 68 Bedienhandbuch, 09/2011, A5E03638266-01
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 69
Andere Komponenten 99.1 Report.ocx
Document: Function CreateDWG ( x1 as Double, y1 as Double, x2 as Double, y2 as Double ) as Object
CreateDWG erzeugt einen Platzhalter (= Rechteck) für eine DWG/DXF-Datei auf dem Report. Die Parameter sind die Koordinaten des Platzhalters. Als Rückgabewert wird von der Klasse ReportDWG ein Objekt geliefert. An diesem Objekt wird mit der Eigenschaft FileName die anzuzeigende AutoCAD-Datei bestimmt.
Man kann CreateDWG überall dort verwenden, wo man Zugriff auf ComosReportDocument hat (also auf die Klasse Document von Report.ocx). In Reportvorlagen ist das bei allen platzierten Objekten der Fall, die in den Eigenschaften eine Registerkarte Script besitzen.
Script Set MyDwg = ReportDocument.CreateDWG(x1, y1, x2, y2) MyDWG.FileName = "xyz.dwg"
VisualBasic Report.ocx einbinden.
Dim MyDwg as ReportLIB.ReportDWG
Set MyDwg = ReportDocument.CreateDWG(x1, y1, x2, y2)
MyDWG.FileName = "xyz.dwg"
9.2 UseSpecs.dll Liefert mittels der Funktion GetUseSpecifications alle Verwendungen. Damit ist diese Funktion das scripttechnische Gegenstück zur Registerkarte "Verwendung".
GetUseSpecifications Function GetUseSpecifications(ByVal Spec As IComosDSpecification, ByVal ObjType As ObjectType, ByVal DocType As DocumentType, ByVal ProjType As ProjectType, ByVal Inherit As Boolean) As IComosDCollection Spec: ObjType: DocType: ProjType: Inherit:
Andere Komponenten 9.2 UseSpecs.dll
Programmierung 70 Bedienhandbuch, 09/2011, A5E03638266-01
Option ObjectType ("Auswerten von") 0: Keine
1: Stammobjekte
2: Planungsobjekte
3: Alle
Option DocumentType ("Berücks. Dokumente") 0: Keine
1: Vorlagen
2: Planung
3: Alle
Option ProjectType ("Projekt") 0: Aktuelles
1: Alle
Beispiel 1 Das folgende Beispiel liefert alle Verwendungen des Attributs "CurrentSpec", dabei werden nur Stammobjekte, Dokumentenvorlagen im aktuellen Projekt berücksichtigt.
Außerdem findet eine Auswertung mit geerbten Objekten statt (True-Parameter). Set UseSpesDLL = CreateObject("ComosUseSpecs.UseSpecs") If Not UseSpesDLL Is Nothing Then Set SpecCol = UseSpesDLL.GetUseSpecifications (CurrentSpec, 1, 1, 0, True) End If
Beispiel 2 Ausgabe eines Attributes im Objektdebugger. 'CurrentSpec ist dann z.B. das gedraggte Objekt im Editfeld "A" => UseSpesDLL.GetUseSpecifications (A, 1, 1, .... Output "SpecCol.Count = " + cstr(SpecCol.Count) For i = 1 To SpecCol.Count Output SpecCol.item(i).systemfullname Next
Andere Komponenten 9.3 ComosTGeneratorJobs
Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 71
9.3 ComosTGeneratorJobs
9.3.1 Class NextString und Class RunValues Im CObject steht entweder die Maske oder @MASK:SatzNameInTabelle.
Class NextString Function
● AddItem AddItem ( ByVal ItemStr as String ) as Integer Fügt String-Item hinzu .
● MaskValid MaskValid ( ) as Boolean
Testet, ob die Maske selbst korrekt ist.
● Test Test ( ByVal CurrentValue as String ) as Boolean
Testen den übergebenen String für die aktuelle Maske und liefert zurück, ob der String gültig ist.
● GetNext GetNext ( ) as String
Liefert den nächsten berechneten String. Fügt keinen Item hinzu.
● RegExpPattern RegExpPattern ( ByVal ComosMask as String ) as String
● TestPrefix TestPrefix ( ByVal CurValue as String ) as Boolean
Property
● DefaultValue DefaultValue ( ) as String
● Mask Mask ( ) as String
COMOS-Textmaske, also Vorlage für den neuen String.
● ScreenMessages ScreenMassages ( ) as Boolean
Sub
● Clear Clear ( )
Löscht alle String-Items.
Andere Komponenten 9.3 ComosTGeneratorJobs
Programmierung 72 Bedienhandbuch, 09/2011, A5E03638266-01
Class RunValues Function
● Mask Mask ( ByVal TextGenerator as IComosDTextGenerator ) as String
● DefaultValue DefaultValue ( ByVal TextGenerator as IComosDTextGenerator ) as String
Property
● ScreenMessages ScreenMassages ( ) as Boolean