Autocad - VBA - Delete a selection and insert a text

Posted on 2009-06-27
Last Modified: 2013-12-04
I need your help,
in Autocad by a sub in vba. I try to delete some text by a windows selection on the layout tab. The zone of my selection will be always the same.
My selection does'nt work. What am I forgetting?
After, Ii'm gonna have to insert a text at a special point. Could you give me some hint to write this code?


Private SubDelete()
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    startPoint(0) = 34.93151714#
    startPoint(1) = 3.30691694#
    startPoint(2) = 0#
    endPoint(0) = 42.058499#
    endPoint(1) = -0.0687933#
    endPoint(2) = 0#
    On Error Resume Next
     objSelection.Select acSelectionSetWindow, startPoint, endPoint
End Sub

Open in new window

Question by:joh90
1 Comment
LVL 11

Accepted Solution

darrenmcwi earned 50 total points
ID: 24739072
1) Don't make the sub-private unless you need to. That's a little more indepth than we'll want to get into here.

2) Dimension and set a new Selection Set object. Here, I'm looking to see if the selection set name already exists and if it does, I clear it or it's contents. If it doesn't exist, I then create it.

3) AddItems method is not used. This is for adding individual items to an existing selection set.

If this still doesn't work, here's a few things to check, are you in the proper page you're trying to select in?

Have you manually tried drawing a box using the coordinates in your code? This might flush out a problem if it's not where you think it is, if the UCS is different than you expect, etc.

Add code to zoom out slightly from those coordinates. When you select via Window/Crossing, etc., AutoCAD translates the screen pixed coordinates into the graphical coordinates you specified. If those coordinates (the object you are trying to select) are outside the drawing editor, you're not going to be able to select it as AutoCAD ignores coordinates once outside the drawing editor. If it watched all the coordinates, on-screen selection would take forever because AutoCAD would have to continuously check the entire drawing, not just what's on screen. It's one of many ways AutoCAD keeps it's performance up.
ublic Sub SSDelete()
    Dim objSelection As AcadSelectionSet
    Set objSelection = ThisDrawing.SelectionSets.Item("SS1")
    If objSelection Is Nothing Then
        Set objSelection = ThisDrawing.SelectionSets.Add("SS1")
    End If
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    Dim pts As Variant
    Dim pte As Variant
    startPoint(0) = 34.93151714
    startPoint(1) = 3.30691694
    startPoint(2) = 0#
    endPoint(0) = 42.058499
    endPoint(1) = -0.0687933
    endPoint(2) = 0#
    objSelection.Select acSelectionSetWindow, startPoint, endPoin
End Sub

Open in new window


Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question