Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Abmessungen und Formen von Selectionsets

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Abmessungen und Formen von Selectionsets (2161 mal gelesen)
Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 02. Apr. 2004 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Wunsch1.jpg


Wunsch2.jpg

 
Hallo und schönen guten morgen an alle miteinander.
Vielleicht kann mir jemand bei einem der folgenden Probleme weiter helfen.
Beim 1. Wunsch reicht es mir vollkommen , wenn ich die Größe und Koordinaten meiner Auswahl bekommen könnte. 
Hier dazu mein kleiner 1. Codeversuch:

Private Sub CommandButton4_Click()
  Me.Hide ' UserForm ausblenden
    Dim ssetObj As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("TEST_SSET")
    ' Add objects to a selection set by prompting user to select on the screen
    ssetObj.SelectOnScreen
Dim minExt As Variant
    Dim maxExt As Variant
      ' and maximum extents of the box in the minExt and maxExt variables.
    ssetObj.GetBoundingBox minExt, maxExt
   
    ' Print the min and max extents
    MsgBox "The extents of the bounding box for the line are:" & vbCrLf _
        & "Min Extent: " & minExt(0) & "," & minExt(1) & "," & minExt(2) _
        & vbCrLf & "Max Extent: " & maxExt(0) & "," & maxExt(1) & "," & maxExt(2), vbInformation, "GetBoundingBox Example"

ssetObj.Erase
Me.Show
End Sub


Beim 2. Wunsch suche ich nach einer Möglichkeit alle Informationen die der ausgewählte Bereich enthalten zu bekommen. Dabei soll es egal sein, ob es nun ein Polygon ist oder was auch immer.


Dann noch eine Frage: Wie kann man eine der beiden so selektierten Auswahlen auf dem Bildschirm zu errechneten Koordinaten verschieben?

Das ganze soll später dazu dienen,daß die hier gezeichneten Körper möglichst platzsparend auf einer Fläche zusammengeschoben werden.


Ich würd mich über ein paar Tips und Vorschläge sehr freuen, da ich zur Zeit nicht so richtig weiter komme mit meinen Versuchen.

------------------
Gruß Dressler

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 02. Apr. 2004 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Dunkel ist deiner Worte Sinn...

> Hier dazu mein kleiner 1. Codeversuch

Und? Was ist das Problem damit?

> ... Möglichkeit alle Informationen die der ausgewählte Bereich enthalten zu bekommen

Did you mean " ... Möglichkeit, alle Informationen, die der ausgewählte Bereich enthält, zu bekommen" ?

Was für Informationen denn? Oder meinst du Geometrie? Soll das die Begrenzung für einen Auswahlsatz werden?

> auf dem Bildschirm zu errechneten Koordinaten verschieben?

Did you mean "verschieben" ?

Falls du das meinst (also nicht nur auf dem Bildschirm, sondern tatsächlich in der Zeichnung), dann hast du das Problem, dass du jedes einzelne Element verschieben musst - es sei denn, jemand weiss hier einen Weg, wie man über SendCommand "_move" einen Auswahlsatz übergibt. Ich weiss es leider nicht.

Grundsätzlich würde ich mal sagen, dass man bei solchen Aufgabenstellungen mit Lisp wesentlich besser bedient ist. VBA hat seine Stärken, wenn es um Verbindungen zu anderen Applikationen und um Dialoge geht, aber bei so etwas ist es einfach das falsche Werkzeug.

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 02. Apr. 2004 11:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel,

das Problem bei der Sache ist, daß das Objekt aus dem SelectionSet bei mir nicht mit dem GetBoundingBox zusammen funktioniert.

Möglichkeit, alle Informationen, die der ausgewählte Bereich enthält, zu bekommen" Ist das was ich meine.
Also alle Objekte und Geometrien mit der jeweiligen Position und den Abmaßen.

.....

Grundsätzlich würde ich mal sagen, dass man bei solchen Aufgabenstellungen mit Lisp wesentlich besser bedient ist. VBA hat seine Stärken, wenn es um Verbindungen zu anderen Applikationen und um Dialoge geht, aber bei so etwas ist es einfach das falsche Werkzeug.

Das finde ich schade aber, wenn keiner was anderes dazu sagen kann, dann muß ich das wohl so schlucken.

