Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Visual Basic die zweite

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge
Autor Thema:  Visual Basic die zweite (436 mal gelesen)
amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 23. Mrz. 2004 16:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

folgendes Problem.
ich versuche einen Schriftkopf mit VB in einer Zeichnung zu platzieren. den Schriftkopf habe ich als Symbol.

folgendes habe ich ausprobiert.

Fall 1:

Set objSymbol = objSymbols.Add(igOLEEmbedded, objSymbol2Place, nXs - 0.001, nYs + 0.0005)

Symbol wird richtig Platziert.
Nachteil durch die OLE Verknüpfung werden die Properties von der Symboldatei gezogen ==> das ist nicht brauchbar.

Ich habe auch schon versucht die Variable "igOLEEmbedded" durch die "igOLENone" zu ersetzen. das ergebis ist eine Fehlermeldung.
Obwohl in der Hilfe 5 Werte zulässig sind, akzeptiert er komischerweise nur die mit OLE Verknüpfungen.

So dachte ich mir versuch es mit Fall Nummer 2.

Set objSymbol = objSheet.Symbols.InsertSymbolAsGeometry("C:\TempAMG\schriftfeld\Symbol1.dft", nXs - 0.001, nYs + 0.0005)

Hier sollte das Makro das Symbol als Geometrie einfügen.
So dass die Properties von der aktiven Datei zum ausfüllen herangezogen werde.

Das war leider nicht der fall.
Ich kann machen was ich will es kommen nur so fehler wie
"Kann Methode nicht anwenden" oder "Fehlendes Objekt"

Hat jemand von euch eine Idee wie ich ein Symbol als Geometrie
einfügen kann, so daß es auf die Properties der aktuellen Datei zugreift beim ausfüllen.

Wäre Klasse wenn jemand eine Idee hätte.

MfG
AMG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 23. Mrz. 2004 19:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Moin,

ich hoffe ich hab's verstanden. Dann wuerde ich den Kopf aus Textboxen zusammen
bauen und neben/unter jede Textbox einen 'Callout' ohne Leader mit der entsprechenden
Variable versehen:

In der Annahme die TextBox endet bei X_upperRight/Y_bottom

    Set objBalloons = objSheet.Balloons
    '
    x = X_upperRight + 0.001
    y = Y_bottom + 0.001
    Call createBalloon(x, y, "%{Sheet number} / %{Number of Sheets}")


Private Sub createBalloon(pXcoord As Double, _
                      pYcoord As Double, _
                      pText As String)
'
    Set objBalloon = objBalloons.Add(pXcoord, pYcoord, 0)
    objBalloon.BalloonText = CStr(pText)
    objBalloon.BalloonType = igDimBalloonNone
    objBalloon.Callout = 1
    objBalloon.Leader = False
'
End Sub


modeng

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pablo
Mitglied
Techniker


Sehen Sie sich das Profil von pablo an!   Senden Sie eine Private Message an pablo  Schreiben Sie einen Gästebucheintrag für pablo

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 23. Mrz. 2004 20:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Hallo Klaus,

mit Symbols hab ich keine Erfahrung, was hältst du davon, den Schriftkopf auf ein Hintergrundblatt der Ursprungsdatei zu zeichnen und das in deine Draft einzufügen?

pablo

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


Sehen Sie sich das Profil von Arne Peters an!   Senden Sie eine Private Message an Arne Peters  Schreiben Sie einen Gästebucheintrag für Arne Peters

Beiträge: 7321
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 23. Mrz. 2004 20:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Das mit dem platzieren als Symbol funktioniert prima.
Das ist aber kein Object, sondern eine Methode. Der Typ "Geometrie" fehlt beim Add, denn es wird ja kein neues Objekt an eine Collection angefügt, sondern Geometrie als Gruppe platziert. Deshalb

    Call o_Symbols.InsertSymbolAsGeometry(Datei, x, y)

Dann kann man das ganze noch als Locatable=false machen und dann muß es auch nicht in den Background, sondern kann auf dem Arbeitsblatt platziert werden.

    i = o_groups.Count
    o_groups.Item(i).UserDefinedName = "Schriftfeld_auto"
    o_groups.Item(i).Locatable = False

Viele Grüße


APeters@BSS-Online.de

[Diese Nachricht wurde von Arne Peters am 23. Mrz. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 23. Mrz. 2004 22:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Moin,

@pablo  ... der Frager war amg13 ...

sicher Schriftkoepfe, zumal immer wiederkehrende, ins Hintergrundblatt.
Das hatte ich dem Frager ueberlassen. Beides ist moeglich.
Mit dem Symbols war ich mir nicht so im Klaren: ich hatte verstanden
das er irgendwelche Properties zb.: aus Custom auslesen will, und das
mach ich eigentlich immer mittels Callout (haendisch ;-)) )

Klaus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 24. Mrz. 2004 02:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für amg13 10 Unities + Antwort hilfreich

Moin,

... richtig was Arne geschrieben hat jedoch moeglicherweise ein bischen zu knapp erklaert ;-)

objSymbols  = Objekt
InsertSymbolAsGeometry(...) = eine Methode des Objekts o_Symbols
Add(...) = noch eine des gleichen Objekts

Nur es fehlt im "Programming ..." der Hinweis das die Methode Add() eine Function im Sinne von
VBasic ist und daher einen Rueckgabewert hat. Die Methode InsertSymbolAsGeometry() ist dagegen
asl "Sub" implementiert und hat daher keinen Rueckgabewert.
Daher war der 2. Ansatz fast, aber eben nur fast, richtig ;-)

Die Unterschiede beider Methoden sind gut im VB Objekt-Browser zu sehen:

Member of Symbols:
Sub InsertSymbolAsGeometry(filePath As String, dOriginX As Double, dOriginY As Double)

Function Add(insertionType As Long, filePath As String, x As Double, y As Double, [z]) As Symbol2d

Daher Objekt Browser anwerfen und Beschreibung zum Objekt/Methode lesen, ist meist informativer
als der Text des "Programming ..."

modeng

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

amg13
Mitglied



Sehen Sie sich das Profil von amg13 an!   Senden Sie eine Private Message an amg13  Schreiben Sie einen Gästebucheintrag für amg13

Beiträge: 942
Registriert: 20.12.2002

Aktuell:
FSC R550 2x Xeon X5450 QuadCore
8GB RAM
Nvidia FX4800
Dell Precision M6300
Solid Edge ST3
NX 7.5
Solid Works 2010
Pro/E
Das war einmal:
HP Workstation
>80x SolidEdge V19 (Classic & Foundation)
14x SMAP3D Piping/Partfinder

erstellt am: 24. Mrz. 2004 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

danke für Euere Hilfe.
Das hat mir echt weitergeholfen.

Aus dem Objektkatalog bin ich aber nicht sehr schlau geworden.

cya
AMG

PS: Als Hintergrundinfo folgendes.
Natürlich ist unser Schriftkopf auf dem Hintergrundblatt. Das Makro an dem ich arbeite soll nur alte Zeichnungen mit dem neuen Schriftkopf versehen. Dies ist notwendig weil wir unsere SAP Anbindung von SE wechseln.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz