| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: flächen mit farbe füllen (16847 mal gelesen)
|
sTixi Mitglied
Beiträge: 26 Registriert: 30.03.2005
|
erstellt am: 03. Jul. 2005 15:51 <-- editieren / zitieren --> Unities abgeben:
Hallo ich hab mal ne frage ich habe gerade mit VBA flächen in Autocad erzeigen können dank eurer hilfe.. das klappt auch prima... nur was ich noch gern hätte ict, daß er diese flächen mit farben ausfüllt.. wie ist denn da der code dazu.. habe im forum gesucht aber nix gefunden. danke sTixi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 03. Jul. 2005 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für sTixi
Tja leider weiss ich nicht, welcher Beitrag dir hier im Forum bzw. welches Mitglied dir hier geholfen hat (Ein Link auf den betreffenden Beitrag wäre das hilfreichste im aktuellen Beitrag). Vermutlich muss Acad3DFace einfach nur durch acadhatch (patternName =SOLID") oder acadsolid ersetzt werden. Vielleicht reicht es allerdings auch, die Systemvariable FILLMODE zu aktivieren und die Zeichnung zu regenerieren.
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sTixi Mitglied
Beiträge: 26 Registriert: 30.03.2005
|
erstellt am: 03. Jul. 2005 17:54 <-- editieren / zitieren --> Unities abgeben:
wie dumm von mir.. hier ist der dazugehörige code und habe es ja mit add3dface gemacht.. mit solid und hatch geht es nicht.. müßte die add3dface also mit farbe füllen nur wie. Dim acpface As Acad3DFace Dim fstPt(2) As Double Dim sndPt(2) As Double Dim trdPt(2) As Double Dim fthPt(2) As Double fstPt(0) = Sheets("results").Cells(8, 9): fstPt(1) = Sheets("results").Cells(8, 10): fstPt(2) = Sheets("results").Cells(8, 11) sndPt(0) = Sheets("results").Cells(8, 14): sndPt(1) = Sheets("results").Cells(8, 15): sndPt(2) = Sheets("results").Cells(8, 16) trdPt(0) = Sheets("results").Cells(9, 14): trdPt(1) = Sheets("results").Cells(9, 15): trdPt(2) = Sheets("results").Cells(9, 16) fthPt(0) = Sheets("results").Cells(9, 9): fthPt(1) = Sheets("results").Cells(9, 10): fthPt(2) = Sheets("results").Cells(9, 11) Set acpface = ac.ActiveDocument.ModelSpace.Add3DFace(fstPt, sndPt, trdPt, fthPt) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil Inventor AIP 4-11, 2008 -2022 Win 10
|
erstellt am: 03. Jul. 2005 18:38 <-- editieren / zitieren --> Unities abgeben: Nur für sTixi
Zum Einfärben der Flächen kann man einfach den Befehl SHADEMODE Gouraud aufrufen. Natürlich muss es mit acadsolid auch funktionieren, solange es 2D Koordinaten sind.
Zitat: Original aus der AutoCAD Hilfe (Entwicklerhandbuch für ActiveX und VBA)Erstellen von Flächen mit kompakter Füllung Sie können farbig gefüllte dreieckige und viereckige Flächen erstellen. Deaktivieren Sie die Systemvariable FILLMODE beim Erstellen der Flächen, um den Erstellvorgang zu beschleunigen. Aktivieren Sie FILLMODE anschließend, um die bereits fertig erstellte Fläche zu füllen. Wenn Sie eine vierseitige Fläche mit kompakter Füllung erstellen, wird ihre Form von der Reihenfolge des dritten und vierten Punkts bestimmt. Vergleichen Sie die folgenden Abbildungen: Die ersten beiden Punkte definieren eine Kante des Polygons. Der dritte Punkt wird diagonal gegenüber vom zweiten Punkt definiert. Wenn der vierte Punkt dem dritten Punkt gleichgesetzt wird, entsteht ein gefülltes Dreieck. Verwenden Sie zum Erstellen einer Fläche mit kompakter Füllung die Methode AddSolid Weitere Informationen zum Füllen von Volumenkörpern finden Sie unter "Erstellen von Flächen mit kompakter Füllung" im Benutzerhandbuch. Erstellen eines Objekts mit kompakter Füllung Im folgenden Beispielcode wird eine vierseitige Fläche mit kompakter Füllung im Modellbereich anhand der Koordinaten (0, 0, 0), (5, 0, 0), (5, 8, 0) und (0, 8, 0) erstellt.
Code:
Sub Ch4_CreateSolid() Dim solidObj As AcadSolid Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Dim point3(0 To 2) As Double Dim point4(0 To 2) As Double ' Definieren des Volumenkörpers point1(0) = 0#: point1(1) = 0#: point1(2) = 0# point2(0) = 5#: point2(1) = 0#: point2(2) = 0# point3(0) = 5#: point3(1) = 8#: point3(2) = 0# point4(0) = 0#: point4(1) = 8#: point4(2) = 0# ' Erstellen des Volumenkörperobjekts im Modellbereich Set solidObj = ThisDrawing.ModelSpace.AddSolid _ (point1, point2, point3, point4) ZoomAll End Sub
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|