Grupowanie tekstu "znajdź/zamień przez" w folderze planu

Witam wszystkich,

Mam folder z dużą ilością rysunków i chciałbym zmienić część tekstu (np. M6x30 na M6x30 - 8.8) w notatkach.

Chciałem wiedzieć, czy podobnie jak w programie Word można wykonać polecenie "znajdź/zamień według" w folderze z rysunkami?

Makro, Mycadtool, ...

(Szukałem na forum ale bez powodzenia)

Z góry dziękuję

Witam

Nie znam żadnych istniejących narzędzi do tego narzędzia, ale na pewno jest to możliwe za pomocą programu, który powinien automatycznie z listy planów:

- Otwórz plan SLDDRW.

- Przeanalizuj wszystkie notatki w tym planie.

- Zmodyfikuj ocenę, jeśli = xxxxx.

- Zapisz ten plan.

- Przejdź do następnego planu.

-itd...

W załączeniu znajduje się mały przykład programu, który ma zostać uruchomiony po uruchomieniu oprogramowania i załadowaniu planu SLDDRW. Ten program pozwala wyszukać wszystkie nuty i wszystkie wymiary obecne na płaszczyźnie (choć nie wszystkie tolerancje).

Pozdrowienia


test-search.zip
2 polubienia

Dziękuję d.roger!

Spojrzałem na twój plik wykonywalny.

Działa dobrze do wymieniania wszystkiego.

Dwie uwagi:

  • Szkoda, że nie możemy przewinąć, niektóre informacje były niedostępne na dole okna wyników
  • Nie możemy zaznaczyć tekstu

Ale specjalnie dla mojej aplikacji musiałbym otwierać wszystkie plany (200) jeden po drugim. Równie dobrze możesz to zrobić ręcznie za pomocą SW / tools / Search / modify.

Wolałbym coś bardziej automatycznego, ale nie sądzę, żeby to istniało.

Będę musiał dostać się do VB.

Miłego dnia

Rejestrator makr daje to

Dim swApp As Object

Dim Part As Object
Dim longstatus As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
'--------------------Find and Replace Annotations--------------------
Set swUtil = swApp.GetAddInObject("Utilities.UtilitiesApp")
Set swUtilFindReplaceAnnotations = swUtil.FindReplaceAnnotations
longstatus = swUtilFindReplaceAnnotations.InitPMPage()
'--------------------Block Recording--------------------
#If 0 Then
#End If
'--------------------UnBlock Recording------------------
swUtilFindReplaceAnnotations.FindText = "M6x30"
swUtilFindReplaceAnnotations.ReplaceText = "M6x30 - 8.8"
swUtilFindReplaceAnnotations.options = gtFraMatchCase Or gtFraWholeWord Or gtFraIncludeHiddenAnnotation
swUtilFindReplaceAnnotations.AnnotationFilter = gtFraAllTypes
Part.ClearSelection2 True
longstatus = swUtilFindReplaceAnnotations.ReplaceAll()
'--------------------Block Recording--------------------
#If 0 Then
#End If
'--------------------UnBlock Recording------------------
longstatus = swUtilFindReplaceAnnotations.Close()
End Sub

aby zobaczyć, aby umieścić go w programie, który zapętla się na wszystkich płaszczyznach folderu, z drugiej strony przeszkadza mi okno dialogowe, które pojawia się na końcu makra :/

1 polubienie

Witam

Ten program jest tylko przykładem do wyszukiwania nut i wymiarów strzału, musisz zautomatyzować otwieranie i zamykanie SLDDRW, automatycznie modyfikować notatki lub wymiary, śledzić wynik w pliku dziennika itp.

