![]() |
Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
jetzt hole ich hier mal noch ein bischen weiter aus und beschreibe, um was es mir eigentlich geht: In meinen Anwendungen habe ich oftmals einen Editor, mit dem ich einen CAD-ähnlich Daten zusammenbaue. Ich habe ein Blech, in das mit verschiedenen Werkzeugen Ausschnitte gestanzt oder geprägt werden. Der Editor legt fest, wie groß das Teil werden soll, und an welchen X/Y-Positionen welche Ausschnitte gestanzt werden. Die Ausschnitte sind mal einfache Rundlöcher oder Vierecke, aber auch verschiedenste Konturen. Die Werkzeugdaten für diese Ausschnitte liegen meist als DXF vor. Diese lese ich in Coreldraw ein und exportiere daraus WMF. Das ganze bastle ich dann zusammen mit einem Koordinatenkreuz und einem Viereck für meine Blechplatine masstabsgerecht in eine Paintbox. Die Werkzeugdimensionen kann ich ja einfach über MMWidth/Height aus dem WMF entnehmen. Das lässt sich dann bei mir auch mehr oder weniger gut zoomen und der Ausschnitt verschieben. Jetzt würde ich das ganze gerne etwas aufmöbeln, ohne dabei das Rad neu zu erfinden. Die Objekte in der Grafikanzeige zu selektieren wäre schön, das zoomen und verschieben läuft nicht so rund... Die ganzen Grafik-Engines, die mir über den Weg gelaufen sind, gehen mehr in Richtung Spieleprogrammierung und benötigen erst mal ein ausgiebiges Handbuchstudium, soweit ich das bisher angerissen habe. Klar wäre so eine 3D-Darstellung auch hübsch, aber womit. GLScene habe ich kurz angeschaut, die 3D-Platine mit Loch-Demo ist zwar ganz nett und ähnelt schon meiner Anwendung, aber als ich das Loch aus der Mitte verschoben habe, war es auf Vorder- und Rückseite schon verkehrt, also wenn die Demo schon Reparaturversuche braucht, ich weiss nicht... FMX bietet ja im Grunde schon Skalierung und Rotation von Haus aus, die Frage ist, wie bekomme ich hier meine Werkzeugkonturen hinein. Darauf hat meine Frage bezüglich WMF und FMX abgezielt. SVG hatte ich als Grundidee auch schon, TPath soll ja da schon ein bischen was können, eine meiner Konturen konnte ich damit anzeigen, nur das mit dem Nullpunkt war noch nicht so doll. Dann habe ich mal ein anderes Werkzeug nach SVG konvertiert, das kann TPath aber wohl nicht ab:
Code:
Wer hätte dafür also einen genialen Tip für ein Framework, das solche Sachen einfach lösen könnte.
<g id="Ebene_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/> <polygon class="fil0 str0" points="1.6,309.5 1.6,284.5 -1.6,284.5 -1.6,309.5 "/> <polygon class="fil0 str0" points="-8.8,284.5 -5.6,284.5 -5.6,309.5 -8.8,309.5 "/> <polygon class="fil0 str0" points="5.6,309.5 5.6,284.5 8.8,284.5 8.8,309.5 "/> </g> |
AW: Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Ich mache sowas auf Basis der
![]() Da muss man sich schon was selber drumrum bauen, ist aber bei einachen Shapes sehr sinnvoll. |
AW: Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Zitat:
Mir ist das mal beim Surfen begegnet: ![]() Ist zwar ursprünglich für VCL und preislich ab einen vierstelligen Eurobeitrag zu haben, aber so eine eigene Mannstunde ist ja auch nicht für umsonst und wenn da ggf. schon viele Probleme gelöst sind, wäre es vielleicht sinnvoll sich damit näher zu beschäftigen. |
AW: Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Zitat:
Zitat:
|
AW: Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Zitat:
Dazu habe ich mir einen Exraktor gebaut, der den d="" Pfad aus dem SVG extrahiert. Die SVG bekomme ich vom Designer oder von Inkscape. Manchmal muss ich da von Hand noch etwas Korrigieren, das hält sich aber in Grenzen. |
AW: Ein bischen CAD-Anzeige (aka WMF in FMX benutzen)
Zitat:
Zitat:
Delphi-Quellcode:
-Tag kannst du einfach den Inhalt von
<polygon>
Delphi-Quellcode:
nehmen, ein
points
Delphi-Quellcode:
davor setzen und ein
M
Delphi-Quellcode:
ans Ende und dann so tun, als wäre das das
z
Delphi-Quellcode:
-Attribut eines
d
Delphi-Quellcode:
-Tags.
<path>
Delphi-Quellcode:
Bei Polyline dasselbe nur ohne
if XML.CurrentTag = 'polygon' then
begin if XML.GetAttribute('points', d) then DrawPoly(Context, 'M' + d + 'Z'); end
Delphi-Quellcode:
.
z
Ich hab mal 2017 einen ![]()
Delphi-Quellcode:
im vorherigen Code-Block) dem von TPath zwar überlegen, aber sehr ähnlich. Fehlende Features könnte man also auch ergänzen. Dein obiger Code ist übrigens nicht SVG Tiny, dessen größter Unterschied zu SVG ist, dass es kein
DrawPoly
Delphi-Quellcode:
und
id
Delphi-Quellcode:
kennt.
class
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz