TheSwamp
CAD Forums => CAD General => CAD Standards => Topic started by: dubb on June 30, 2005, 01:12:20 PM
-
i have this tedious job to do for this whole summer...i just dont want it to take me the whole summer. is there a faster way to go through a whole bunch of details and plotting them out one by one with a stamp on the drawing indicating the location of the detail for reference? so far..i tried importing one layout and zoomed in to each detail individually and plotting it. are there any suggestions for this?
case: find all details on the network drive and print them out one by one on 8.5x11 paper
why: devolping more standard detail library for different types of materials
problem: too many details crammed in one dwg file.
solution:?
-
script?
-
To find them, If there are unique words in the details that set them apart from all other drawing types, you could use Docupoint Discovery ( www.docupoint.com ) to find them.
That would be the first step. If it won't work, you'd need a new first step.
...for starters...
-
can you organize all the details into folders easily? I just did what your asking, I printed out every detail we have, about 5000, and I put the name and location on the paper for each print. VBA and a script, with a little LISP thrown in
-
can you organize all the details into folders easily? I just did what your asking, I printed out every detail we have, about 5000, and I put the name and location on the paper for each print. VBA and a script, with a little LISP thrown in
you just printed out 5000 details? how fast did you do it? i dont have 5000 but the details are spread out in folders and some are layed out in one drawing on multiple borders. so i basically have to separate all the details. as soon as we weed out the unwanted details and set new typical details...i still have to implement layering standards on all of them....
:idea: how about wblocking each one...
:?: but then i have to go back and print them...
ok...well i gotta get back to the details....thanks for the replies...brb...
-
i wrote code that wblocked and printed each one. It was still a manual process, but it goes very fast
-
you just printed out 5000 details? how fast did you do it?
it tok about 16-20 hours to process all the details.
i dont have 5000 but the details are spread out in folders and some are layed out in one drawing on multiple borders.
same here, mutli sheets, multi layouts
so i basically have to separate all the details. as soon as we weed out the unwanted details
We printed them all, then organized them and weeded after thati still have to implement layering standards on all of them....
and that can be automated as well by using filters within VBA
:idea: how about wblocking each one...
:?: but then i have to go back and print them...
thats what my code does
-
what exactly does your routine do? do you mind sharing?
-
i dont mind sharing at all, that why we hang out here. brb
-
code to follow, explained in following posts
Option Explicit
Dim N As Integer, dwgn As Integer, intCount As Integer
Dim WBL As AcadSelectionSet
Dim pt1 As Variant, pt2 As Variant
Dim dblPT1(1) As Double, dblPT2(1) As Double
Dim strFilename As String
Private Sub UserForm_Initialize()
TextBox1.Value = "Enter 1st Dwg#"
TextBox1.SetFocus
TextBox1.SelStart = 0
TextBox1.SelLength = TextBox1.TextLength
CommandButton1.Enabled = False
CommandButton2.Enabled = False
If ThisDrawing.SelectionSets.Count > 0 Then
For N = 0 To ThisDrawing.SelectionSets.Count - 1
If ThisDrawing.SelectionSets.Item(N).Name = "WBL" Then
ThisDrawing.SelectionSets("WBL").Delete
End If
Next N
End If
End Sub
Private Sub CommandButton1_Click()
Me.Hide
With ThisDrawing.Utility
.InitializeUserInput 1
pt1 = .GetPoint(, vbCr & "Pick First Corner: ")
.InitializeUserInput 1 ' or 1 for Window 33 for Crossing
pt2 = .GetCorner(pt1, "Pick Other Corner: ")
If ThisDrawing.SelectionSets.Count > 0 Then
For N = 0 To ThisDrawing.SelectionSets.Count - 1
If ThisDrawing.SelectionSets.Item(N).Name = "WBL" Then
ThisDrawing.SelectionSets("WBL").Delete
End If
Next N
End If
Set WBL = ThisDrawing.SelectionSets.Add("WBL")
WBL.Select acSelectionSetWindow, pt1, pt2
End With
WBL.Highlight True
CommandButton2.Enabled = True
Me.Show
End Sub
Private Sub CommandButton2_Click()
Dim hgt As Double
strFilename = "c:\details\DTL" & TextBox1.Value
For intCount = 0 To 1
dblPT1(intCount) = CDbl(pt1(intCount))
dblPT2(intCount) = CDbl(pt2(intCount))
Next intCount
hgt = (dblPT2(1) - dblPT1(1)) * 0.03
ThisDrawing.ModelSpace.AddText strFilename, pt1, hgt
ThisDrawing.Regen acActiveViewport
ThisDrawing.ActiveLayout.SetWindowToPlot dblPT1, dblPT2
ThisDrawing.WBlock strFilename, WBL
DetailDwf (strFilename)
WBL.Highlight False
WBL.Erase
WBL.Delete
ThisDrawing.Regen acAllViewports
'textbox1.value = textbox1.value 1+
TextBox1.Value = ThisDrawing.Utility.DistanceToReal(TextBox1.Value, acDecimal) + 1
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
CommandButton1.Enabled = True
End Sub
-
i can upload a dvb if needed, but here goes-
when the code starts, you enter a dwg# (detail number) in a text box. When we did it we completely renumbered all our details b/c we knew we had duplicates and as part of the weeding we would clean that up.
you also have to create a folder to store all the new details in, and that gets hard coded into the form. After you type in a number, you push the Wblock button, which prompts you to pick LL and UR points. It runs a plot by window of those points, scale to fit, and sends it to the printer, then wb's the file out. The only trick is to remember what number is next when you open the next dwg and start the process again. a sheet of 20 details takes about 6-8 minutes depending on how fast you click. (less if you are going insane clicking fast)
-
Option Explicit
Public Sub wb()
UserForm1.Show
End Sub
Public Sub DetailDwf(strfile)
Dim Layout As AcadLayout
Set Layout = ThisDrawing.ActiveLayout
Layout.RefreshPlotDeviceInfo
Layout.ConfigName = "DWF6 ePlot.pc3"
Layout.PlotType = acWindow
Layout.PlotRotation = ac0degrees
Layout.StyleSheet = "vendor medium.ctb"
Layout.CanonicalMediaName = "ANSI_A_(8.50_x_11.00_Inches)"
Layout.PaperUnits = acInches
'Layout.StandardScale = ac1_1
Layout.StandardScale = acScaleToFit
Layout.ShowPlotStyles = False
ThisDrawing.Plot.NumberOfCopies = 1
Layout.CenterPlot = True
Layout.RefreshPlotDeviceInfo
ThisDrawing.Plot.PlotToFile strfile
Set Layout = Nothing
End Sub
module code
-
HEY..this will work for me...all i have to do is adjust it here and there....thanks cmdr! roger that...10-4....i have yet to to get this working...
-
do you want the dvb?
-
here is the link (http://www.theswamp.org/lilly_pond/cmdrduh/Wblock.dvb?nossi=1)
-
thanks cmdr....
its crazy busy at the office.....i feel like a DRONE...except im the only one....