+ All Categories
Home > Documents > COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept...

COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept...

Date post: 17-Sep-2018
Category:
Upload: tranlien
View: 227 times
Download: 0 times
Share this document with a friend
72
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
Transcript
Page 1: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

� �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

Page 2: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 3: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 4: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 5: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

Programmierung Bedienhandbuch, 09/2011, A5E03638266-01 5

Marken 1Marken

Eingetragener Schutzrechtsvermerk: COMOS®

Page 6: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

Marken

Programmierung 6 Bedienhandbuch, 09/2011, A5E03638266-01

Page 7: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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>

Page 8: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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; }

Page 9: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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); }

Page 10: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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

Page 11: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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>

Page 12: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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).

Page 13: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.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"

Page 14: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

.NET-Komponeten für COMOS 2.2 .NET-Komponenten für Dokumente

Programmierung 14 Bedienhandbuch, 09/2011, A5E03638266-01

Page 15: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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)

Page 16: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 17: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 18: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 19: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 20: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

Entwicklung mit Visual Basic 6 in COMOS 3.4 Testen von Visual Basic-Komponenten

Programmierung 20 Bedienhandbuch, 09/2011, A5E03638266-01

Page 21: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 22: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 23: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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>

Page 24: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 25: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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)

Page 26: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 27: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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 ");

Page 28: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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 ); }

Page 29: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 30: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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)

Page 31: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 32: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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 + + + + + + + + + + + + + + +

Page 33: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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 +

Page 34: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

ControlProperties 6.4 Zuordnung ControlProperties zu SuiControls

Programmierung 34 Bedienhandbuch, 09/2011, A5E03638266-01

Page 35: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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).

Page 36: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 37: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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").

Page 38: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 39: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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).

Page 40: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 41: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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]

Page 42: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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]

Page 43: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 44: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 45: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 46: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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,

Page 47: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 48: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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]

Page 49: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 50: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 51: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 52: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 53: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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)

Page 54: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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]

Page 55: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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:

Page 56: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 57: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 58: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 59: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 60: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 61: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 62: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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:

Page 63: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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:

Page 64: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 65: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 66: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

3D-Symbole erzeugen und einbinden 7.5 Vordefinierte Zeichenfunktionen

Programmierung 66 Bedienhandbuch, 09/2011, A5E03638266-01

Page 67: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 68: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

Icon-Spezifikationen

Programmierung 68 Bedienhandbuch, 09/2011, A5E03638266-01

Page 69: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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:

Page 70: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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

Page 71: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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.

Page 72: COMOS 4 - cache.industry.siemens.com · Rechtliche Hinweise Rechtliche Hinweise Warnhinweiskonzept Dieses Handbuch enthält Hinweise, die Sie zu Ihrer persönlichen Sicherheit sowie

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


Recommended