Makro — editace poznamek
4. 2. 2014 v 1:53
Makro — editace poznamek #52333
Ales
Účastník
265 příspěvků
Nevyzná se tu prosím někdo v makrech? Stáhl jsem si z netu jakési makro a pokusil se ho upravit tak, aby ve všech poznámek ve výkresu zaměnilo text „Nazev“ za „Name“. Ale nejenom, že to nic nezamění, ještě mi to vymění proměnnou za její hodnotu (například z poznámky ‚$PRPMODEL:“Nazev“‚ to udělá ‚Hřídel‘) a ještě navrch to vytvoří několik prázdných poznámek rozsypaných ve výkresu. Co s tím?
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swNote As SldWorks.Note
Dim sNoteText As String
Dim nTextCount As Long
Dim i As Long
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swView = swDraw.GetFirstView
While Not swView Is Nothing
Set swNote = swView.GetFirstNote
While Not swNote Is Nothing
sNoteText = swNote.GetText
sNoteText = Replace(sNoteText, "Nazev", "Name", 1, -1, vbTextCompare)
swNote.SetText sNoteText
Set swNote = swNote.GetNext
Wend
Set swView = swView.GetNextView
Wend
End Sub
4. 2. 2014 v 9:53
Re:Re: Makro — editace poznamek #55484
jucas
Člen
12 příspěvků
Metody GetText / SetText pracují s výsledným vyhodnoceným textem. Pro přístup k definičnímu řetězci je nutno použít metodu PropertyLinkedText. Pokud se mají nahradit jen řetězce v adrese properties nebo běžný text, je nutno to ošetřit v kódu zvlášť.
4. 2. 2014 v 17:08
Re:Re: Makro — editace poznamek #55485
Ales
Účastník
265 příspěvků
Díky, jdu to zkusit 🙂
5. 2. 2014 v 18:16
Re:Re: Makro — editace poznamek #55486
Ales
Účastník
265 příspěvků
Funguje to! Dík 🙂 Některé příkazy sice moc nechápu, ale to asi není nutné 🙂
Takhle to nakonec vypadá, makro zamění všechny výskyty „Nazev“ za „Name“ ve všech poznámkách.
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swNote As SldWorks.Note
Dim sNoteText As String
Dim nTextCount As Long
Dim i As Long
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swView = swDraw.GetFirstView
While Not swView Is Nothing
Set swNote = swView.GetFirstNote
While Not swNote Is Nothing
sNoteText = swNote.PropertyLinkedText
sNoteText = Replace(sNoteText, "Nazev", "Name")
swNote.PropertyLinkedText = sNoteText
Set swNote = swNote.GetNext
Wend
Set swView = swView.GetNextView
Wend
End Sub
Odpověď na téma
Nejnovější články
-
Jak zefektivnit procesy v podniku
-
Podpora vzdělávání v roce 2023
-
Nálepky v SOLIDWORKSu #4: Model krabice
-
Nálepky v SOLIDWORKSu #3: Model krabice
-
Nálepky v SOLIDWORKSu #2: Model krabice
-
Nálepky v SOLIDWORKSu #1: Úvod
-
Představujeme program konference 3DEXPERIENCE World 2023
-
SOLIDWORKS 2023: Přepisování v kusovnících
-
Hlasujte pro Top Ten vylepšení SOLIDWORKSu 2024
-
SOLIDWORKS 2023: Co je nového v příkazu Řez
Přidávat odpovědi k tématu mohou pouze přihlášení uživatelé.
Chcete-li napsat odpověď, přihlaste se nebo se zaregistrujte.