Recommended Posts

Posted

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 ??

Posted

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)

 

  • 2 weeks later...
Posted

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

  • 1 year later...
  • 6 months later...
Posted

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.

Posted

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.

Posted

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 :)

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...