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

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