SolidWorks >> Makra >> Uzupełnianie właściwości części
Autor Wypowiedź
Konstruktor
2012-12-19, 17:35
Pomógł 0 raz(y).
Witam,

wiem, że jest obszerna baza makr na różny temat, które sobie można darmowo pobrać jednak nie wiem jak znaleźć o ile istnieje takie makro jak bym potrzebował.

A potrzebowałbym makro, które podciąga nazwę pliku do właściwości. Przykład: zapisuję sobie nowo utworzoną część z nazwą 143.12.01.1 Wałek 1 i po uruchomieniu makra liczba w nazie (143.12.01.1) jest wklejana we właściwościach części jako PartNo a 'Wałek 1' jako Description.

Mam tak w pracy, na pewno wszyscy też tak mają. Ja chciałbym sobie zrobić taką uproszczoną wersję, któraby mi podciągała te dwa elementy do właściwości. Ewentualnie jak takie coś napisać, ale obawiam się, że do tego już są potrzebne większe umiejętności na polu programowania, których raczej nie posidam.



Pozdrawiam!
 
.
2012-12-19, 22:38
Pomógł 52 raz(y).
Da się i nawet nie jest to takie skomplikowane. Ważne żeby numer od nazwy był konkretnie odseparowany (ja stosuję spację i oczywiście w numerze nie może być spacji).
Oto kod w VBA

Sub Main()
Dim NazwaPliku As String
Dim Spacja As Long
Dim Dlugosc As Long
Dim Description As String
Dim PartNo As String
Dim Wpis As Long
Dim CusPropMgr As SldWorks.CustomPropertyManager

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
If swModel Is Nothing Then
MsgBox "Brak otwartych dokumentów", swMbInformation
End
End If
Set CusPropMgr = swModel.Extension.CustomPropertyManager("")
NazwaPliku = swModel.GetTitle()
Dlugosc = Len(NazwaPliku)
Spacja = InStr(NazwaPliku, " ")
PartNo = "(" + Left(NazwaPliku, Spacja - 1) + ")"
Description = Mid(NazwaPliku, Spacja + 1)

Wpis = CusPropMgr.Delete("Description")
Wpis = CusPropMgr.Delete("PartNo")
Wpis = CusPropMgr.Add2("Description", swCustomInfoText, Description)
Wpis = CusPropMgr.Add2("PartNo", swCustomInfoText, PartNo)
End Sub

Pozdrawiam
 
Wykonam każde makro w SolidWorks
2012-12-20, 15:51
Pomógł 12 raz(y).
http://www.adksolid.com/index.php/pl/properties - akurat makro properties jest płatne.

pozdrawiam

Michał Karpiuk
 
2013-07-04, 09:34
Pomógł 0 raz(y).
Dzięki za pomoc ale jak uruchomić i wstawić to makro?
 
.
2013-07-04, 10:40
Pomógł 52 raz(y).
Menu>Makro>Nowe makro Wybrać lokalizację i nazwę oraz typ SWP
Wkleić zawartość podaną w poprzednim poście ( bez linii: main () , End Sub ) pod linią Set swApp = Application.SldWorks , zapisać i gotowe.

Potem:
Menu>Makro>Uruchom i wybrać to makro.
Jeśli makro ma być używane często to lepiej jest zrobić sobie przycisk w pasku narzędzi ale o tym to poczytaj w Helpie.
Pozdrawiam
 
2013-07-04, 11:11
Pomógł 0 raz(y).
Już działa super.
 
.
2014-02-24, 23:31
Pomógł 0 raz(y).
Witam,

mam pytanko,
do tej pory używałem makro w ten sposób:
Jak już miałem narysowany model to zapisywałem go z nazwą np. RN-123.01 Wał i uruchamiałem makro co uzupełniło właściwości (makro mam przypisane do skrótu klawiszowego więc dużo klikanie to nie zajmuje).

Czy jest jakiś sposób aby podczas uruchamiania szablonu części i zapisania go w odpowiedniej nazwie właściwości same się uzupełniały.
Chodzi mi o to aby nie musiał bym za każdym razem przy nowej części uruchamiać MAKRO?

Z góry dziękuje i pozdrawiam,
Robert
 
