| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: SelectSet & Anzeige (601 mal gelesen)
|
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 05. Jul. 2006 12:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Kennt jemand eine Möglichkeit, wie ein mit Code zusammengebasteltes SelectSet (AcadEntities), auch in der Zeichung sichtbar gemacht werden kann - sprich: wie wenn ich die Elemente mit der Maus selektiert hätte? Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 05. Jul. 2006 12:55 <-- editieren / zitieren --> Unities abgeben:          Nur für BJ
|
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 05. Jul. 2006 17:10 <-- editieren / zitieren --> Unities abgeben:         
Ist mir bekannt, ist aber nicht das gleiche! Wenn mit der Maus selektiert wird, erscheinen auch die Griffe auf den Elementen, mit "Highlight" nicht! Hintergrund: In der API gibt es nicht die Methode für einen Zoom auf ein Objekt, also wollte ich mir dies nachbasteln, was aber bisher darann scheitert, dass das SelectSet nicht richtig angezeigt wird. Gibt's dafür eine Lösung? Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 05. Jul. 2006 19:12 <-- editieren / zitieren --> Unities abgeben:          Nur für BJ
Hallo BJ, Anbei ein Beispiel um die maximalen und minimalen Koordinaten eines Selectionsets auszulesen. Danach wird am Ende der Selectionset auf Maximale Größe rangezoomt. '@~~~~ Get the bounding box of a selection set ~~~~@ Public Function GetSSBoundingBox(Min As Variant, _ Max As Variant, objSet As AcadSelectionSet) As Boolean Dim dblMaxX As Double Dim dblMaxY As Double Dim dblMinX As Double Dim dblMinY As Double Dim varMin As Variant Dim varMax As Variant Dim objEnt As AcadEntity Dim objUtil As Object On Error GoTo Err_Control Set objUtil = ThisDrawing.Utility objSet.Item(0).GetBoundingBox varMin, varMax dblMinX = varMin(0) dblMinY = varMin(1) dblMaxX = varMax(0) dblMaxY = varMax(1) 'Get the highs and lows For Each objEnt In objSet objEnt.GetBoundingBox varMin, varMax If varMin(0) < dblMinX Then dblMinX = varMin(0) End If If varMin(1) < dblMinY Then dblMinY = varMin(1) End If If varMax(0) > dblMaxX Then dblMaxX = varMax(0) End If If varMax(1) > dblMaxY Then dblMaxY = varMax(1) End If Next objEnt 'Fill the arrays objUtil.CreateTypedArray Min, vbDouble, dblMinX, dblMinY, 0 objUtil.CreateTypedArray Max, vbDouble, dblMaxX, dblMaxY, 0 GetSSBoundingBox = True Exit_Here: Exit Function Err_Control: MsgBox Err.Description Resume Exit_Here End Function Public Sub Test_GetSSBoundingBox() Dim acSelSet As AcadSelectionSet Dim varMin As Variant Dim varMax As Variant Dim dblPnts(0 To 5) As Double
Set acSelSet = ThisDrawing.SelectionSets.Add("TestGetSSBB") acSelSet.SelectOnScreen GetSSBoundingBox varMin, varMax, acSelSet ZoomWindow varMin, varMax End Sub Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 05. Jul. 2006 21:42 <-- editieren / zitieren --> Unities abgeben:          Nur für BJ
zu ..ist mir bekannt, aber nicht das gleiche.... tja, da sieht man mal wieder, wie wichtig eine korrekte Frageformulierung ist... fürs Zoom2OBJ hier ne Lisplösung... und zu deinem Selectionset ... die Griffe hat bloß das Activselectionset..in Lispgibts dafür die Funktion sssetfirst ... z.b. was auswählen ... (setq a(ssget)) was anderes machen und Auswahl unmarkieren und dann (sssetfirst a a) ..ob ActivX was ähnliches bereitstellt :keine Ahnung ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 06. Jul. 2006 08:26 <-- editieren / zitieren --> Unities abgeben:         
@Carsten1210: Danke für das Beispiel, aber auch hier muss der User eingreifen, was ich eigendlich vermeiden wollte. Totzdem DANKE für deine Unterstützung! @CADmium: Eine korrekte Fragestellung ist immer angebracht, da gebe ich dir recht. Dachte aber, dass ein " - sprich: wie wenn ich die Elemente mit der Maus selektiert hätte?" genau genug wäre. Naja, man kann nicht erwarten, dass ein jeder meine wirren Gedankenergüsse auch versteht Nix für ungut! Gruß, BJ
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 06. Jul. 2006 15:29 <-- editieren / zitieren --> Unities abgeben:         
Wem's interessiert: Habe das Problem so gelöst (VB), indem ich zuerst aus den Elementen eine Gruppe gebildet habe, und diese dann mit Sendkeys-Anweisungen zoome. Naja, nicht gerade elegant, aber es funktioniert ohne User-Eingriff. Gruß, BJ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 06. Jul. 2006 15:52 <-- editieren / zitieren --> Unities abgeben:          Nur für BJ
Hallo BJ, Dann hättest du in dem Code oben ja auch die SelectOnScreen-Anweisung gegen deine Auswahlsatz-Sammlung tauschen können und es wird auf die Grenzen des Auswahlsatzes gezoomt. Da brauchst du dann aber kein Sendkeys / Sendcommand. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
BJ Mitglied PLM System Administrator
 
 Beiträge: 488 Registriert: 20.12.2002
|
erstellt am: 06. Jul. 2006 16:38 <-- editieren / zitieren --> Unities abgeben:         
|