Een watermerk weergeven in de basiskaart

Hallo

 

Ik werk in solidworks 2011, ik heb al een macro die me mijn actieve plan, het plan van mijn actieve deel of alle plannen van de actieve assemblage opslaat, allemaal op de juiste locatie.

Deze macro maakt gewoon gebruik van de "opslaan als"-functie in PDF-formaat van solidworks (geen virtuele printers zoals Bullzip of PDFcréator!)


Mijn probleem is dat ik graag een tekst in mijn basiskaart wil laten verschijnen met "VOOR CONSULTATIE" geschreven als ik dat wil bij het starten van mijn PDF-macro.

 

Allereerst dacht ik eraan om een schuin blok te maken met het juiste lettertype, de juiste grootte, en ik probeerde het met een macro aan mijn achtergrond toe te voegen. Het probleem is dat, aangezien er verschillende planformaten zijn voor verschillende formaten, zowel de ingevoegde blokpositie als de grootte niet de gemakkelijkste zijn om te beheren.

Ik dacht er toen aan om gewoon een notitie te maken op mijn basiskaart (al goed gepositioneerd en op het juiste formaat) en deze gewoon weer te geven en vervolgens te verbergen bij het uitvoeren van mijn macro als ik besluit dat deze versie van het plan alleen voor consultatie zal zijn.

Met een opname lukt het me om mijn tekstvak te verbergen:
 

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Plan détail1988@Fond object", "NOTE", 0.2884716463644, 0.1501347778362, 0, Onwaar, 0, Niets, 0)

Deel.HideDimension


Einde Sub

Het werkt goed en dit stukje code geeft me tegelijkertijd de ID van mijn tekstvak. Dit stelt me in staat om een ander stuk code te schrijven om mijn notitie opnieuw te selecteren.
Aan de andere kant, hoe hard ik ook zoek, ik kan de functie niet vinden waarmee ik deze notitie opnieuw kan weergeven!!!

De selectie van de notitie leidt me tot een andere vraag:

Hoe beheer ik de ID van een object? omdat, afhankelijk van mijn verschillende baselines, de ID van mijn notitie waarschijnlijk niet altijd hetzelfde zal zijn (Object of détail1988@Fond of plan" in mijn voorbeeld hierboven)

Sorry, ik stel misschien basisvragen in VBA SolidWorks, maar ik doe ze nog maar heel kort.

Bij voorbaat dank!

Yves

 

Hallo

De eenvoudigste manier is om het een naam te geven wanneer het wordt gemaakt.

Het is dus veel gemakkelijker om het later te vinden, met deze instructie:

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

Edit: een pagina die interessant zou kunnen zijn in aanvulling:

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

 

 

Dit doe ik vaak om naar de klant te sturen.

 

Ik heb een speciale achtergrond gemaakt met een heel licht laagje erop waar ik in grote letters de naam van het bedrijf op heb geschreven.

 

Daarna, tijdens een tekening, kies ik ofwel direct de basiskaart waar deze filligrane zich bevindt, ofwel doorloop ik een macro die mijn huidige achtergrond verandert om de filligrane te plaatsen.

 

Afbeelding weergeven


filligrane.png
1 like

Zie deze videolink

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

@+

Dank u voor uw antwoorden

 

.PL: Ik kan geen macro's gebruiken op uw links

 

Bart: Het is waar dat het een idee is dat ook een ander probleem voor mij kan wegnemen!
 

Ik zal het zo proberen.

 

Yves

 

Daar bespaar ik een hoop tijd mee.

 

Vooral als ik om wie weet welke reden mijn achtergrond verander.

Om de oude MEP te openen met de nieuwe basemaps, het is magie!^^

U hoeft niet eens code in vba in te voeren. Je hoeft alleen maar de manipulatie met de hand uit te voeren door op save marco te klikken en dan aan het einde van de manipulatie te stoppen.

Plaats vervolgens de sneltoetsen en stuur guinguamp door ^^

(Benoit, is het beter zo?) =)


rectif.png
1 like

 

Bart: Ik heb te snel geantwoord, ik kan de techniek van het veranderen van de achtergrond niet gebruiken omdat ik elementen aan mijn achtergrondplan toevoeg, zoals bijvoorbeeld de indexevolutietabel , en al deze elementen zouden elke keer verspringen.

GT22: Bedankt voor deze video. Maar mijn probleem is nog steeds hetzelfde. Hoe geef ik mijn notitie weer die verborgen is in mijn basiskaart?

 

@yves: Waarom kun je geen macro gebruiken? Natuurlijk moet de code worden aangepast.

Bovendien is de code die ik heb gegeven om een notitie op naam te vinden, je moet deze bij de creatie een naam geven!

Ik wil graag de macro gebruiken, maar hoe noem je je notitie als deze is gemaakt?

 

@Lucas: Het ziekenhuis dat geen moer geeft om liefdadigheid...^^

 

@yves: Voor uw macro moeten uw notities en tabellen logischerwijs niet worden gesprongen, ze zijn verankerd op uw blad.

2 likes

.PL : Ik maak het handmatig aan met de tool "beoordelen" in het tabblad "beoordeling"

De macro in kwestie vertelt me een fout op "loop" door me te vertellen 

          Compilatie fout:
          Lus zonder C

Bart: Mijn elementen verspringen elke keer als ik het basisvlak verander, omdat ik ze beperk ten opzichte van de elementen van mijn basiskaart

Waarom zijn al mijn off-topic antwoorden verwijderd?

1 like

Ik weet het niet, maar dit alles geeft geen antwoord op mijn vraag om een notitie een naam te geven wanneer deze is gemaakt of om de naam daarna te veranderen. Om dan een verborgen notitie te laten verschijnen...

 

Bedankt

 

Yves

1 like

Yves: Zou je een macro kunnen maken door te leren bij het maken van de notitie, zodat ik de code kan zien?

Hallo .PL

 

Hier is het overzicht van hoe de notitie is gemaakt:

 

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc

MyNote dimmen als object
MyAnnotation dimmen als object
myTextFormat dimmen als object
Set myNote = Part.InsertNote("PONR CONSULTASION")

Zo niet, dan is myNote niets
   myNote.Hoek = 0
   boolstatus = myNote.SetBalloon(0, 0)
   Stel myAnnotation in = myNote.GetAnnotation()
   Zo niet, dan is myAnnotation niets
      longstatus = myAnnotation.SetLeader3(swLeaderStyle_e.swNO_LEADER, 0, True, False, False, True)
      boolstatus = myAnnotation.SetPosition(0.1631152186896, 0.1620775367073, 0)
      boolstatus = myAnnotation.SetTextFormat(0, True, myTextFormat)
   Einde als
Einde als

Deel.ClearSelection2 Waar
Deel.VensterHertekenen

Einde Sub
 

Voor meer leesbaarheid voeg ik het tekstbestand toe

 

Yves

 


macro_creation_note.txt

In plaats van de notitie met de hand te maken, zal het zelfs mogelijk zijn om deze elke keer met een macro te maken, is dit een probleem?

Ik begreep niet dat de notitie in het begin handmatig was gemaakt .

Edit: zo niet, is de tekst dan nog steeds "TER CONSULTATIE" precies ?

In feite, zoals ik al zei in mijn eerste bericht, had ik er eigenlijk aan gedacht om het te maken en vervolgens elke keer te verwijderen. Het probleem is dat ik de 4 mogelijke achtergrondformaten heb (A3, A2, A1 en  A0), wat betekent dat de grootte van de notitie elke keer moet worden aangepast, evenals de positie.

Daarom vond ik het een leuk idee dat ik het al had gemaakt, maar verborgen. 
Ik had alleen de mogelijkheid nodig om de ID van deze notitie op te leggen (zodat ze in al mijn basiskaarten allemaal dezelfde hebben) en de code om het weer te geven (aangezien ik al de regel code heb om het te verbergen)

Hallo 

 

Dus er is geen regel code om een verborgen notitie weer te geven? Als er een is om een zichtbare notitie te verbergen?

 

Bedankt

 

Yves

Hallo, ik bevestig dat we veel meer tijd besparen omdat we niet meer de moeite hoeven te nemen om de codes in Vba in te voeren. Het is erg handig.