Hey, ich benutze eine WPF 3D-Szene und habe erfolgreich ein paar .stl-Modelle darin geladen. Ich verwende basicall eine Methode, um diese Objekte auswählen und deaktivieren, auf, wo meine Maus in den Fenstern:C# Interaktion mit ModelVisual3D-Objekten in WPF
private void UIElement_OnMouseDown(object sender, MouseButtonEventArgs e)
{
var viewport = (HelixViewport3D)sender;
var firstHit = viewport.Viewport.FindHits(e.GetPosition(viewport)).FirstOrDefault();
if (firstHit != null)
{
this.viewModel.Select(firstHit.Visual);
}
else
{
this.viewModel.Select(null);
}
}
Also habe ich die ausgewählte ModelVisual3D haben und speichern können. Aber hier ist das Hauptproblem:
Meine Modelle werden basierend auf bestimmten Daten und einem zugehörigen STL-Modell generiert. Basicall Ich importiere das .stl-Modell und zeige es in meiner 3D-Szene, aber das Problem ist, ich habe keine Ahnung, wie meine anderen Daten mit dem Modell verbinden.
Zum Beispiel, wenn ich das visuelle auswählen, möchte ich ein anderes Fenster mit Informationen wie zeigen: Material, Abmessungen, Firma.
Aber ich kann nicht herausfinden, wie zu bestimmen, welches einzigartige ModelVisual3D Objekt im Moment ausgewählt ist. Es scheint keine Eigenschaften, die ich zu meinem Vorteil, etwas zu tun wie verwenden:
ModelImporter tr = new ModelImporter();
var model = tr.Load("C:\\Users\\...\\Pictures\\a.stl");
ModelVisual3D test = new ModelVisual3D();
test.Content = model;
//Here I would like to save the id of my visual model to identify and
//associate it with my other data later
int myUniqueModelID=test.Properties.UNIQUEID
Sind Ihre anderen "Daten" in einem separaten Objekt? – Giffesnaffen