| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: Texte erzeugen (2332 mal gelesen)
|
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 26. Mai. 2009 13:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe gesehen das man mit VB einiges in SE machen kann. Ich verwende hauptsächlich VB.Net. Ist es möglich Textfelder per VB Code mit Texten zu füllen? Und hat jemand vielleicht ein Beispiel für mich? Danke
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matthias Leemann Mitglied Masch. Ing HTL
Beiträge: 393 Registriert: 03.10.2003 Windows 11 Pro Solid Edge 2022
|
erstellt am: 27. Mai. 2009 07:33 <-- editieren / zitieren --> Unities abgeben: Nur für maila
Hallo maila, folgender Code erzeugt eine Textblase im aktiven Draft: Code: Dim SE As SolidEdgeFramework.Application Dim objdraft As SolidEdgeDraft.DraftDocument 'zu Solid Edge verbinden Try SE = GetObject(, "SolidEdge.Application") SE.DisplayAlerts = False SE.ScreenUpdating = True Catch ex As Exception MessageBox.Show("Starten Sie Solid Edge und laden Sie eine Zeichnung") End Try Try objdraft = SE.ActiveDocument Catch ex As Exception MessageBox.Show("kein Draft in Solid Edge aktiv") SE.DisplayAlerts = True 'Objekte wieder freigeben If IsNothing(SE) Then Else SE = Nothing GC.Collect() GC.WaitForPendingFinalizers() End If If IsNothing(objdraft) Then Else objdraft = Nothing GC.Collect() GC.WaitForPendingFinalizers() End If Exit Sub End Try 'aktives Blatt Dim objsheet As SolidEdgeDraft.Sheet objsheet = objdraft.ActiveSheet 'Textblase erzeugen Dim objBalloons As SolidEdgeFrameworkSupport.Balloons objBalloons = objsheet.Balloons Dim objBalloon As SolidEdgeFrameworkSupport.Balloon 'auf aktives Blatt absetzen objBalloon = objBalloons.Add(30 / 1000, 20 / 1000, 0) objBalloon.BalloonTextPrefix = "Hallo ich bin eine Textblase" 'Einstellungen Solid Edge zurückstellen SE.DisplayAlerts = True 'Objekte wieder freigeben If IsNothing(SE) Then Else SE = Nothing GC.Collect() GC.WaitForPendingFinalizers() GC.WaitForPendingFinalizers() End If If IsNothing(objdraft) Then Else objdraft = Nothing GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() GC.WaitForPendingFinalizers() End If End Sub
Gruss Matthias ------------------ SE V20 SP5 / SE ST SePropManager.NET von www.leemann-software.net Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 07:45 <-- editieren / zitieren --> Unities abgeben:
|
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 08:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe die Verweise gefunden, das Programm gestartet und bekomme von SE die Meldung, das mit meiner installierten Lizenz eine Automation nicht möglich ist. Schade, scheint mit der kostenfreien SE V100 nicht zu gehen. Gibt es eine andere Möglichkeit? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Matthias Leemann Mitglied Masch. Ing HTL
Beiträge: 393 Registriert: 03.10.2003 Windows 11 Pro Solid Edge 2022
|
erstellt am: 27. Mai. 2009 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 27. Mai. 2009 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
Markus Gras Moderator Solid Edge AE
Beiträge: 4602 Registriert: 20.07.2000 Kritik muß sachlich falsch und persönlich verletzend sein, damit sie wirkt.
|
erstellt am: 27. Mai. 2009 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 12:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Markus, ich möchte eigentlich nur erreichen, das ein Textfeld "automatisch" gefüllt wird. Zweck der ganzen Sache ist, eine Legende mit Werten zu füllen, die aus einer SQL-Server Datenbank kommen. Die Werte wollte ich per VB aus der Datenbank holen und in die Zeichnung setzen. Ich habe auch schon an Variablen gedacht, aber das funktioniert ja nur mit Bemaßungen. Ich habe auch schon eine kleine Excel-Tabelle als Objekt eingefügt, aber wenn ich den Wert in der Excel-Zelle ändere, wird dieser nicht sofort in der Zeichnung angezeigt. Es wäre toll, wenn da mit "Bordmitteln" etwas machbar ist. Danke für Deine Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 12:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Markus, ich möchte eigentlich nur erreichen, das ein Textfeld "automatisch" gefüllt wird. Zweck der ganzen Sache ist, eine Legende mit Werten zu füllen, die aus einer SQL-Server Datenbank kommen. Die Werte wollte ich per VB aus der Datenbank holen und in die Zeichnung setzen. Ich habe auch schon an Variablen gedacht, aber das funktioniert ja nur mit Bemaßungen. Ich habe auch schon eine kleine Excel-Tabelle als Objekt eingefügt, aber wenn ich den Wert in der Excel-Zelle ändere, wird dieser nicht sofort in der Zeichnung angezeigt. Es wäre toll, wenn da mit "Bordmitteln" etwas machbar ist. Danke für Deine Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 12:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Markus, ich möchte eigentlich nur erreichen, das ein Textfeld "automatisch" gefüllt wird. Zweck der ganzen Sache ist, eine Legende mit Werten zu füllen, die aus einer SQL-Server Datenbank kommen. Die Werte wollte ich per VB aus der Datenbank holen und in die Zeichnung setzen. Ich habe auch schon an Variablen gedacht, aber das funktioniert ja nur mit Bemaßungen. Ich habe auch schon eine kleine Excel-Tabelle als Objekt eingefügt, aber wenn ich den Wert in der Excel-Zelle ändere, wird dieser nicht sofort in der Zeichnung angezeigt. Es wäre toll, wenn da mit "Bordmitteln" etwas machbar ist. Danke für Deine Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 12:18 <-- editieren / zitieren --> Unities abgeben:
|
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 27. Mai. 2009 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
Matthias Leemann Mitglied Masch. Ing HTL
Beiträge: 393 Registriert: 03.10.2003 Windows 11 Pro Solid Edge 2022
|
erstellt am: 27. Mai. 2009 13:52 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 14:05 <-- editieren / zitieren --> Unities abgeben:
|
edlich Mitglied Maschinenbautechniker
Beiträge: 95 Registriert: 15.06.2001 SE St4/Sp4 Win 7 Xeon W3550 (4Core,3,07GHz) Quadro 4000
|
erstellt am: 27. Mai. 2009 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für maila
Hallo, ich glaube am einfachsten ist folgende Vorgehensweise: eine Variable erstellen Variable mit Excel-Tabelle verknüpfen eine Legende in die Zeichnung mit Verknüpfung zur Variablen Variable in Excel ändern und die Verknüpfung im Draft ändert sich sofort mit Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 27. Mai. 2009 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für maila
|
edlich Mitglied Maschinenbautechniker
Beiträge: 95 Registriert: 15.06.2001 SE St4/Sp4 Win 7 Xeon W3550 (4Core,3,07GHz) Quadro 4000
|
erstellt am: 27. Mai. 2009 15:01 <-- editieren / zitieren --> Unities abgeben: Nur für maila
Hallo, Zitat: "Zweck der ganzen Sache ist, eine Legende mit Werten zu füllen, die aus einer SQL-Server Datenbank kommen." die Excel-Tabelle nur als Beispiel für eine Dateneingabe von einer externen Quelle. Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
maila Mitglied
Beiträge: 49 Registriert: 08.01.2008
|
erstellt am: 27. Mai. 2009 15:10 <-- editieren / zitieren --> Unities abgeben:
|
Silke Boll Mitglied
Beiträge: 1142 Registriert: 06.06.2007 Win7 Home Premium Unigraphics NX
|
erstellt am: 27. Mai. 2009 15:27 <-- editieren / zitieren --> Unities abgeben: Nur für maila
Hallo, kleiner Zwischengedanke: Hast Du das kostenlose Solid Edge 2D-Drafting ? (kostenfreie SE V100.....) Da ist keine API enthalten und da kannst Du nichts mit Makros machen. Viele Grüße, Silke
[Diese Nachricht wurde von Silke Boll am 27. Mai. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7321 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 27. Mai. 2009 16:01 <-- editieren / zitieren --> Unities abgeben: Nur für maila
Immer noch der Tipp mit den Benutzerdefinierten Dateieigenschaften. Die können doch auch in Legendentexte. Darauf kannst Du eventuell auch schon ohne SE-Api zugreifen. Es gibt zwar eine SolidEdgeFileproperties-Library, aber die benutzerdefinierten Eigenschaften stehen auch auf Rechnern ohne SE zur Verfügung. Damit könnte die Programmierererei wieder gehen. Allerdings muss möglicherweise das Dokument dazu geschlossen sein. ------------------ APeters@BSS-Online.de [Diese Nachricht wurde von Arne Peters am 27. Mai. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |