AU Handouts: There's More to .DWG Than AutoCAD® - Part 2
[This post continues from the last post, which I've been back and modified slightly since it was posted.]
Using the DWG Thumbnail in a simple application
Thumbnail images, when they exist inside a drawing, live in a predictable place at the beginning of the file. This makes it possible for a module – such as an ActiveX control – to extract the thumbnail information when pointed at a DWG file and generate an image from it. All done without the need for RealDWG (which also does this, but with a much heavier runtime component).
A number of 3rd party tools are available to do this – I’d suggest searching on Google – and our team provides one to ADN members, along with a number of other ActiveX controls for display of layers, linetypes, hatch patterns, slides, etc. etc.:
http://adn.autodesk.com/adn/servlet/item?siteID=4814862&id=9628824&linkID=4900509
To make use of the DWG Thumbnail control in your application, you need to add it to your Visual Studio Toolbox, by right-clicking on it, selecting “Choose Items…” and using the COM Components tab to browse to the DwgThumbnail.ocx file. On my system the file is under “C:\Program Files\Autodesk\ADN AutoCAD Utilities\Utilities\AutoCAD Controls”.
Figure 7 – adding the DWG Thumbnail control to your Visual Studio Toolbox
Now you can add control to your form and implement some logic to set the DwgFileName property to the location of your DWG file.
Embedding DWG TrueView in an HTML page or dialog
DWG TrueView can be embedded in an HTML page or dialog and controlled via its COM Automation interface, whether from HTML scripting (JavaScript, VBScript) or another choice of scripting language, if embedded in a dialog. There is a large caveat: this is not a fully supported mode of working with DWG TrueView, so don’t have very high hopes. Simple embedding should work, but if you’re trying to do anything more complex you’re likely to run into problems.
Here’s an HTML fragment, which shows how to embed the DWG TrueView ActiveX control:
[from https://projectpoint.buzzsaw.com/constructionmanagement/public/testDWG.htm?public]
<object
id="dwgViewerCtrl"
classid="clsid:6C7DC044-FB1E-4140-9223-052E5ABE7D24"
height="100%"
width="100%"
data="DATA:application/x-oleobject;BASE64,RMB9bB77QEGSIwUuWr59JAAHAAARTAAArjAAAA==
">
</object>
It’s also straightforward to embed DWG TrueView in your .NET application, just like the DWG Thumbnail control: from your Visual Studio Toolbox, right-click and select “Choose Items…”, selecting the “COM Components” tab and then the “DWGVIEWRCtrl” item from the list of controls:
Figure 8 – adding the DWG TrueView control to your Visual Studio Toolbox
Now you simply need to add it to your form, and add some logic to select the filename to pass into the PutSourcePath() method of the control (either via a browse button, a text box or a hard-coded path).
To compare the capabilities of these two controls, we’re now going to build a simple application that embeds the DWG Thumbnail control alongside DWG TrueView.
After adding the controls to our Toolbox, we design a simple form (ComparisonForm), with a single button to “Load” a DWG file (LoadButton). This button browses for a DWG and loads it into the DWG Thumbnail control and into DWG TrueView.
Here’s the code:
Public Class ComparisonForm
Private Sub LoadButton_Click _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles LoadButton.Click
Dim dlg As New System.Windows.Forms.OpenFileDialog()
dlg.InitialDirectory = _
System.Environment.CurrentDirectory
dlg.Filter = _
"DWG files (*.dwg)|*.dwg|All files (*.*)|*.*"
Dim oc As Cursor = Me.Cursor
Dim fn As String = ""
If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.Cursor = Cursors.WaitCursor
fn = dlg.FileName()
Me.Refresh()
End If
If fn <> "" Then
Me.AxDwgThumbnail1.DwgFileName = fn
Me.AxDwgThumbnail1.Refresh()
Me.AxAcCtrl1.PutSourcePath(fn)
End If
Me.Cursor = oc
End Sub
End Class
When we run the application and select our DWG, we see it loaded into both controls (the Thumbnail loads almost instantaneously, the DWG file takes longer to load into DWG TrueView, of course, as DWG TrueView also needs to be instantiated behind the scenes):
Figure 9 – embedding the DWG Thumbnail control alongside DWG TrueView



Subscribe via RSS
You've been kicked (a good thing) - Trackback from CadKicks.com
http://www.cadkicks.com/adkautocad/More_to_CAD_Part2_Using_the_DWG_Thumbnail_in_a_simple_application
Posted by: CadKicks.com | November 10, 2007 at 02:49 PM
Hai Kaen,
Your code for DWG thumbnail and Dwg trueview works great.But I am using volo view in my vb6 application.Can you help me to code for zoom window on click of a button using volo view in vb6.I dont want to use right pop up menu.Already I have got for zoom extends.Please help me to do this.
Thanks in advance,
Saranya.
Posted by: saranya | May 14, 2008 at 09:30 AM
Hi Saranya,
Sorry - Volo View has not been a supported product for several years, I believe. I have neither information nor any recollection of how to do this.
Regards,
Kean
Posted by: Kean | May 14, 2008 at 09:43 AM
Hi Kean,
Thanks for ur fast reply.Kindly suggest any free ocx or dll for displaying dwg drawings in vb6.Also controlling layers and zoom options.If you give any sample codes in vb6 that will be more helpful
regards,
saranya
Posted by: saranya | May 14, 2008 at 09:51 AM
DWG TrueView. I no longer use VB6, so cannot help you with samples, either.
Kean
Posted by: Kean | May 14, 2008 at 09:53 AM
Thanks.
I have one more query.I have to extract dimensional values of a selected dwg drawing and export to excel.I have code for capturing block attributes.But some dimensions are not there in block attributes.Suppose I have capture 4 dimensions say a,b c,d only a,b are there in block attributes.How to capture the remaining 2 i.e c,d from the drawing.Please help me with this.
Regards,
Saranya.
Posted by: saranya | May 14, 2008 at 10:01 AM
Saranya - this is not an avenue to receive support. Please post your questions to one of our discussion groups or submit them via ADN, if you're a member.
Kean
Posted by: Kean | May 14, 2008 at 10:05 AM
Where i casn get & how install DWGThumbnail AciveX Control pls?
Posted by: mazdak | February 14, 2009 at 01:55 PM
As mentioned in the article, you need to be a member of the Autodesk Developer Network to get this particular control.
Kean
Posted by: Kean Walmsley | February 16, 2009 at 04:16 PM
Hi Kean,
I want to display the drawing coordinates in a label, and I need to do zoom in passing the coordinates to the zoom. Any idea of how to do this?
Posted by: Dennis | June 12, 2009 at 03:35 AM
Sorry, Dennis: this isn't a support forum, so please submit your questions via ADN (if you're a member) or one of our online discussion groups.
Kean
Posted by: Kean Walmsley | June 12, 2009 at 09:24 AM