Danke trotzdem auch wenn mich das nicht wirklich weiter bringt.
Das Problem ist auch, daß ich mich nun dazu entschlossen habe VBA zu lernen und auch Stück für Stück weiter komme, bis ich mal wieder an meine Grenzen stoße.
Naja hab hier im Forum mal son Lisp-handbuch entdeckt, villeicht sollte ich es dann teilweise doch damit mal versuchen.
Oder halt mit Deinen AutoLisp Seiten.

Trotzdem wär es gut, wenn mir jemand zumindest bei dem 1. sicherlich einfacheren Problem weiter helfen kann.
Das Problem Nr. 2 mit der komplexen Form vielleicht nicht so funktioniert muß ich wohl so akzeptieren, wenn keiner nen Tip dazu hat.

Aber man muß doch irgendwie mehrere Objekte aus einem SelectionSet zusammen verschieben können, oder???? Vielleicht wenn man notfalls vorher nen Block nur zum verschieben erstellen würde?


------------------
Gruß Dressler

[Diese Nachricht wurde von Dressler am 02. Apr. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 02. Apr. 2004 13:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Wenn du ein SS verschieben möchtest, wie wäre es dann mit einer Funktion wie z.B.
Code:
'Schieben eines SelectionSets
Public Sub MoveSS(SS As AcadSelectionSet, FromPoint, ToPoint)
    Dim i As Long
   
    On Error GoTo Err_Control
    For i = 0 To SS.Count - 1
        SS.Item(i).Move FromPoint, ToPoint
    Next
Exit_Here:
    Exit Function
Err_Control:
    MsgBox Err.Description
    Err.Clear
    Resume Exit_Here
End Sub

Wenn du die "BoundingBox" eines SS möchtest, noch eine Funktion:

Code:
Public Function ssExtents(SS As AcadSelectionSet) As Variant

    Dim points(), c, i As Long
    Dim min, max, util As AcadUtility
   
    Set util = ThisDrawing.Utility
   
    c = 0
   
    For i = 0 To SS.Count - 1
        On Error Resume Next
        If Err Then
            Err.Clear
        Else
            SS.Item(i).GetBoundingBox min, max
            min = util.TranslateCoordinates(min, acWorld, acUCS, False)
            max = util.TranslateCoordinates(max, acWorld, acUCS, False)
            ReDim Preserve points(0 To c + 1)
            points(c) = min: points(c + 1) = max
            c = c + 2
        End If
    Next
       
    ssExtents = Extents(points)

End Function


Bei dem anderen Punkt stehe ich an, ich habe keine Ahnung was du genau möchtest.
Ich begebe mich jetzt ins wohlverdiente Wochenende. Euch allen ein schönes geruhsames WE.

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 02. Apr. 2004 14:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Dressler,

mit 160 Beiträgen bist du doch nicht ganz neu hier: Schreib doch zu deinem Code einfach dazu "Der funktioniert da und da nicht..." oder so etwas. Na ja, immerhin hat Roland das erkannt, worum es dir ging. Und das Zitieren von Beiträgen solltest du auch noch üben - was du da machst, ist recht verwirrend beim Lesen;-)

Die Kopierfunkion von Roland macht genau das, was ich gesagt habe: Einzeln kopieren, nach und nach. Diese beiden Funktionen sehen gut aus, und sie bringen dich ein ganzes Stück weiter.

Zum zweiten Problem: Du bist ja sehr zurückhaltend damit, was nun wirklich in diesem Bereich drin ist. Geometrie, das wissen wir nun. Es ist aber ein Unterschied, ob da nun Kreise drin sind oder XREFs;-) Im ersteren Fall wäre das Problem leichter anzugehen. Dann wäre die Frage: Handelt es sich um geschlossene Konturen (Kreise, Ellipsen, Polygonzüge usw.) oder auch um Linien? Im ersteren Falle gäbe es vielleicht Ansätze über Boolesche Operationen mit Regionen. Der andere Weg wäre über die Auswahl in AutoCAD: Poly-Fenster bzw. -Kreuzen. In Lisp kein Problem (runde Konturen werden angenähert), aber keinen blassen Dunst, wie das in VBA gehen soll.

