Discussion forum
CAD discussion |
Please abide by the rules of this forum.
How to post questions: register or login, go to the specific forum and click the NEW TOPIC button.
Help Combining files |
Post Reply | Page 12> |
Author | |
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Topic: Help Combining files Posted: 09.Mar.2020 at 15:08 |
Hello Joseph, that method only prints one sheet with all the drawings on it, i need a routine that marks each drawing as an individual window, so that when i plot, each drawing is considered as a page in the PDF. The drawings are evenly spaced in the main file, as a result of a merge made from the routine above.
|
|
philippe JOSEPH
Senior Member Joined: 14.Mar.2011 Location: France Using: AutoCAD Mechanical 2017 Status: Offline Points: 1428 |
Posted: 09.Mar.2020 at 12:58 |
Hello AGST, try this command : +PUBLISH ( GB ) , +PUBLICAR ( POR ).
It can be difficult to get it well and in any case set correctly the print settings at least of the first page.
|
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 09.Mar.2020 at 12:00 |
Hello Kent, i hope the new year is running well for you. I'm here asking for your help once more, so i thank you in advance for your time. Problem: Let's suppose i have a DWG with all the drawings inside him, but when i plot the file to a PDF, i need it to output one drawing per page, instead of the whole drawing in one sheet. Is it possible? At the moment, i need to select each drawing manually and add it as windows to the final plot file. Using this method i'm prone to mistakes due the monotous task of selecting alot of them manually. I hope you can help me, thank you once again for your time.
|
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 30.Dec.2019 at 09:27 |
Hello Kent, I can't thank you enough for your help... It's perfect!!! It's exactly what i needed!!! You just saved my life!!! I wish you the best!!! And a happy new year!!!
|
|
Kent Cooper
Senior Member Joined: 12.Mar.2013 Location: United States Using: AutoCAD2020, 2023 Status: Offline Points: 629 |
Posted: 27.Dec.2019 at 21:09 |
Try this -- very minimally tested. It complains if drawings contain Xlines or Rays [it can't find their extents] or Xrefs [it doesn't like Inserting], but in the absence of such things, it seems to work.
(vl-load-com) (defun C:BC (/ blkfolder space nextUL colwd colUL blkLL blkUR blkwd blkht) (setq osm (getvar 'osmode)) (setvar 'osmode 0) (alert "Pick OK here, then double-click any file in desired folder: ") (setq blkfolder (getfiled "Find folder" "" "dwg" 0) blkfolder (substr blkfolder 1 (1+ (vl-string-position 92 blkfolder 1 T))); path without dwg name space 100 ; between blocks and min. from limits <------ set as desired colUL (list space (- space) 0); upper left of first column [one space-width to right of and below 0,0] nextUL colUL ; for first Block rowno 1 colwd 0 ; width of widest block in column [to set X coordinate of next column] ); end setq (foreach blk (vl-directory-files blkfolder "*.dwg" 1) (command "_.insert" (strcat blkfolder blk) (getvar 'viewctr) "" "" "") (vla-getboundingbox (vlax-ename->vla-object (entlast)) 'minpt 'maxpt) (setq blkLL (vlax-safearray->list minpt) blkUR (vlax-safearray->list maxpt) blkwd (- (car blkUR) (car blkLL)) blkht (- (cadr blkUR) (cadr blkLL)) ); setq (if (= rowno 11) (setq ; then - start new column to right of previous column colUL (polar colUL 0 (+ colwd space)) nextUL colUL colwd 0 rowno 1 ); setq ); if - no else [next in current column] (command "_.zoom" "_object" (entlast) "" "_.move" (entlast) "" (list (car blkLL) (cadr blkUR)) nextUL ); command (setq nextUL (polar nextUL (* pi 1.5) (+ blkht space)) rowno (1+ rowno) colwd (max blkwd colwd) ); setq ); foreach (setvar 'osmode osm) (command "_.zoom" "_extents") (princ) ); defun |
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 27.Dec.2019 at 14:48 |
Thank you for the quick reply Kent. The location of the first one doesn't matter, it can even start at (x=0,y=0), as long as the imported DWG's follow the disposition from top to bottom and left to right and mantain 100 units between each one (horizontally and vertically). Vertically a max of 10 rows, then it starts another column from the top. Thank you in advance for your time.
Edited by AGST - 27.Dec.2019 at 14:49 |
|
Kent Cooper
Senior Member Joined: 12.Mar.2013 Location: United States Using: AutoCAD2020, 2023 Status: Offline Points: 629 |
Posted: 27.Dec.2019 at 14:14 |
That shouldn't be difficult, but first:
How should the location of the first one be determined? Ask the User? Something in relation to the drawing limits? Some fixed location every time?
|
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 27.Dec.2019 at 10:51 |
Hi guys!!!
I seek your help please!! The code that Kent so kindly provided, sorts the DWG's from bottom left to top in a single column. I need to modify it, so it sorts from top left to bottom and left to right in 10 rows per column. Here's the code: (defun C:BC (/ blkfolder space nextLL rowht rowL blkLL blkUR objwid objht) (vl-load-com) (setvar 'osmode 0) (alert "Pick OK here, then double-click any file in desired folder: ") (setq blkfolder (getfiled "Find folder" "" "dwg" 0) blkfolder (substr blkfolder 1 (1+ (vl-string-position 92 blkfolder 1 T))); path without dwg name space 100 ; between blocks and min. from limits <------ set as desired nextLL (mapcar '+ (getvar 'limmin) (list space space 0)); lower left of next block rowht 0 ; height of tallest block in row rowL nextLL; left end of baseline of row ); end setq (foreach blk (vl-directory-files blkfolder "*.dwg" 1) (command "_.insert" (strcat blkfolder blk) (getvar 'viewctr) "" "" "") (vla-getboundingbox (vlax-ename->vla-object (entlast)) 'minpt 'maxpt) (setq blkLL (vlax-safearray->list minpt) blkUR (vlax-safearray->list maxpt) objwid (- (car blkUR) (car blkLL)) objht (- (cadr blkUR) (cadr blkLL)) ) (if (> (+ (car nextLL) objwid space) (car (getvar 'limmax))) (setq ; then - start new row above previous row nextLL (polar rowL (/ pi 2) (+ rowht space)) rowL nextLL rowht 0 ); end setq ); end if - no else [next in current row] (command "_.move" (entlast) "" blkLL nextLL) (setq nextLL (polar nextLL 0 (+ objwid space))) (if (> objht rowht) (setq rowht objht)) ); end foreach ); end defun Can anyone give some help please? Thank you in advance!
|
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 26.Dec.2019 at 13:00 |
Hi Kent, the BlockChart.lsp worked like a charm, it did in fact a single column of all the files, can you help me modify the code so that a new column is used when it reaches 10 rows? Ty in advance
|
|
AGST
Newbie Joined: 23.Dec.2019 Location: Portugal Using: Autocad, Eplan Status: Offline Points: 11 |
Posted: 26.Dec.2019 at 08:44 |
Don't ask me why, but it's a demand they make!
|
|
Post Reply | Page 12> |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |
This page was generated in 0,345 seconds.