_

Zmiana nazw wielu układów naraz

Forum poświęcone flagowemu produktowi oraz aplikacjom pochodnym Autodesku. To jedyne forum mające w tytule nazwę programu, a to ze względu na jego olbrzymią popularność w Polsce. Można tutaj umieszczać również posty z ogólnie pojętej tematyki "Kreślarskie 2D".

Zmiana nazw wielu układów naraz

Postprzez refreshmaker » sie 29, 2016 14:02

Kiedyś spotkałem się z narzędziem, które pozwalało eksportować nazwy wszystkich układów do zewnętrznego pliku (txt czy xls), następnie można było przenumerować/pozmieniać ręcznie nazwy układów i z powrotem zaimportować zaktualizowane nazwy układów.

Czy ktoś pamięta co to za narzędzie?
Windows 10 Pro x64
AutoCAD 2012 - Polski SP2 x64
refreshmaker
 
Posty: 28
Dołączył(a): lip 22, 2013 11:17

Re: Zmiana nazw wielu układów naraz

Postprzez sauron-83 » sie 30, 2016 08:25

Narzędzi jest prawie tyle co gwiazd na niebie.
rzuć okiem tu ma też kilka innych przydatnych funkcjonalności.

http://www.lee-mac.com/tabsort.html

sauron
pozdrawiam sauron
sauron-83
 
Posty: 295
Dołączył(a): sie 05, 2008 15:25

Re: Zmiana nazw wielu układów naraz

Postprzez refreshmaker » sie 30, 2016 10:06

Szukałem właśnie wcześniej u Lee Maca, ale czegoś z LAYOUT w nazwie i nic nie znalazłem.

To narzędzie jest ciekawe, ale nadaje się bardziej do ogólnego zarządzania układami, sortowania, przesuwania, dodawania pre/su-fiksów, a nie całościowego, grupowego zmieniania nazwy. Więc nie do końca o to mi chodziło.

Moja sytuacja wygląda tak: mam ponumerowane kilkadziesiąt układów, i w każdym z nich do tabliczki rysunkowej jako numer rysunku podczytywana jest nazwa układu. Ale nagle się okazało, że na początku stawki trzeba dorzucić kilka rysunków z numerami początkowymi, no i sprawa się komplikuje - jak nazwy tych kilkudziesięciu układów przenumerować z 1,2,3...94 na 12,13,14...105, nie robiąc tego ręcznie, ale automatycznie, bo może się okazać, że przy innych rysunkach też trzeba będzie rzeźbić numerację.
Windows 10 Pro x64
AutoCAD 2012 - Polski SP2 x64
refreshmaker
 
Posty: 28
Dołączył(a): lip 22, 2013 11:17

Re: Zmiana nazw wielu układów naraz

Postprzez sauron-83 » sie 30, 2016 11:01

w powyższym mozesz dwuklikiem ręcznie zmienić też nazwę
ale chcesz grupowo to np. czymś takim:

Kod: Zaznacz cały
;; http://forums.augi.com/showthread.php?15980-renaming-the-layout-tabs&highlight=rename%20layout
(defun DT:LAYOUT-RENAME (OLDNAME NEWNAME)
  (vl-load-com)
  (if(and(=(type OLDNAME) 'STR)
          (=(type NEWNAME) 'STR)
     )   
    (vlax-for ITEM (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object)))
      (if(=(strcase(vla-get-name ITEM))(strcase OLDNAME))
        (vl-catch-all-error-p
          (vl-catch-all-apply
            'vla-put-name
             (list  ITEM NEWNAME)
          )
        )
      )
    )
  )
)

wywołaj funkcję w taki sposób to zmienisz nazwę arkusza jak poniżej:
Kod: Zaznacz cały
(DT:LAYOUT-RENAME "ObecnaNazwaArkusza" "NowaNazwaArkusza")


chcesz grupowo to:
1. najpierw pobierz nazwy wszystkich layoutów tym: (lub CADPackowo...)
Kod: Zaznacz cały
(layoutlist)

