Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - Name von Blattformat

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 SOLIDWORKS
  
CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS
Autor Thema:  API - Name von Blattformat (656 mal gelesen)
Thomas Rolf
Mitglied
Dipl.-Ing. / CAD-Admin


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

Beiträge: 189
Registriert: 02.07.2001

SWX 2015 SP4.0

erstellt am: 10. Sep. 2002 16: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 z'sammen;

Ich suche eine Möglichkeit, per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) an den Namen des Blattformats des aktuellen Blatts zu kommen.
Bei mir heißt das eigentlich immer "Blattformat1", es sei denn, man fügt mehrere Blätter ein.
Dann bekommt das Blattformat eine neue Nummer. z.B. "Blattformat3"
Wahrscheinlich kann man den Namen noch nicht mal ändern.
Aber kann man ihn wenigstens herausbekommen?

Danke im voraus
Thomas

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 11. Sep. 2002 07:46    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo Thomas,

ich war zuerst etwas verwirrt, Blattformat gibt es in SolidWorks genau 12 Stück, die Namen davon stehen in der swconst.bas

Aber ich vermute, du meinst den Namen des aktuellen Blattes selbst. Diesen Namen kannst du ohne Schwierigkeiten herausbekommen und auch ändern, gar kein Problem. Beispielcode:

Code:

Dim swApp As Object
Dim DrawingDoc As Object
Dim Sheet As Object

Sub main()

    Set swApp = CreateObject("SldWorks.Application")
    Set DrawingDoc = swApp.ActiveDoc
    Set Sheet = DrawingDoc.GetCurrentSheet

    ' aktueller Name
    MsgBox Sheet.GetName

    ' neuen Namen fragen
    Sheet.SetName (InputBox("Neuen Namen eingeben"))

End Sub


Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

Thomas Rolf
Mitglied
Dipl.-Ing. / CAD-Admin


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

Beiträge: 189
Registriert: 02.07.2001

SWX 2015 SP4.0

erstellt am: 11. Sep. 2002 08:11    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

Hi Stefan;

war schon 'ne tolle Antwort, trifft aber nicht ganz das, was ich brauche.
Also noch etwas konkreter:

Wenn ich innerhalb eines Blattes die rechte Maustaste drücke und "Blattformat bearbeiten" wähle, wechselt SWXSolidWorks auf das Blattformat, welches ich meine. Dies passiert per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) auch mit "EditTemplate".

In diesem Blattformat habe ich zwei Blöcke liegen (CustomSymbol) , die aber an der gleichen Stelle positioniert sind. Einen dieser beiden Blöcke möchte ich per APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) selektieren. Um dies hinzukriegen, brauche ich den Object-Namen des Blocks, da die Position allein nicht ausreicht.
Den eigentlichen Namen (z.B. "Block47") habe ich schon herausgefunden, um ihn aber zu selektieren, brauche ich auch den Namen des Blattformats. Dann kann ich beides zu
z.B. "Block47@Blattformat5" zusammensetzen und mit
-
Dwgdoc.selectbyid "Block47@Blattformat5", "CUSTOMSYMBOL", ... 
-
meinen Block zu packen kriegen.
Den Namen des Blattes kriege ich ja mit Deinem Code heraus, aber wie ermittele ich dann den zughörigen Blattformatnamen?

Falls Du eine Idee hast, sag' ich schon mal Danke.
Thomas

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Sep. 2002 07:45    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo Thomas,

tut mir leid, da muss ich die Segeln streichen. Alles was dann kommen würde wären Vvermutungen, also lass ich es besser. Frag am Besten beim APISupport nach, die wissen das bestimmt, ob es geht oder eben nicht.

Sorry für die schlechte Meldung am frühen Morgen,

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

3Defacto
Mitglied
Ingenieurbüro


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

Beiträge: 33
Registriert: 02.04.2001

erstellt am: 12. Sep. 2002 08:15    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo Thomas,

ich muss mich der Antwort von Stefan anschliessen. Habe gestern rumgestöbert und auch keine brauchbare Lösung gefunden.

Würde mich aber auch interessieren, wenn Du beim Support einen Befehl oder ein Woraround genannt bekommst - ich habe nicht's in der Hilfe und in den Beispielen gefunden.

Gruß Mathias

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 12. Sep. 2002 09:06    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo,
vielleicht kann ich noch etwas Licht in das Dunkel bringen (hoffentlich steh ich jetzt nicht ganz daneben): wenn ich mich recht erinnere, dann hieß das, was in der aktuellen SWXSolidWorks-Version "Vorlage1", "Vorlage2" ... heißt, früher "Blattformat1", "Blatformat2" ... -und diesen Namen muß man wissen, um an ein Objekt auf Blattformatebene zu kommen. Ganz dumm wirds, wenn man dann womöglich mit Zeichnungen aus anderssprachigen Installationen arbeiten muß, da heißt das dann z.B. "template1" usw.

ciao

------------------
Klaus Massler
Alois Kober GmbH
http://www.al-ko.de

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

MartinKirchmayer
Mitglied



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

Beiträge: 79
Registriert: 14.05.2002

erstellt am: 12. Sep. 2002 10:59    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo zusammen,
ich glaube, ich habe da was:

[codeschnipsel start]

mySwDoc.SetAddToDB True ' this is to avoid snapping
' Get the selection manager class
Set SelMgr = mySWDoc.SelectionManager()
Set myFeature = mySWDoc.FirstFeature

' traverse the feature structure
While Not myFeature Is Nothing
       
    Set mySubFeat = myFeature.GetFirstSubFeature

    ' While we have a valid Sub-feature
    While Not mySubFeat Is Nothing
        ' Get the name of the Sub-feature
        If mySubFeat.GetTypeName() = "DrTemplate" Then

            mySubFeatName = mySubFeat.Name

            ' create the attribute name
    myAttrName = "Block47" & "@" & mySubFeatName
            ret = mySWDoc.SelectByID(myAttrName, "NOTE", 0, 0, 0)


        End If

        Set mySubFeat = mySubFeat.GetNextSubFeature
        ' Continue until the last Sub-feature is done
    Wend


    Set myFeature = myFeature.GetNextFeature()
Wend

[code-schnipsel ende]

Das verwende ich (etwas aufgebohrt um die PDM-Daten) um einen Block mit der Änderungshistorie zu löschen bevor eine Zeichnung im PDM gespeichert wird.

Es sollte weiterhelfen (sorry, daß ich nicht mehr Zeit habe, das genauer zu dokumentieren, aber vielleicht hat ja der ein oder andere SW-APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Guru hier im Forum etwas mehr Zeit).

Grüße aus Franngn,
Martin

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

d_b
Mitglied
vorhanden


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

Beiträge: 88
Registriert: 15.03.2001

42

erstellt am: 12. Sep. 2002 11:51    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 Thomas Rolf 10 Unities + Antwort hilfreich

Hallo zusammen,

so sollte es auch funken:
-------------------------- Cut

Option Explicit
Dim swApp As Object
Dim draw As Object
Dim selmgr As Object
Dim selobj As Object
Dim templmode As Boolean
Dim typx As Long

Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set draw = swApp.ActiveDoc
typx = draw.GetType
If (typx <> 3) Then Exit Sub
templmode = draw.GetEditSheet
If (templmode) Then draw.EditTemplate
draw.ClearSelection
draw.SelectByID "", "SHEET", 0.001, 0.001, 0
Set selmgr = draw.SelectionManager
Set selobj = selmgr.GetSelectedObject(1)
If (Not selobj Is Nothing) Then
MsgBox selobj.GetName
Else
MsgBox "Fehler Templatename"
End If
draw.EditSheet
End Sub
------Cut

Viel Spaß,
Dieter Bruns

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

Thomas Rolf
Mitglied
Dipl.-Ing. / CAD-Admin


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

Beiträge: 189
Registriert: 02.07.2001

SWX 2015 SP4.0

erstellt am: 12. Sep. 2002 17: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

Hallo Martin und Dieter:

Funktioniert beides spitzenmäßig.

'habt mich wieder 'rausg'rissen.

Danke; Danke

Gruß
Thomas

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)2024 CAD.de | Impressum | Datenschutz