Jump to content
FrancescoITA

VBA CODE-From multiple areas to plot in model space to create a layout for each areas

Recommended Posts

FrancescoITA

Hi everybody,

I have a big problem....

I have about 100 DWG with a lot of sheet in the same model space and i must print every sheet, so i am looking for a script in VBA or lisp to create from multiple areas to plot in model space, a layout tab for each area vba autocad.

I found a lisp script, but it doesn't run (plotDWGarr).

(http://www.cadforum.cz/cadforum_en/plotting-a-series-of-drawing-frames-composed-in-a-dwg-drawing-tip7585)

 

Do you know another similar script o to write a VBA to do it?

 

Thank you very much in advance

Share this post


Link to post
Share on other sites
BIGAL

If I understand correct this will plot all sheets in model space rather than trying to redo all of them.

 

; plot multi title block in Model space 
; By Alan H 2013
(PROMPT ".....PRINTING DRAWING TO plotter....")
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)

(setq ss2 (ssget "x" '((0 . "INSERT")(2 . "Da1drsht"))))
(setq n (sslength ss2))
(setq index 0)
(repeat n
   (setq en (ssname ss2 index))
   (setq el (entget en))
   (setq inspt (assoc 10 el)) ; insertion pt
  (setq xmin (- (cadr inspt) 6.0))
  (setq ymin (- (caddr inspt) 6.0))
  (setq xymin (strcat (rtos xmin 2 1) "," (rtos ymin 2 1)))
  (setq xmax (+ xmin 813.0)) ; hard coded for 813 wide 6mm offset
  (setq ymax (+ ymin 566.0)) ;hard code for 566 high
  (setq xymax (strcat (rtos xmax 2 1) "," (rtos ymax 2 1)))

 (COMMAND "-PLOT"  "Y"     "" "//PRODPRN01/Design-5100"
       "A3" "M"     "LANDSCAPE"   "N"
       "W"   xymin   xymax "1=2"  "C"
       "y"   "Designlaser.ctb"      "Y"   "" "n"   "n"
       "y" "N" "N" "Y"
   )

 (setq index (+ index 1))
)
(setvar "osmode" oldsnap)
(princ)

Edited by BIGAL

Share this post


Link to post
Share on other sites
maratovich

FrancescoITA

Add example file.

Share this post


Link to post
Share on other sites
FrancescoITA

For Bigal:

 

Thank you very much Bigal, after i will try if it runs or no.

However i prefer use a VBA for this script

 

For Maratovich:

Excuse me, here the example.

Example Model (1).pdf

Example.rar

Share this post


Link to post
Share on other sites
FrancescoITA

For Bigal:

 

Excuse me Bigal for my ignorance, but how can i use your script, because i tried, but AutoCad told me that there are some problems.

 

Can you tell me what steps i must do to load and to use your script??^^

 

Thank you very much :).

Share this post


Link to post
Share on other sites
FrancescoITA

I am interested in both thing, but more to create layout.

Share this post


Link to post
Share on other sites
maratovich
I am interested in both thing, but more to create layout.

Batch Printing example:

Share this post


Link to post
Share on other sites
FrancescoITA

maratovich....it is a payment tool....I want create a tool with VBA and i would pay :unsure:....

Share this post


Link to post
Share on other sites
BIGAL

Some bits you need to change are shown in red, copy and paste my 1st post to Notepad save as "Plot-Multi-Mspace.lsp". make changes to the code as shown below, post a dwg with say two title blocks a RAR is a nuisance for me then could change code for you.

 

To run type Appload and pick the lisp Load & close it should run.

 

; plot multi title block in Model space 
; By Alan H 2013
(PROMPT ".....PRINTING DRAWING TO plotter....")
(setq oldsnap (getvar "osmode"))
(setvar "osmode" 0)

(setq ss2 (ssget "x" '((0 . "INSERT")(2 . [color=red]"Da1drsht[/color]")))) ;[color=red] title block name[/color]
(setq n (sslength ss2))
(setq index 0)
(repeat n
   (setq en (ssname ss2 index))
   (setq el (entget en))
   (setq inspt (assoc 10 el)) ;[color=mediumturquoise] insertion pt of title block[/color]
  (setq xmin (- (cadr inspt) [color=red]6.0[/color])) ; [color=red]offset pt lower left[/color]
  (setq ymin (- (caddr inspt)[color=red] 6.0[/color]))
  (setq xymin (strcat (rtos xmin 2 1) "," (rtos ymin 2 1)))
  (setq xmax (+ xmin 813.0)) ; [color=red]hard coded for 813 wide 6mm offset[/color]
  (setq ymax (+ ymin 566.0)) ;[color=red]hard code for 566 high[/color]
  (setq xymax (strcat (rtos xmax 2 1) "," (rtos ymax 2 1)))
[color=red]; scale 1=2 is for an A1 sheet plotted on A3 paper[/color]
[color=#ff0000]; dwg to pdf means we can check if it works rather than waste paper[/color]
 (COMMAND "-PLOT"  "Y"     "" [color=red]"DWG to PDF[/color][color=red]"[/color]
       "A3" "M"     "LANDSCAPE"   "N"
       "W"   xymin   xymax [color=red]"1=2"[/color]  "C"
       "y"   [color=red]"Designlaser.ctb[/color]"      "Y"   "" "n"   "n"
       "y" "N" "N" "Y"
   )

 (setq index (+ index 1))
)
(setvar "osmode" oldsnap)
(princ)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×