2. obrób sobie np. w Excelu bo w kolumnach łatwiej mieć starą i nową nazwę bądź też można formułami je poustawiać
3. skonstruuj prostego lispa nawet w postaci
Kod: Zaznacz cały
(DT:LAYOUT-RENAME "ObecnaNazwaArkusza1" "NowaNazwaArkusza1")
(DT:LAYOUT-RENAME "ObecnaNazwaArkusza2" "NowaNazwaArkusza2")
(DT:LAYOUT-RENAME "ObecnaNazwaArkusza3" "NowaNazwaArkusza3")
...
pozdrawiam sauron
sauron-83
 
Posty: 295
Dołączył(a): sie 05, 2008 15:25

Re: Zmiana nazw wielu układów naraz

Postprzez 88marcin » cze 22, 2017 17:18

Jak zmienić nazwę arkusza poleceniem?
88marcin
 
Posty: 61
Dołączył(a): mar 22, 2016 12:08

Re: Zmiana nazw wielu układów naraz

Postprzez ziele_o2k » cze 22, 2017 19:40

Na podstawie:
https://kojacek.wordpress.com/2016/12/15/textout-textin/
na szybko naskrobałem coś takiego:
Kod: Zaznacz cały
;; http://forums.augi.com/showthread.php?15980-renaming-the-layout-tabs&highlight=rename%20layout
(defun DT:LAYOUT-RENAME (OLDNAME NEWNAME)
  (vl-load-com)
  (if(and(=(type OLDNAME) 'STR)
          (=(type NEWNAME) 'STR)
     )   
    (vlax-for ITEM (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object)))
      (if(=(strcase(vla-get-name ITEM))(strcase OLDNAME))
        (vl-catch-all-error-p
          (vl-catch-all-apply
            'vla-put-name
             (list  ITEM NEWNAME)
          )
        )
      )
    )
  )
)

(defun c:LayoutOut ( / ll n ll f)
  (if (setq ll (layoutlist))
    (progn
      (setq
            n (vl-string-subst ".txt" ".dwg" (getvar "DWGNAME"))
            l (mapcar
                '(lambda (%)
                   (strcat % *jk-TextIO-Sep*)
                ) ll)
      )
      (if
        (setq f (getfiled "Zapisz plik TXT" n "txt" 1))
        (cd:SYS_WriteFile f
          (append (list
            (strcat "STARA NAZWA" *jk-TextIO-Sep* "NOWA NAZWA")) l) nil)
        (princ "\nNie wskazano pliku. ")
      )
    )
  )
  (princ)
)

(defun c:LayoutIn ( / f n l)
  (if
    (setq f (getfiled "Otwórz plik TXT" "" "txt" 8))
    (if
      (and
        (setq n (cd:SYS_ReadFile 0 f))
        (eq n (strcat "STARA NAZWA" *jk-TextIO-Sep* "NOWA NAZWA"))
      )
      (if
        (setq l (cd:SYS_ReadFile nil f))
        (progn
          (setq
            l (cdr l)
            l (mapcar
                '(lambda (%)
                   (cd:STR_Parse % *jk-TextIO-Sep* nil)
                ) l
              )

          )
          (cd:SYS_UndoBegin)
          (foreach % l
            (DT:LAYOUT-RENAME (car %) (cadr %))
          )
          (cd:SYS_UndoEnd)
        )
        (princ "\nBłędne dane w pliku tekstowym.")
      )
      (princ "\nBłędny plik tekstowy.")
    )
    (princ "\nNie wskazano pliku. ")
  )
  (princ)
)

Naturalnie do poprawy, ale działa
Ziele
Avatar użytkownika
ziele_o2k
 
Posty: 507
Dołączył(a): mar 18, 2014 11:33
Lokalizacja: Poznań

Re: Zmiana nazw wielu układów naraz

Postprzez 88marcin » cze 28, 2017 12:35

Sposób na zmianę nazwy aktywnego arkusza poleceniem tekstowym / ew. skrypcik?
88marcin
 
Posty: 61
Dołączył(a): mar 22, 2016 12:08


Powrót do AutoCAD

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników