Bereitstellen eines Wasserzeichens in der Grundkarte

Hallo

 

Ich arbeite in SOLIDWORKS 2011 und habe bereits ein Makro, das mir meinen aktiven Plan, den Plan meines aktiven Teils oder alle Pläne der aktiven Baugruppe an der richtigen Stelle speichert.

Dieses Makro verwendet einfach die "Speichern unter"-Funktion im PDF-Format von solidworks (keine virtuellen Drucker wie Bullzip oder PDFcréator!)


Mein Problem ist, dass ich einen Text in meiner Grundkarte mit der Aufschrift "FOR CONSULT" anzeigen lassen möchte, wenn ich dies beim Starten meines PDF-Makros möchte.

 

Zuerst dachte ich daran, einen abgewinkelten Block mit der richtigen Schriftart und der richtigen Größe zu erstellen, und ich habe versucht, ihn per Makro zu meinem Hintergrund hinzuzufügen. Das Problem ist, dass, da es mehrere Planformate zu unterschiedlichen Formaten gibt, die eingefügte Blockposition sowie die Größe nicht am einfachsten zu handhaben ist.

Ich dachte dann daran, einfach eine Notiz auf meiner Grundkarte zu machen (bereits gut positioniert und in der richtigen Größe) und sie einfach anzeigen und dann ausblenden zu lassen, wenn ich mich entscheide, dass diese Version des Plans nur zur Konsultation zur Verfügung steht.

Bei einer Aufnahme schaffe ich es, mein Textfeld auszublenden:
 

Sub main()

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Plan détail1988@Fond Objekt", "HINWEIS", 0.2884716463644, 0.1501347778362, 0, Falsch, 0, Nichts, 0)

Part.HideDimension


Ende Sub

Es funktioniert gut und dieser Code gibt mir gleichzeitig die ID meines Textfelds. Dies ermöglicht es mir, ein weiteres Stück Code zu schreiben, um meine Notiz erneut auszuwählen.
Auf der anderen Seite kann ich, egal wie sehr ich suche, die Funktion nicht finden, die es mir ermöglicht, diese Notiz erneut anzuzeigen!!!

Die Auswahl der Notiz führt mich zu einer weiteren Frage:

Wie steuere ich die ID eines Objekts? denn abhängig von meinen unterschiedlichen Baselines wird die ID meiner Notiz wahrscheinlich nicht immer gleich sein (Objekt détail1988@Fond des Plans" in meinem obigen Beispiel)

Entschuldigung, ich stelle möglicherweise grundlegende Fragen in VBA SolidWorks, aber ich mache sie erst seit sehr kurzer Zeit.

Vielen Dank im Voraus!

Yves

 

Hallo

Am einfachsten ist es, ihm bei der Erstellung einen Namen zu geben.

Es ist also viel einfacher, es später zu finden, mit dieser Anleitung:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Note_By_Name_Example_VB.htm

Bearbeiten: eine Seite, die zusätzlich interessant sein könnte:

http://help.solidworks.com/2013/English/api/sldworksapi/Place_Note_Behind_Drawing_Sheet_Example_VB.htm

 

 

Ich mache das oft, um an den Kunden zu senden.

 

Ich habe einen speziellen Hintergrund mit einer sehr hellen Schicht erstellt, auf dem ich den Namen des Unternehmens in großen Buchstaben geschrieben habe.

 

Anschließend wähle ich während einer Zeichnung entweder direkt die Grundkarte aus, in der sich diese Filligrane befindet, oder ich gehe durch ein Makro, das meinen aktuellen Hintergrund ändert, um die Filligrane zu platzieren.

 

Bild anzeigen


filligrane.png
1 „Gefällt mir“

Sehen Sie sich diesen Videolink an

https://www.youtube.com/watch?v=R87mZoshW_Y

@+

Vielen Dank für Ihre Antworten

 

.PL: Ich kann keine Makros für Ihre Links verwenden

 

Bart: Es stimmt, dass es eine Idee ist, die auch ein anderes Problem für mich beseitigen kann!
 

Ich werde es so versuchen.

 

Yves

 

Damit spare ich viel Zeit.

 

Vor allem, wenn ich aus wer weiß welchem Grund meinen Hintergrund wechsle.

Das alte MEP mit den neuen Grundkarten zu öffnen, ist magisch!^^

Sie müssen nicht einmal Code in VBA eingeben. Sie müssen nur die Manipulation von Hand durchführen, indem Sie auf Save Marco klicken und dann am Ende der Manipulation aufhören.

Fügen Sie dann die Tastenkombinationen ein und leiten Sie guinguamp^^

(Benoit, ist es besser so?) =)


rectif.png
1 „Gefällt mir“

 

Bart: Ich habe zu schnell geantwortet, ich kann die Technik des Hintergrundänderns nicht verwenden, weil ich Elemente in meinem Hintergrundplan hinzufüge, wie zum Beispiel die Index-Evolutionstabelle, und alle diese Elemente würden jedes Mal springen.

