| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Acad Suchfunktion mit VBA ?? (1276 mal gelesen)
|
felfel Mitglied EDV Dienstleister

 Beiträge: 18 Registriert: 19.11.2002 alles wird gut ...
|
erstellt am: 16. Jul. 2004 21:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich möchte gerne mit VBA die ACAD Suchfunktion mit Zomm auf den gesuchten Test ausführen. Habt ihr so etwas schon mal gemacht bzw. den VBA Code dafü - bin selbst nur VBA Leie !! ------------------ CAE - Consulting Juergen Felberbauer mobil.: +43 699 20691979 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
felfel Mitglied EDV Dienstleister

 Beiträge: 18 Registriert: 19.11.2002 alles wird gut ...
|
erstellt am: 16. Jul. 2004 21:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich möchte gerne mit VBA die ACAD Suchfunktion mit Zomm auf den gesuchten Text ausführen. Habt ihr so etwas schon mal gemacht bzw. den VBA Code dafür - bin selbst nur VBA Leie !! ------------------ CAE - Consulting Juergen Felberbauer mobil.: +43 699 20691979 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 17. Jul. 2004 12:49 <-- editieren / zitieren --> Unities abgeben:          Nur für felfel
Hi Jürgen, für einzeiligen Text könntes so etwa gehen, wäre denke mal auch noch auf MText erweiterbar, bzw. könnte man noch ggf. mit Like operieren. Gruss, Nancy --
Code:
Sub xxx() Dim i&, s$, min, max s = InputBox("looking for ?", "Zoom") If s = "" Then Exit Sub With ThisDrawing.ModelSpace For i = .Count - 1 To 0 Step -1 If TypeName(.Item(i)) = "IAcadText" Then If LCase(.Item(i).TextString) = LCase(s) Then .Item(i).GetBoundingBox min, max ZoomWindow min, max Exit For End If End If Next End With End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Marco Lorenz Mitglied Softwareentwickler, freier Inventor & AutoCAD Händler

 Beiträge: 59 Registriert: 18.09.2001 Win NT,2k,XP Pro Acad+Mechanical2k-2005, Inventor 5-9
|
erstellt am: 18. Jul. 2004 23:16 <-- editieren / zitieren --> Unities abgeben:          Nur für felfel
Wenn Du die Datenbank nach einzelnen Elementen durchsuchst, kann das ziemlich lange dauern, bei größeren Zeichnungen. Du kannst mit einem Selectionset arbeiten. z.B. so: Dim Gpcode(0) As Integer, Datavalue(0) As Variant, SS1 as AcadSelectionSet, Object as AcadObject Gpcode(0) = 0 Datavalue(0) = "*TEXT" ' "*TEXT" spricht sowohl Texte als auch MTexte an... Set SS1 = ThisDrawing.SelectionSets.Add("Texte") SS1.Select acSelectionSetAll, , , Gpcode, Datavalue MsgBox CStr(SS1.Count) & " Texte gefunden..." For Each Object in SS1 .... Next Object Die Werte der Felder Gpcode und Datavalue kannst Du beliebig erweitern, funktionieren genau wie die Filter in AutoCAD, mit den DXF-Gruppencodes. Funktioniert rasend schnell. Leider funktionierts nicht, wenn Du Elemente in Blöcken suchst, dann mußt Du Dich einzeln durch die Blocks durchsuchen, das dauert...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |