g.deloach
2004-12-30, 02:00 PM
Below Is a small application I've been working on and either I'm suffering from to much hoiliday excitement or I'm just not understanding.
All I'm wanting to do is run a lisp program, (getmknums), on a series of drawings seleccted by the user. The drawings will load but I can't get the application to run on any drawing in the foreach loop. Below is my code and I'll appreciate any help you may be able to provide.
(defun C:samtest ()
(vl-load-com)
(setq FileLst (dos_getfilem
"Select Connection Sheets To Retrieve"
"C:\\"
"Drawing Files (*.DWG)|2_*.dwg"
)
)
;;; The line Above Prompts User to Select Dwgs To Create List (Result Ex: = "C:\\ABC-1234\\" "2_01.dwg" "2_05.dwg")
(setq ProjFldr (car Filelst)) ; Sets Variable To The Project Folder (Result Ex: "C:\\ABC-1234\\")
(setq DwgList (cdr Filelst)) ; Sets Variable for Dwg List (Result Ex: "2_01.dwg" "2_05.dwg")
(foreach d DwgList ; Create A Loop To Run The Code Below On Each Dwg In The List
(setq CurDwg (strcat ProjFldr d)) ; Sets Variable For Dwg To Be Opened (Result Ex: = "C:\\ABC-1234\\2_01.dwg")
;(Setq NextDwg (VLA-OPEN (VLA-GET-DOCUMENTS (VLAX-GET-ACAD-OBJECT)) Curdwg) ); Set Variable and Opens Dwg
;(C:getmknums)
(vla-activate
(vla-open (vla-get-documents (vlax-get-acad-object)) CurDwg)
)
(vla-sendcommand
(vla-get-activedocument (vlax-get-acad-object))
(strcat "(command \"_.OPEN\")\n" Curdwg "\n")
)
(C:getmknums)
; THE LINE ABOVE IS MY PROBLEM. I HAVE A LISP FILE ALREADY LOADED THAT USES "GETMKNUMS" TO RUN IN ACAD FROM THE
; COMMAND PROMPT AND WHAT I WANT TO DO IS RUN THIS LISP APPLICATION ON EVERY DWG IN MY LIST.
(vla-close CurDwg :vlax-true) ; This Saves The Drawing
) ; End Foreach
) ; End Defun
Thanks in Advance,
Coyote
All I'm wanting to do is run a lisp program, (getmknums), on a series of drawings seleccted by the user. The drawings will load but I can't get the application to run on any drawing in the foreach loop. Below is my code and I'll appreciate any help you may be able to provide.
(defun C:samtest ()
(vl-load-com)
(setq FileLst (dos_getfilem
"Select Connection Sheets To Retrieve"
"C:\\"
"Drawing Files (*.DWG)|2_*.dwg"
)
)
;;; The line Above Prompts User to Select Dwgs To Create List (Result Ex: = "C:\\ABC-1234\\" "2_01.dwg" "2_05.dwg")
(setq ProjFldr (car Filelst)) ; Sets Variable To The Project Folder (Result Ex: "C:\\ABC-1234\\")
(setq DwgList (cdr Filelst)) ; Sets Variable for Dwg List (Result Ex: "2_01.dwg" "2_05.dwg")
(foreach d DwgList ; Create A Loop To Run The Code Below On Each Dwg In The List
(setq CurDwg (strcat ProjFldr d)) ; Sets Variable For Dwg To Be Opened (Result Ex: = "C:\\ABC-1234\\2_01.dwg")
;(Setq NextDwg (VLA-OPEN (VLA-GET-DOCUMENTS (VLAX-GET-ACAD-OBJECT)) Curdwg) ); Set Variable and Opens Dwg
;(C:getmknums)
(vla-activate
(vla-open (vla-get-documents (vlax-get-acad-object)) CurDwg)
)
(vla-sendcommand
(vla-get-activedocument (vlax-get-acad-object))
(strcat "(command \"_.OPEN\")\n" Curdwg "\n")
)
(C:getmknums)
; THE LINE ABOVE IS MY PROBLEM. I HAVE A LISP FILE ALREADY LOADED THAT USES "GETMKNUMS" TO RUN IN ACAD FROM THE
; COMMAND PROMPT AND WHAT I WANT TO DO IS RUN THIS LISP APPLICATION ON EVERY DWG IN MY LIST.
(vla-close CurDwg :vlax-true) ; This Saves The Drawing
) ; End Foreach
) ; End Defun
Thanks in Advance,
Coyote