Ist ja schon schwierig in Lisp: Bisher ist mir immer noch keine Routine bekannt, die wirklich feststellen kann, ob ein Punkt inner- oder ausserhalb eines Polygonzugs liegt. Ich kenne nur 'praktische' Ansätze, die 99 mal gutgehen und dann einmal durch den Kamin fahren. Und selbst die sind in Lisp Hunderte von Zeilen lang - in Basic werden das dann Tausende:-(((

Also: Man müsste schon was genaueres wissen.

Gruß, Axel

Hast du auch einen Vornamen?

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Apr. 2004 14:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

hi dressler,
ich denke du möchtest zu fertigende werkstücke so auf deinem ausgangsmaterial setzen das geringst möglicher verschnitt entsteht. rosinino hat dir nen lehrbuch beispiel für das positionieren gegeben, in deinem fall müsstest du in einer 'etwas' aufwendigeren schleife deine neuen koordinaten ermitteln, quasi puzzlen bis die polygone auf's ausgangsmaterial passen (konturabstand?).

im ersten ansatz über die boundingbox wirst du aber trotz ggf. mehrerer durchläufe nie optimale ergebnisse erziehlen, ausser deine objekte sind immer rechteckig, wie die boundingbox halt. im zweiten ansatz könntest du grundformen wie z.b. kreise oder L-shapes klassifizieren und diese gesondert behandeln, die freien ecken mitbenutzen.

ein weiterer ansatz wäre unabhängig von der geometrie solange die objekte zu verschieben bis die grösstmögliche prozentuale ausnutzung erreicht ist ohne das die objekte sich überschneiden, sowas kann lange laufen. wird aber z.b. in der bekleidungs industrie verwendet um schnittmuster auf stoffbahnen zu verteilen, ich bin mir sicher das du im netz dazu informationen oder software findest. vielleicht kommen dir ja dann weitere ideen.

vg, harry

[Diese Nachricht wurde von harryk am 02. Apr. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 05. Apr. 2004 06:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke an alle die mir nun doch bei meinen Fragen weitergeholfen haben.
Damit lässt sich doch gut arbeiten.

------------------
Gruß Dressler

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 05. Apr. 2004 06:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ach noch etwas Axel.....


mein Vorname ist Björn.

------------------
Gruß Dressler

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 06. Apr. 2004 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Harry,

hier nun nochmal kurz etwas zu Deinem Beitrag. Es geht mir im ganzen um eine Plattenoptimierund, daß ist richtig. Da der Konturabstand meistens verschieden ist, weil ich aus dem Holzbereich komme und für verschiedene Werkstoffe unterschiedlich dicke Fräser benutzt werden, muß dieser variabel sein.
Das mit der rechteckicken BoundigBox wäre Anfangs durchaus noch OK, da man vorher notfalls schnell von Hand die "Werkstücke" ausrichten könnte.
Sollte mein eigentlicher Wunsch so wie in dieser Art: http://ww3.cad.de/foren/ubb/Forum259/HTML/000216.shtml erfüllt werden können, dann kann man schonmal das drehen von Hand ersparen.
Deine letzte Idee ist wirklich nen guter Ansatz und ich werde mal versuchen damit weiter zu machen, da ich so am meisten "sparen" könnte.

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 07. Apr. 2004 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


beispiel.dwg.txt

 
Hallo und schönen guten Morgen,

ich hab den Code von Roland nun mal ausprobiert und den Code von Robert in ein Modul mit dem Namen "Bounding" reingetan.

hier also der Code im Modul Bounding:

Public Function ssExtents(SS As AcadSelectionSet) As Variant
    Dim points(), c, i As Long
    Dim min, max, util As AcadUtility
    Dim Extents
    Set util = ThisDrawing.Utility
    c = 0
    For i = 0 To SS.Count - 1
        On Error Resume Next
        If Err Then
            Err.Clear
        Else
            SS.Item(i).GetBoundingBox min, max
            Debug.Print min
            Debug.Print max
           min = util.TranslateCoordinates(min, acWorld, acUCS, False)
            max = util.TranslateCoordinates(max, acWorld, acUCS, False)
            Debug.Print min
            Debug.Print max
            ReDim Preserve points(0 To c + 1)
            points(c) = min: points(c + 1) = max
            c = c + 2
        End If
    Next
       
    ssExtents = Extents(points)

End Function


Dann habe ich folgenden Code in mein UserForm geschrieben:


Private Sub CommandButton1_Click()
Me.Hide
Dim ssetObj As AcadSelectionSet, SS As AcadSelectionSet
    Set ssetObj = ThisDrawing.SelectionSets.Add("TestSS") ' Objekte zu TestSS hinzufügen
     ssetObj.SelectOnScreen ' Objekte auswählen

Debug.Print Bounding.ssExtents(ssetObj) ' Hier erhoffe ich mir nun, daß zumindest irgendwas ausgedruckt wird :-(
' Ich möchte halt möglichst die Werte der BoundingBox und am besten die Position haben

ssetObj.Delete ' Auswahlsatz für neue Auswahl löschen
Me.Show
End Sub


Leider passiert bei dem Code bisher noch nichts. Ich erhoffe mir z.B. die Daten 1. der BoundingBox und 2. die Position von der zum verschieben an den richtigen Platz.
Ich habe nun gerade begonnen eine Listview zu erstellen, was Linien die man per Tastatur eingibt (Start-X, Start-Y, End-X, End-Y) anordnen kann.
Das ganze will ich dann halt vom Prinzip mit den SSets auch machen und im Laufe noch optimieren.
In der angehangenen Datei sind mal ein paar Beispiele der zu positionierenden Objekte die so in Frage kommen könnten.

Später soll dann mal was entstehen, was Verschachtelungen zulässt die auf einem Konturabstand basieren. Nicht nur auf der BoundingBox wo der Verschnitt doch noch viel zu hoch ist.
Aber Schritt für Schritt...

------------------
Gruß Björn

[Diese Nachricht wurde von Dressler am 07. Apr. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 07. Apr. 2004 18:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich


ssetUklasse.dvb.txt

 
hi,
hab deinen code erstmal nicht weiter beachtet weil kann nicht gehen, aus einigen gründen. aber damit du weiter kommst, hier mein ansatz mit klasse. wieder nur hingehustet aber ich bin sicher es reicht für nen AHA!

ansonsten ist's wie beim übers wasser laufen, musst nur wissen wo die steine liegen...

harry

[Diese Nachricht wurde von harryk am 07. Apr. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

Revit 2019, ACMep2019, F360

erstellt am: 08. Apr. 2004 07:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

hi,
kurzeinstieg:

testset wird als neu klasse instanziert, der wird dein selektion set übergeben. die methode GetBoundingBox (in der Klasse eine stinknormale public function) kann jetzt wie du es schon von vba kennst mit testset.getboundingbox aufgerufen. damit werden aber innerhalb der klasse die variblen minpt und maxpt gefüllt.

ergänz die klasse zu spass mit:

public function Hello(strMsg as string)
MsgBox "strMsg"
end function

und ruf das ganze in dem modul dann mit testset.Hello "tach auch..."
klar??

für weiteres verständnis habe ich in der klasse weitere methoden (funktionen) eingebaut die es dir erlauben alle elemente im sset zu drehen und zu schieben.

siehe testset.move... oder testset.rotate...

die werden nachdem die Boundingbox gezeichnet wurde ausgeführt, deshalb liegen die elemente dann natürlich nicht mehr in der box.

der kniff an klassen liegt ein bisschen in den deklarationen von funktionen und variablen, private, public etc. ich hoffe das grundgerüst öffnet dir erstmal weitere möglichkeiten. wenn du weitere fragen hast?

gruss,harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 08. Apr. 2004 08:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Harry,

hab den code sofort, als ich eben angekommen bin ausprobiert.
Funktioniert soweit alles super, nun bin ich gerade dabei alles zu verstehen und bin mir sicher, daß ich so gut voran komme.
Was ich bisher nocht nicht verstehe ist, daß das Objekte was ich am Bildschirm auswähle nach der BoundingBox nicht mehr da ist.
Aber das bekomme ich schon hin, schließlich hast Du ja schon einige Steine ins Wasser geworfen.
Vielen Dank für die Hilfe.

------------------
Gruß Björn

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 08:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Warum zeichnest du die BoundingBox nicht in deiner Klasse?
Am besten wäre es, du initialisierst die Klasse und übergibst dein SS gleich am Anfang.
Dann kannst du damit Anfangen was immer du möchtest.
Wenn du das SS schiebst, schiebst du auch die BoundingBox. Genauso funktioniert es natürlich auch beim drehen,...
Oder findest du die Idee nicht gut.
Wenn man mehrere SS hat muß man halt die Klasse öffter anlegen, sollte aber auch kein Problem sein, oder?

z.B.
SSKlasse.SetObject SS            'Übergibt SelectionSet
SSKlasse.DrawBoundingBox True    'Gibt an, ob BoundingBox gezeichnet werden soll
SSKlasse.Move Point1, Point2      'Verschiebt SelectionSet
SSKlasse.GetBoundingBoxMax
SSKlasse.GetBoundingBoxMin


Das wäre doch eine Idee, oder?

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 08. Apr. 2004 08:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin Roland,

die Anzahl der SS ist nie vorher absehbar. Kann man das denn so variabel halten, daß man X-Klassen hat? Oder ist die Anzahl der SS durch die Anzahl der Klassen begrenzt?

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 08. Apr. 2004 08:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

hi roland,
du hast ja völlig recht, aber wie ich schonmal sagte, ich werd und kann nicht fertigen code hier reinstellen den ich selbst nicht brauche. soweit geht meine hilfsbereitschaft ehrlich gesagt nicht.

aber wenn du lust hast änder den code und stell ihn wieder rein, könnte sich auf die art und weise zu einem nützlichen tool für einige entwickeln.

für die einzelnen teile würd ich dann collections vorschlagen, easy handling! desweiteren noch verweise auf objektreferenzen um die elemente zusammenhalten zu können, und und und .....

gruesse, harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 08:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Ich denke mal das man das mit einem Array machen könnte, sollte man mal versuchen.

Dim SSKlasse() as New SSKlassenmodul

Redim Preserve SSKlasse(i)    'i ist die Anzahl der SS

Ich habe es allerdings noch nie Versucht, es wäre aber einen Versuch wert. Außer es meldet sich jemand der es besser weiß 

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 08:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Hallo Harry,
im Moment hab ich leider nicht einmal Zeit ein paar meiner "Projekte" fertig zu stellen. Es war auch nur ein Vorschlag, denn wenn man so etwas schon machen möchte, dann gleich ordentlich.

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 08. Apr. 2004 08:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

aaaaahhhhrrrrgg...

collections! und mit redim ist schluss, glaubts mir. ist so was ähnliches wie ne liste in lisp, nur besser.

gagagaggag....

harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 08:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

War doch nur ein erster Gedanke  , bitte nicht böse werden.
Also, Björn, jetzt kannst du dich an die Arbeit machen, mit Collections natürlich  .

Leider kann ich heute nicht mehr viel zu diesem Thema beitragen, ich hoffe aber ihr schafft es nun alleine    .

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 08:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Eines hätte ich ja beinahe vergessen.

"FROHE OSTERN"

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 08. Apr. 2004 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

böse, ich? niemaaaaaals.

frohe ostern euch dann natürlich auch!

harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 08. Apr. 2004 08:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke an euch beide.

Damit komme ich ganz sicher weiter und hab schon alleine deswegen ein grinsen auf meinen Lippen. Ich werd mich dann auch erstmal versuchen mit meinem Frageneifer zurück zu halten.
Nur noch eine letzte Frage, ob eigentlich auch folgendes möglich ist:

Es geht dabei um das gleiche Thema, wobei es halt eine kleine Steigerung ist. Ich arbeite in einer Tischlerei und würd halt wenn dieser Teil den ich bisher habe erstmal steht das ganze verfeinern.

Beim fräsen der einzelnen Objekte wird immer ein x-beliebiger Fräser mit dem Durchmesser X verwendet.

Kann man bei den einzeln gewählten SS sagen sie sollen theoretisch um diesen Abstand X nach außen versetzt werden? Und dann irgendwie alles versuchen so dicht zusammen zu schieben, daß keine Überschneidung entsteht?

Es geht mir dabei darum:
1. Kann man ein Konturversetzen erreichen?
2. Kann man "Kollisionen" dieser versetzten Konturen überprüfen?

Ach ja und frohe Ostern.


------------------
Gruß Björn

[Diese Nachricht wurde von Dressler am 08. Apr. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 08. Apr. 2004 08:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

boah,

hab ich auch schon drüber nachgedacht. feststellen welches polygon aussen liegt müsste mit .selectpolygon o.ä. gehen, die elemente im auswahlsatz einfach gegeneinander überprüfen, es wird eins dabei sein das anzahl elemente -1 aus dem ursprünglichen satz enthält.

die objektmethode offset erledigt den rest für dich, +werte versetzen nach aussen, -werte nach innen.

kollision prüfen könnte über intersect gehen oder du erzeugst regionen aus der aussenkontur dann hast nochn paar mehr möglichkeiten.

gruss, harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 08. Apr. 2004 09:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

DAAAANNNNKEEE Harry,

mehr wollte ich fürs erste wirklich nicht wissen.
Nun kann ich auch heute Nacht ruhig schlafen.

Gruß Björn

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RoSiNiNo
Mitglied
Konstrukteur


Sehen Sie sich das Profil von RoSiNiNo an!   Senden Sie eine Private Message an RoSiNiNo  Schreiben Sie einen Gästebucheintrag für RoSiNiNo

Beiträge: 1126
Registriert: 09.10.2002

Acad 2011-deutsch, Express Tools
3ds Max 2010
Win 7-Professional
HP Workstation Z400, 6GB
GeForce GTX 470

erstellt am: 08. Apr. 2004 09:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich

Du kannst heute Nacht ruhig schlafen, bei dieser Aufgabe könnte ich das nicht. Ich trau mich nicht an so ein großes Problem ran. Aber trotzdem wünsche ich dir weiterhin viel Glück dabei.

------------------
Roland

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 08. Apr. 2004 09:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ach Roland,

zumindest kann ich mir nun weiter Gedanken machen wie ich das ganze Lösen kann. Und das lässt mich ruhiger schlafen.

Björn

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dressler
Mitglied
technischer Angestellter


Sehen Sie sich das Profil von Dressler an!   Senden Sie eine Private Message an Dressler  Schreiben Sie einen Gästebucheintrag für Dressler

Beiträge: 301
Registriert: 19.11.2003

Acad 2002

erstellt am: 19. Apr. 2004 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


ssetUklasse.dvb.txt

 
Schönen guten Morgen.

Ich hab nun nach ein wenig probieren so einiges hinbekommen.
Deswegen hab ich mal meinen vorläufigen Code angehangen und hab nun neue Fragen.
Vielleicht kann mir jemand dabei weiter helfen.
In dem Code fülle ich nun zum drehen ein Listview mit dem Winkel, und den Abmaßen beim jeweiligen Drehwinkel des Elements.
Als nächstes will ich nun eine Überprüfung der Größe der Fläche einfügen, um die beiden kleinsten Flächen als Auswahlmöglichket zu behalten.
1. Die Überprüfung bekomme ich schon noch hin, aber wie kann man die verschiedenen SS "speichern"?
2. Außerdem finde ich meine derzeitige Übergabe der Variablen für die einzelnen Koordinaten umständlich und wollte mal fragen, ob man nicht auch anders darauf zugreifen kann, ohne für jede Variable eine eigene Funktion zu erstellen?

Ich hoffe, daß ich meine Fragen einigermaßen Verständlich ausgedrückt habe und das mir jemand weiter helfen kann.

------------------
Gruß Björn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

harryk
Mitglied
Projektleiter


Sehen Sie sich das Profil von harryk an!   Senden Sie eine Private Message an harryk  Schreiben Sie einen Gästebucheintrag für harryk

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 19. Apr. 2004 10:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dressler 10 Unities + Antwort hilfreich


ssetUklasse.dvb.txt

 
boa, ey, ich dacht du wärst schon längst fertig..

1. siehe anhang, hab die ne collection eingebaut die ich mit einer neuen taste abrufe. knallt aber mit dem auswahlsatz beim 2. starten, da muss noch ne funktion rein die den sset löscht.

2. siehe auch anhang, die klasse stellt dir die properties minPoint und maxPoint bereits zur verfügung, hab deine funktion entsprechend geändert.

gruss,harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz