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ł 406 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() |
|
|