+ Reply to Thread
Results 1 to 3 of 3
  1. #1
    Forum Newbie
    Using
    AutoCAD 2007
    Join Date
    Dec 2014
    Posts
    3

    Default Drawing cylinders

    Registered forum members do not see this ad.

    I use AutoCAD 2007 and program in VBA. Could you help with drawing cylinders in VBA. The "AddCylinder" draws only in WCS meaning I get cylinders in only one direction. I need cylinders to the UCS I set using the VBA program.

  2. #2
    Full Member
    Using
    AutoCAD 2010
    Join Date
    Oct 2013
    Posts
    78

    Default

    Quote Originally Posted by Ramesh PK View Post
    I use AutoCAD 2007 and program in VBA. Could you help with drawing cylinders in VBA. The "AddCylinder" draws only in WCS meaning I get cylinders in only one direction. I need cylinders to the UCS I set using the VBA program.
    you can rotate the cylinder after creating it

    here's a quick and dirty code combinating two AutoCAD Active X and VBA reference examples
    Code:
    Option Explicit
    Sub AddAndRotateCylinder()
        ' This example creates a cylinder in model space.
     
        Dim cylinderObj As Acad3DSolid
        Dim radius As Double
        Dim center(0 To 2) As Double
        Dim height As Double
     
        ' Define the cylinder
        center(0) = 0#: center(1) = 0#: center(2) = 0#
        radius = 5#
        height = 20#
     
        ' Create the Cylinder (3DSolid) object in model space
        Set cylinderObj = ThisDrawing.ModelSpace.AddCylinder(center, radius, height)
        ZoomAll
        MsgBox "Cylinder created"
     
     
        ' Change the viewing direction of the viewport
        Dim NewDirection(0 To 2) As Double
        NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
        ThisDrawing.ActiveViewport.Direction = NewDirection
        ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
        ThisDrawing.Regen True
     
        ' Define the rotation axis with two points
        Dim rotatePt1(0 To 2) As Double
        Dim rotatePt2(0 To 2) As Double
        Dim rotateAngle As Double
     
        rotatePt1(0) = -3: rotatePt1(1) = 4: rotatePt1(2) = 0
        rotatePt2(0) = -3: rotatePt2(1) = -4: rotatePt2(2) = 0
        rotateAngle = 30
        rotateAngle = rotateAngle * 3.141592 / 180#
     
        ' Draw a line between the two axis points so that it is visible.
        ' This is optional. It is not required for the rotation.
        Dim axisLine As AcadLine
        Set axisLine = ThisDrawing.ModelSpace.AddLine(rotatePt1, rotatePt2)
        axisLine.Update
        MsgBox "Rotate the box 30 degrees about the axis shown.", , "Rotate3D Example"
        ' Rotate the box
        cylinderObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
        ThisDrawing.Regen True
        MsgBox "The cylinder is rotated 30 degrees.", , "Rotate3D Example"
    End Sub

  3. #3
    Forum Newbie
    Using
    AutoCAD 2007
    Join Date
    Dec 2014
    Posts
    3

    Default Thanks

    Registered forum members do not see this ad.

    Thanks for a quick response..!

Similar Threads

  1. Cylinders and drawing plans
    By patrick91190 in forum AutoCAD Beginners' Area
    Replies: 4
    Last Post: 4th Apr 2012, 04:20 pm
  2. Editing Cylinders
    By lethalcav in forum AutoCAD 3D Modelling & Rendering
    Replies: 3
    Last Post: 15th Mar 2010, 01:30 am
  3. Radius 2 cylinders
    By spursnutter in forum AutoCAD 3D Modelling & Rendering
    Replies: 25
    Last Post: 16th Dec 2008, 01:15 pm
  4. Circles/Cylinders in 3d
    By bamnet in forum AutoCAD General
    Replies: 2
    Last Post: 24th Jan 2005, 05:30 pm
  5. printing 3d cylinders and cones
    By maria lucia in forum AutoCAD General
    Replies: 3
    Last Post: 22nd Jun 2004, 12:29 am

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts