SolidWorks >> Rysunki >> zawartość odnośnika na rysunku złożeniowym.
Autor Wypowiedź
2015-03-25, 10:56
Pomógł 0 raz(y).
witam
potrzebuje wyswietlac w odnośnikach na rysunku złożeniowym jedynie 3 ostatnie cyfr z nazwy części.Tzn.:
nazwy części mam: a200b300-01-001, a200b300-01-002, a200b300-01-003 a potrzebuje wyświetlać w odnośniku tylko 001, 002, 003. Czy da się to zrobić?
 
SOLIDWORKS 2018
2015-03-25, 11:30
Pomógł 43 raz(y).
Tak na szybko to najlepiej dodać nową właściwośc jako krótszą nazwę (trzeba z palucha wpisać, chociaz może da się to załatwić jakąś funkcją, żeby klika ostatnich liter zczytywał).



 
2015-03-25, 11:44
Pomógł 0 raz(y).
Dzięki
Jednak chciałbym uniknać wpisywania z palucha.
 
CSWP, CSWE, CSWI *** solid-blog.pl ***
2015-03-25, 13:27
Pomógł 405 raz(y).
Jeżeli jest to wielkość liczbowa to może dokładnością wyświetlania (ilością miejsc po przecinku) można to rozwiązać.
 
2015-03-25, 14:23
Pomógł 0 raz(y).
A gdzie to sie ustawia?
 
SOLIDWORKS 2018
2015-03-25, 15:16
Pomógł 43 raz(y).
Zapomniałem, że można od razu tekst wpisać (bez kombinowania z właściwościami). Ale to Twojego problemu nie rozwiązuje jak mniemam.

 
2015-03-25, 15:38
Pomógł 0 raz(y).
no nie bardzo.
 
.
2015-03-25, 17:38
Pomógł 52 raz(y).
Można makrem, np takim w VBA :

Module: Makro1

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Dim Karta As SldWorks.CustomPropertyManager

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

Dim Wpis As Long

Dim Numer As String

Dim SubNum As String

Dim valOut As String



Karta.Get2 "NrRys", valOut, Numer

SubNum = Right(Numer, 3)

Wpis = Karta.Delete("SubNum")

Wpis = Karta.Add2("SubNum", swCustomInfoText, SubNum)

End Sub

Makro tworzy właściwość SubNum , która jest 3 znakami od prawej z właściwości NumRys.
Do odnośnika w rysunku trzeba przypisać dostosowaną włąściwość SubNum.
Jeśli zdefiniujesz równanie w modelu (najlepiej w szablonie części) to przy przebudowie modelu nastąpi automatyczne utworzenie tej właściwości.
Równanie przykładowo takie (dostosowane do powyższego makra)
"Autorun"= Application.SldWorks.RunMacro("c:/makra/SubNum.swp","Makro1","main")

Należy makro nazwać: c:/makra/SubNum.swp albo inaczej i dostosować równanie.
Powodzenia.

PS.
Zamiast / w równaniu muszą być BackSlash ale forum nie przyjnuje go w treści posta :( chyba, że czegoś nie wiem.
 
2015-03-26, 10:13
Pomógł 0 raz(y).
WIELKIE DZIEKI.
Próbuje i coś mi się nie zgadza w wierszu:

Set Karta = swModel.Extension.CustomPropertyManager("")
 
.
2015-03-26, 13:28
Pomógł 52 raz(y).
Jaka wersja SW i jaki komunikat się pojawia ?
 
2015-03-26, 13:58
Pomógł 0 raz(y).
chyba macro jest OK, ale nie chce się odpalic. mam SW 2014 sp5. nie pojawia się żaden komunikat.
 
.
2015-03-26, 14:12
Pomógł 52 raz(y).
Drobna poprawka. Makro działa mi w każdej werscji SW jaką posiadam (SW2010 i SW 2015) natomiast nie mogę sobie poradzić z wpisaniem równania w sw2015. To co porobili z edytorem równań to poprostu zgroza. Jestem kumaty a nie potrafę wpisać tego równania i poradzić sobie z głupkowatymi komunikatami jakie się pojawiają !!!
Nie wiem, może to kolejny błąd tej wersji i SP 2.1 . A może wywalili tą funkcjonalność tak jak kilka innych przy okazji zmiany wersji VB z 6 na 7

Dla sprawdzenia czy makro działa wpisz przedostatnią linię :
Msgbox "Makro1"
Powinno się pojawić okienko z tym komunikatem.
 
2015-03-26, 14:43
Pomógł 0 raz(y).
teraz wyskakuj okno. ale macro nie działa. ciągle wpisuje cała nazwe pliku.
 
.
2015-03-26, 15:09
Pomógł 52 raz(y).
Jeśli okno wyskakyje to makro działa. Problem polega na tym, że makro pobiera dostosowaną właściwość NrRys z karty 'Dostosowane' a nie ze specyficznej dla konfiguracji.
Jeśli numer ma być pobierany z karty dla konfiguracji to trzeba nieco zmienić makro.

zamiast:
Set Karta = swModel.Extension.CustomPropertyManager("")

musi być:
Dim NazwaKonfiguracji as String
NazwaKonfiguracji = tu należy wpisać nazwą konfiguracji w cudzysłowiu
Set Karta = swModel.Extension.CustomPropertyManager(NazwaKonfiguracji)
 
2015-03-26, 16:12
Pomógł 0 raz(y).
wyskakuje cos takiego :

 
.
2015-03-26, 19:10
Pomógł 52 raz(y).
Problem wynika z błędnej nazwy konfiguracji, jeśli podamy nieistniejącą nazwę to właśnie taki błąd się pojawia.
Przerobiłem trocę to makro tak, że pobiera nazwę bieżącej konfiguracji. Dodatkowo kontroluje rodzaj dokumentu, bo z rysunkiem to makro nie może współpracować.

Sub main()

Dim swApp As SldWorks.SldWorks

Dim swModel As SldWorks.ModelDoc2

Dim swConfig As SldWorks.Configuration

Dim NazwaKonfiguracji As String

Dim Karta As SldWorks.CustomPropertyManager

Dim Wpis As Long

Dim Numer As String

Dim SubNum As String

Dim valOut As String



Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

If (swModel.GetType = swDocPART) Or (swModel.GetType = swDocASSEMBLY) Then

Set swConfig = swModel.GetActiveConfiguration

NazwaKonfiguracji = swConfig.Name



Set Karta = swModel.Extension.CustomPropertyManager(NazwaKonfiguracji)



Karta.Get2 "NrRys", valOut, Numer

SubNum = Right(Numer, 3)

Wpis = Karta.Delete("SubNum")

Wpis = Karta.Add2("SubNum", swCustomInfoText, SubNum)

Else

MsgBox "Dokument nie jest częścią ani złożeniem.", vbExclamation, "Makro 1"

End If

End Sub

To MUSI działać, sprawdziłem.
 
2015-03-27, 10:27
Pomógł 0 raz(y).
Makro działa dle nie wyswietlaja sie w oknie "wartości" trzy koncowe cyfry z nazwy pliku.

 
.
2015-03-27, 11:00
Pomógł 52 raz(y).
To normalne, bo na karcie 'Specyficzne dla konfiguracji' w konfiguracji 'Default' nie ma właściwości 'NrRys', z której jest brana wartość.

PS.
Jeśli nie wpisujesz nazwy części do dostosowanych właściwości tylko chcesz ją zawrzeć w nazwie pliku to zamiast linii:
Karta.Get2 "NrRys", valOut, Numer
wpisz:
Numer = swModel.GetTitle()
 

PSWUG

Strefa Resellera

Publikuj

Społeczność

Ankieta

Linki

RSS

BOT