FrancescoITA 发表于 2022-7-6 21:51:56

VBA CODE-From multiple areas t

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

BIGAL 发表于 2022-7-6 21:59:25

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)

maratovich 发表于 2022-7-6 22:08:54

FrancescoITA
Add example file.

FrancescoITA 发表于 2022-7-6 22:14:15

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

maratovich 发表于 2022-7-6 22:23:01

Look at the options of this topic, there is a solution.
http://www.cadtutor.net/forum/showthread.php?98832-lisp-for-automatically-set-view-ports-from-model-space
http://www.cadtutor.net/forum/showthread.php?98800-Plot-user-paper-size
 
You need to batch printing or creating layouts ?

FrancescoITA 发表于 2022-7-6 22:26:02

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 .

FrancescoITA 发表于 2022-7-6 22:35:54

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

maratovich 发表于 2022-7-6 22:43:36

Batch Printing example:

FrancescoITA 发表于 2022-7-6 22:50:04

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

BIGAL 发表于 2022-7-6 22:55:51

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 . "Da1drsht")))) ; title block name(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 of title block(setq xmin (- (cadr inspt) 6.0)) ; offset pt lower left(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))); scale 1=2 is for an A1 sheet plotted on A3 paper; dwg to pdf means we can check if it works rather than waste paper (COMMAND "-PLOT""Y"   "" "DWG to PDF"       "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)
页: [1]
查看完整版本: VBA CODE-From multiple areas t