Solved

Autocad - VBA - Delete a selection and insert a text

Posted on 2009-06-27
1
2,360 Views
Last Modified: 2013-12-04
Hi,
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?

Thanks
Joh

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

     objSelection.AddItems 

    objSelection.Erase    

 

End Sub

Open in new window

0
Comment
Question by:joh90
1 Comment
 
LVL 11

Accepted Solution

by:
darrenmcwi earned 50 total points
Comment Utility
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")

    Else

        objSelection.Clear

    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

    objSelection.Erase

End Sub

Open in new window

0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
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…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

763 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now