GT22: Vielen Dank für dieses Video. Aber mein Problem ist immer noch dasselbe. Wie zeige ich meine Notiz an, die in meiner Grundkarte ausgeblendet ist?

 

@yves: Warum können Sie Makros nicht verwenden? Natürlich muss der Code angepasst werden.

Darüber hinaus ist der Code, den ich gegeben habe, um eine Notiz nach Namen zu finden, Sie müssen sie bei der Erstellung benennen!

Ich würde gerne das Makro verwenden, aber wie nennen Sie Ihre Notiz, wenn sie erstellt wird?

 

@Lucas: Das Krankenhaus, das sich einen Dreck um Wohltätigkeit schert...^^

 

@yves: Für Ihr Makro sollten logischerweise Ihre Notizen und Tabellen nicht angesprungen werden, sie sind auf Ihrem Blatt verankert.

2 „Gefällt mir“

.PL : Ich erstelle es manuell mit dem Werkzeug "Bewertung" auf der Registerkarte "Bewertung"

Das fragliche Makro meldet mir einen Fehler in der "Schleife", indem es mir mitteilt 

          Fehler beim Kompilieren:
          Schleife ohne C

Bart: Meine Elemente springen jedes Mal, wenn ich die Grundebene ändere, weil ich sie in Bezug auf die Elemente meiner Grundkarte einschränke

Warum wurden alle meine themenfremden Antworten gelöscht?

1 „Gefällt mir“

Ich weiß es nicht, aber das alles beantwortet nicht meine Frage, ob ich eine Notiz benannt habe, als sie erstellt wurde, oder ob ich ihren Namen nachträglich geändert habe. Um dann eine versteckte Notiz erscheinen zu lassen...

 

Vielen Dank

 

Yves

1 „Gefällt mir“

Yves: Könntest du ein Makro erstellen, indem du beim Erstellen der Notiz lernst, damit ich bitte den Code sehen kann?

Hallo .PL

 

Hier ist die Aufzeichnung, wie die Notiz erstellt wurde:

 

Sub main()

swApp = _ setzen
Anwendung.SldWorks

Set Part = swApp.ActiveDoc

myNote als Objekt dimmen
myAnnotation als Objekt dimmen
MyTextFormat als Objekt dimmen
Set myNote = Part.InsertNote("PONR CONSULTASION")

Wenn nicht, ist myNote nichts, dann
   myNote.Winkel = 0
   boolstatus = myNote.SetBalloon(0, 0)
   Setze myAnnotation = myNote.GetAnnotation()
   Wenn nicht myAnnotation nichts ist, dann
      longstatus = myAnnotation.SetLeader3(swLeaderStyle_e.swNO_LEADER, 0, Wahr, Falsch, Falsch, Wahr)
      boolstatus = myAnnotation.SetPosition(0.1631152186896, 0.1620775367073, 0)
      boolstatus = myAnnotation.SetTextFormat(0, Wahr, myTextFormat)
   Ende, wenn
Ende, wenn

Part.ClearSelection2 Wahr
Part.WindowRedraw

Ende Sub
 

Zur besseren Lesbarkeit hänge ich die Textdatei an

 

Yves

 


macro_creation_note.txt

Anstatt die Notiz von Hand zu erstellen, wird es möglich sein, sie jedes Mal mit einem Makro zu erstellen, ist das ein Problem?

Ich habe nicht verstanden, dass die Notiz zu Beginn manuell erstellt wurde.

Edit: Wenn nicht, ist der Text immer noch genau "ZUR KONSULTATION"?

Tatsächlich hatte ich, wie ich in meinem ersten Beitrag sagte, tatsächlich daran gedacht , es zu erstellen und dann jedes Mal zu löschen. Das Problem ist, dass ich die 4 möglichen Hintergrundformate (A3, A2, A1 und  A0) habe, was bedeutet, dass sich die Größe der Notiz jedes Mal anpassen muss, ebenso wie ihre Position.

Deshalb gefiel mir die Idee, es bereits erstellt, aber versteckt zu haben. 
Ich brauchte nur die Möglichkeit, die ID dieser Notiz aufzuzwingen (damit sie in allen meinen Grundkarten alle die gleiche haben) und den Code, um sie anzuzeigen (da ich bereits die Codezeile habe, um sie auszublenden)

Hallo 

 

Es gibt also keine Codezeile, um eine Notiz anzuzeigen, die versteckt ist? Wann gibt es einen, um eine sichtbare Notiz zu verstecken?

 

Vielen Dank

 

Yves

Hallo, ich bestätige, dass wir viel mehr Zeit sparen, da wir uns nicht mehr die Mühe machen müssen, die Codes in Vba einzugeben. Das ist sehr praktisch.