ZWCAD 2020 // łączenie wielu plików DWG w jeden


adamstef

Rekomendowane odpowiedzi

Witam serdecznie,

jestem nowy na tym forum więc serdecznie witam wszystkich. 

Opisze w kilku słowach mój problem, mam np. 100 plików DWG z elementami, które musze następnie obrobić w programie CAM.

Chciałbym się zapytać czy zna ktoś jakiś sposób żeby te 100 rysunków umieścić w 1 pliku ??

Odnośnik do komentarza
Udostępnij na innych stronach

moze taki lisp 

(defun c:InsertAll ( / cmd dir extn pt vec )

   (setq extn "dwg") ;; Extension of files to Insert e.g "dwg"

   (if
       (and
           (setq dir (LM:DirectoryDialog (strcat "Select Directory of " (strcase extn) " Files to Insert") nil 512))
           (setq vec (getpoint "\nPick Spacing Vector: " '(0 0 0)))
       )
       (progn
           (setq cmd (getvar 'CMDECHO))
           (setvar 'CMDECHO 0)
           (setq pt '(0 0 0))
           (foreach file (vl-directory-files dir (strcat "*." extn) 1)
               (vl-cmdf "_.-insert" (strcat dir "\\" file) "_S" 1.0 "_R" 0.0 "_non" pt)
               (setq pt (mapcar '+ pt vec))
           )
           (setvar 'CMDECHO cmd)
       )
       (princ "\n*Cancel*")
   )
   (princ)
)

;;-------------------=={ Directory Dialog }==-----------------;;
;;                                                            ;;
;;  Displays a dialog prompting the user to select a folder   ;;
;;------------------------------------------------------------;;
;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
;;------------------------------------------------------------;;
;;  Arguments:                                                ;;
;;  msg  - message to display at top of dialog                ;;
;;  dir  - root directory (or nil)                            ;;
;;  flag - bit coded flag specifying dialog display settings  ;;
;;------------------------------------------------------------;;
;;  Returns:  Selected folder filepath, else nil              ;;
;;------------------------------------------------------------;;

(defun LM:DirectoryDialog ( msg dir flag / Shell Fold Self Path )
   (vl-catch-all-apply
       (function
           (lambda ( / ac HWND )
               (if
                   (setq Shell (vla-getInterfaceObject (setq ac (vlax-get-acad-object)) "Shell.Application")
                         HWND  (vl-catch-all-apply 'vla-get-HWND (list ac))
                         Fold  (vlax-invoke-method Shell 'BrowseForFolder (if (vl-catch-all-error-p HWND) 0 HWND) msg flag dir)
                   )
                   (setq Self (vlax-get-property Fold 'Self)
                         Path (vlax-get-property Self 'Path)
                         Path (vl-string-right-trim "\\" (vl-string-translate "/" "\\" Path))
                   )
               )
           )
       )
   )
   (if Self  (vlax-release-object  Self))
   (if Fold  (vlax-release-object  Fold))
   (if Shell (vlax-release-object Shell))
   Path
)

(vl-load-com) (princ)

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Ciekawy pomysł, skrypt wstawia kolejne pliki przesunięte o początkowy wektor.

Żeby było łatwiej zapisałem lispa w pliku dwg i zapisałem na serwerze, można go pobrać tutaj.

Sposób działania:

  1. Pobrany plik przeciągamy na obszar roboczy programu CAD.
  2. Wpisujemy polecenie INSERTALL.
  3. W oknie eksploratora wybieramy katalog z plikami dwg - do rysunku zostaną wstawione wszystkie pliki z tego katalogu.
  4. Definiujemy odstęp pomiędzy kolejnymi plikami dwg (można wskazać myszką lub wpisać na klawiaturze).

 

Poniżej film przedstawiający sposób działania lispa (jako plików dwg użyłem kilku bloków ze znakami drogowymi z nakładki ZWTraffic ).

image.gif

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 rok później...
  • 6 miesięcy temu...

Dzień dobry, 

Użyłem tego skryptu- super sprawa, ułatwia pracę, działa bardzo dobrze. Jedno "ale" : czy można coś w nim zmienić żeby wciągać pliki z większą ilością znaków? Zauważyłem że jest ona ograniczona i pliki mające więcej znaków w nazwie po prostu pomija.

Odnośnik do komentarza
Udostępnij na innych stronach

Hej,

Ile znaków mają nazwy tych plików? Czy w nazwie rysunku lub ścieżce są polskie znaki?

Spróbowałem z plikiem którego nazwa ma ponad 100 znaków i wgrał się bez przeszkód. Być może problem leży w czymś innym.
Jeśli możesz to podeślij przykładowy plik który jest pomijany w wiadomości prywatnej.

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć, 

Przepraszam że tak długo się nie odzywałem, ale nie było chwili na testowanie. Dziś miałem trochę czasu i chyba znalazłem problem. Wygląda na to, ze nie ilośc znaków była problemem, ale to, że w nazwie plików miałem znaki specjalne typu przecinek... Mam nadzieję, że to będzie ten problem. Jeszcze potestuję w najbliższym czasie żeby mieć pewność, że to to. Dziękuję póki co a pomoc :)

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie