.NET

.NET

Reply
Active Contributor
bvyas89
Posts: 26
Registered: ‎01-16-2014
Message 1 of 7 (404 Views)
Accepted Solution

Import Triangle from excel using modal form of c#.net.

404 Views, 6 Replies
02-07-2014 12:12 AM

Hi 

I have an excel file with a column containing lower width,upper width and height like follows:

Row 1  point
Row 2 10
Row 3 7


I am looking for a .Net code that can read each row cell and draw the triangle automatically in AutoCAD window. I am having a bout 100 rows  and hence I prefer that the code will display all triangle and another polygons at once in AutoCAD window and not draw them one by one. 

I want to open excel file from user read data from excel show it in textbox on form and when user press draw button triangle should be drawn. I wish to have a .Net code to allow batch Trianle drawing instead.
I am new in programming. Please help me as earliest.
Thanks a lot for any assistance
Mentor
mzakiralam
Posts: 231
Registered: ‎11-09-2012
Message 2 of 7 (399 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-07-2014 12:31 AM in reply to: bvyas89
HI, I can not open your drawing file as I am using ACAD2011. Can you save the file in 2011 Format? or Can you explain lower width and upper width? I did not get what you mean by lower width and upper width. I think with lower width you mean the base of a triangle. I did not get the meaning of upper width. Where do you want to draw the triangle? In your description you have stated that row 1 is Point but in the Excel file row 1 is upper width which is also confusing to me. Kindly make clear so that I can help you.
Active Contributor
bvyas89
Posts: 26
Registered: ‎01-16-2014
Message 3 of 7 (395 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-07-2014 01:01 AM in reply to: mzakiralam

hi,
Please find Attach file. I am working in civil company.  I am intending to Draw tower from user input in excel. this  exercise wiil be beneficial to me to  complete my task. Lower width is base of triangle and height is height of triangle. Upper Width is not applicable here.

 

Actually i think that if i consider one starting point i can draw base line of traingle from  lower width as i got secon poin. and from base line i can calculate mid point that x and from height y for upper point then it is posssible to me to draw triangle.. 

hope you can help me for this.

thank you so much for your prompt reply. 

Active Contributor
bvyas89
Posts: 26
Registered: ‎01-16-2014
Message 4 of 7 (387 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-07-2014 01:39 AM in reply to: bvyas89

hope this drawing will clear what i exactly  mean.

Mentor
mzakiralam
Posts: 231
Registered: ‎11-09-2012
Message 5 of 7 (361 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-07-2014 07:04 AM in reply to: bvyas89

Hi ,

With below code you can start your project.

 

trian.JPG

 

 <CommandMethod("TRA")> Public Sub TriangleDraw()
        'declare the form to open
        Dim frmTriangle As TestTraingle = Nothing
        If frmTriangle Is Nothing Then
            frmTriangle = New TestTraingle()
        ElseIf frmTriangle.IsDisposed Then
            frmTriangle = New TestTraingle()
        End If
        'show the form
        Application.ShowModelessDialog(Application.MainWindow.Handle, frmTriangle, False)

    End Sub

 

 

Imports System.IO
Imports Microsoft.Office.Interop

Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.DatabaseServices
Public Class TestTraingle
    Dim tra_upperwidth As String = Nothing
    Dim tra_lowerwidth As String = Nothing
    Dim tra_height As String = Nothing
    Private Sub TestTraingle_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Try
            'place the excelfile path 
            Dim excelFilePath = "Place your excel file path"
            If File.Exists(excelFilePath) Then
                Call READEXCELFILE(excelFilePath)
            End If
            TextBox1.Text = tra_upperwidth
            TextBox2.Text = tra_lowerwidth
            TextBox3.Text = tra_height
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
       
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'get current document
        Dim doc As Document = Application.DocumentManager.MdiActiveDocument
        Dim db As Database = doc.Database
        'lock document as using modeless form
        Using docLock As DocumentLock = doc.LockDocument
            Using tx As Transaction = db.TransactionManager.StartTransaction()
                'open blocktable
                Dim bt As BlockTable = tx.GetObject(db.BlockTableId, OpenMode.ForRead)
                'open model space for write
                Dim ms As BlockTableRecord = tx.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
                'converte text value
                Dim uWidth As Double = CDbl(TextBox1.Text)
                Dim base As Double = CDbl(TextBox2.Text)
                Dim tHeight As Double = CDbl(TextBox3.Text)
                Dim pt1 As Point2d = New Point2d(0, 0)
                Dim pt2 As Point2d = New Point2d(base, 0)
                Dim pt3 As Point2d = New Point2d(base / 2, tHeight)
                'draw traiangle
                Dim tra As Polyline = New Polyline()
                tra.AddVertexAt(0, pt1, 0, 0, 0)
                tra.AddVertexAt(1, pt2, 0, 0, 0)
                tra.AddVertexAt(2, pt3, 0, 0, 0)
                tra.Closed = True
                'add triangle in model space
                ms.AppendEntity(tra)
                tx.AddNewlyCreatedDBObject(tra, True)
                tx.Commit()
            End Using
        End Using
    End Sub
    Public Sub READEXCELFILE(filePath As String)
        'read excel file
        Try
            Dim xlApp As New Excel.Application
            Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Open(filePath)
            Dim xlSheet As Excel.Worksheet = xlWorkBook.Worksheets("Sheet1")
            'get all cells value
            tra_upperwidth = xlSheet.Cells(1, 2).Value
            tra_lowerwidth = xlSheet.Cells(2, 2).Value
            tra_height = xlSheet.Cells(3, 2).Value
            xlWorkBook.Close()
            'quit excel application
            xlApp.Quit()
            'relaese excel object
            ReleaseExcelObject(xlWorkBook)
            ReleaseExcelObject(xlApp)
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try

    End Sub
    Public Shared Sub ReleaseExcelObject(obj As Object)
        'release excel object after finishing
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Autodesk.AutoCAD.Runtime.Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub


End Class

 

Mentor
mzakiralam
Posts: 231
Registered: ‎11-09-2012
Message 6 of 7 (358 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-07-2014 07:09 AM in reply to: bvyas89
Active Contributor
bvyas89
Posts: 26
Registered: ‎01-16-2014
Message 7 of 7 (323 Views)

Re: Import Triangle from excel using modal form of c#.net.

02-10-2014 01:22 AM in reply to: mzakiralam
Thank you so much Mzakiralam... Its work fine ....
Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.