Twoja potrzeba wymaga trochę wiedzy programistycznej (vba, vb.net lub C#), ale jest wykonalna. Aby przetworzyć 200 planów, będzie to oznaczać czas przetwarzania około 20 do 30 minut, ale zanim to nastąpi, napisanie programu zajmuje około 2 godzin.

Pozdrowienia

Oto już funkcja (w C#) do wyświetlenia listy wszystkich nut klipu i zamiany wartości "M6x30" na "M6x30 - 8.8":

private void ListeAnnotations()
{

            DrawingDoc swDraw;
            długie j;
            długa liczenie;
            SolidWorks.Interop.sldworks. Widok swView;
            swDraw = (DrawingDoc)swApp. ActiveDoc;
            swView = (SolidWorks.Interop.sldworks.Widok)swDraw. Funkcja GetFirstView();
           
            while ((swView != null))
            {
                count = swView. GetNoteCount();
                if (liczba > 0)
                {
                    Object[] Notes = (Object[])swView. GetNotes();
                    dla (j = 0; j < = Uwagi.GetUpperBound(0); j++)
                    {
                        Uwaga swUwaga;
                        swNote = (Uwaga)Uwagi[j];
                        ciąg wartośćUwaga = swNote. Funkcja GetText();
                        ciąg newValueNote = wartośćUwaga;
                        if (wartośćUwaga.Zawiera (M6x30))
                        {
                            newValueNote = nowaWartośćUwaga. Wymień (M6x30, M6x30 - 8,8);
                            swUwaga. SetText(nowaWartośćUwaga);
                        }
                    }
                }
                swView = (SolidWorks.Interop.sldworks.Widok)swView. Funkcja GetNextView();
            }

}

Pozdrowienia

1 polubienie

Dziękujemy za Wasze opinie i zaangażowanie!

Będę patrzył zgodnie z moimi skromnymi umiejętnościami programistycznymi i moją dostępnością.

Jestem bardziej zaznajomiony z VB, ponieważ zrobiłem dużo makr dla Excela, dla C++ widziałem to w szkole w 2000 roku, więc w ogóle nie jestem na bieżąco, ale oferuje inne możliwości.

Twój kod zainspiruje mnie do dokonania wyboru.

Miłego weekendu

Witam

Oto wersja programu, która umożliwia:

- Wczytując plik CSV zawierający listę plików do analizy, należy pamiętać, że lista ta musi być sformatowana tak, jak plik liste.csv dołączony do programu.

- Otwórz każdy plik w Solidworks.

- Przeanalizuj wszystkie notatki w każdym załadowanym pliku 2D.

- Zamień "Tekst do modyfikacji" na "Nowy tekst notatki"

- Zapisz zmodyfikowany plan.

Aby rozpocząć, najlepiej jest przetestować na niewielkiej ilości kopii pliku 2D.

Po zakończeniu przetwarzania w folderze wykonywalnym zostanie utworzony plik résultat.csv wskazujący, czy pliki zostały przetworzone, czy zagubione.

Jak wskazano podczas uruchamiania programu, konieczne jest wykonanie kopii zapasowej wszystkich plików do przetworzenia przed przetworzeniem.

Nie lubię tworzyć funkcji tworzenia kopii zapasowych plików SolidWorks dla innych osób, ponieważ jako osoba z zewnątrz czuję, że nie muszę na nich ingerować w trybie modyfikacji, ale dla działania tego programu byłem do tego trochę zobowiązany, dlatego proszę pracować na kopiach plików, a nie na oryginałach.

Pozdrowienia


modif-notes.zip
1 polubienie

Dziękuję d.roger,

Niestety ograniczenia mojej organizacji nie pozwalają mi już na korzystanie z plików wykonywalnych (pierwsza przeszła, ale nie druga)

Więc zamierzam wybrać VBA SW + planer zadań.

Czapki z głów przed pracą! Jestem pewien, że zaspokoiłby w 100% moją potrzebę

Miłego dnia!

W przeciwnym razie w mycadtools znajduje się narzędzie do integracji, które można zainstalować i uruchomić w folderze, wystarczy zmodyfikować załączoną regułę.

A do tego nie są potrzebne żadne umiejętności programistyczne.

Po prostu zmień warunek, który tutaj umieściłem dla wszystkich dokumentów typu konspekt.

Następnie, aby zmienić operację w tym miejscu, aby zastąpić tekst notatki inną notatką. Uwaga wyszukiwana w załączonej regule M6x30 tekst alternatywny M6x30 -8.8

I wybór liści Wybrałem wszystkie liście.

Możesz go bardzo łatwo dostosować, a następnie zastosować tę regułę do całego pliku, do całego zestawu lub innego zgodnie z własnymi potrzebami.

 


modification_de_note.mcact
1 polubienie