.
2014-02-25, 11:46
Pomógł 52 raz(y).
Jak zapisujesz część to musisz gdzieś podać nazwę pliku. Tu pewnie wpisujesz w 'zapisz' lub 'zapisz jako' .
Można więc rozbudować makro tak, żeby wpisywać te dane do makra, które potem zapisze plik z odpowiednią nazwą i wprowadzi dane do dostosowanych właściwości. Wtedy robi się to tylko raz i już jest jakiś zysk.
 
.
2014-03-27, 23:28
Pomógł 0 raz(y).
Witam,


Postanowiłem powoli rozwinąć makro do uzupełniania właściwości.

No i zatrzymałem się już na początku.

Chciał bym aby automatycznie czytało Materiał i Masę.

Dodawanie nazwy właściwości się udało (na zasadzie kopiuj wklej ) ale nie wiem co wpisać w kolumnie " Wartość..."

Wpisuje coś takiego

Sub main()

Set swApp = Application.SldWorks

Dim NazwaPliku As String

Dim Spacja As Long

Dim Dlugosc As Long

Dim Description As String

Dim PartNo As String

Dim NormaKatalog As String

Dim Wpis As Long

Dim Material As String

Dim CusPropMgr As SldWorks.CustomPropertyManager



Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

If swModel Is Nothing Then

MsgBox "Brak otwartych dokumentów", swMbInformation

End

End If

Set CusPropMgr = swModel.Extension.CustomPropertyManager("")

NazwaPliku = swModel.GetTitle()

Dlugosc = Len(NazwaPliku)

Spacja = InStr(NazwaPliku, " ")

PartNo = "" + Left(NazwaPliku, Spacja - 1) + ""

Description = Mid(NazwaPliku, Spacja + 1)


Wpis = CusPropMgr.Delete("Description")

Wpis = CusPropMgr.Delete("PartNo")

Wpis = CusPropMgr.Delete("Material")

Wpis = CusPropMgr.Add2("Description", swCustomInfoText, Description)

Wpis = CusPropMgr.Add2("PartNo", swCustomInfoText, PartNo)

Wpis = CusPropMgr.Add2("NormaKatalog", swCustomInfoText, "www..pl")

Wpis = CusPropMgr.Add2("Material", swCustomInfoText, "SW-Material@RN-122.01 Rura fi 40 x 4 - 500.SLDPRT")

End Sub




Tak wyglądają właściwości:





A tak chciał bym aby wyglądały:



Czy ktoś z kolegów poradził by czymś ?
 
.
2014-03-28, 07:46
Pomógł 52 raz(y).
Wartość właściwości materiału musi być w cudzysłowiu.
 
.
2014-03-28, 09:51
Pomógł 0 raz(y).
Witam

1)
Wpisywałem:

""SW-Material@RN-122.01 Rura fi 40 x 4 -500.SLDPRT"")

i pokazywał mi błąd, ale nie pamiętam co tam pisało, a teraz tego nie potrafię sprawdzić bo jestem w pracy.

2)
Jeszcze jedna sprawa, w ten sposób co mam zdefiniowane właściwości to zawsze będzie mi pobierało gatunek materiału który jest ustawiony dla tej części ( na sztywno).
A co wpisać aby pobierał automatycznie z części której dotyczą właściwości.
Czy może to być coś takiego, czy inaczej trzeba sformułować ?

"SW-Material")
 
.
2014-03-28, 12:00
Pomógł 52 raz(y).
Musisz w makro wpisać linie:

NazwaPliku = NazwaPliku+".SLDPRT"
Wpis = CusPropMgr.Add2("Material", swCustomInfoText , chr(34)+ "SW-Material@"+NazwaPliku+chr(34))
 
.
2014-03-28, 19:47
Pomógł 0 raz(y).
Super, działa

A do masy zrobiłem analogicznie i również działa.

Dziękuje.
 
2022-05-05, 10:21
Pomógł 0 raz(y).
Czemu w Description zaczytuje mi nazwę z rozszerzeniem? Jak usunąc .sldprt?
 
.
2022-05-06, 16:06
Pomógł 52 raz(y).
Description = Left(Description, Len(Description) - 7)
 

PSWUG

Strefa Resellera

Publikuj

Społeczność

Ankieta

Linki

RSS

BOT