| |
| 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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 02. Apr. 2004 08:14 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 02. Apr. 2004 11:45 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 02. Apr. 2004 14:53 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 05. Apr. 2004 06:26 <-- editieren / zitieren --> Unities abgeben:
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 05. Apr. 2004 06:27 <-- editieren / zitieren --> Unities abgeben:
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 06. Apr. 2004 14:23 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 07. Apr. 2004 10:49 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 07. Apr. 2004 18:20 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 124 Registriert: 19.08.2003 Revit 2019, ACMep2019, F360
|
erstellt am: 08. Apr. 2004 07:57 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 08. Apr. 2004 08:06 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 08. Apr. 2004 08:17 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 08. Apr. 2004 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
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 / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 08. Apr. 2004 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
|
RoSiNiNo Mitglied Konstrukteur
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 / zitieren --> Unities abgeben: Nur für Dressler
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
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 / zitieren --> Unities abgeben: Nur für Dressler
|
harryk Mitglied Projektleiter
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 08. Apr. 2004 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 08. Apr. 2004 08:47 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 08. Apr. 2004 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 08. Apr. 2004 09:00 <-- editieren / zitieren --> Unities abgeben:
|
RoSiNiNo Mitglied Konstrukteur
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 / zitieren --> Unities abgeben: Nur für Dressler
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
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 08. Apr. 2004 09:50 <-- editieren / zitieren --> Unities abgeben:
|
Dressler Mitglied technischer Angestellter
Beiträge: 301 Registriert: 19.11.2003 Acad 2002
|
erstellt am: 19. Apr. 2004 09:48 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 124 Registriert: 19.08.2003
|
erstellt am: 19. Apr. 2004 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für Dressler
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 |