WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Pfad über uigetfile für stlread() bereitstellen

 

timlie
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 03.12.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2021, 20:50     Titel: Pfad über uigetfile für stlread() bereitstellen
  Antworten mit Zitat      
Hallo Leute,

in meiner GUI kann man über einen Button einen Callback auslösen, der mit uigetfile() den Namen der ausgewählten Datei und den Pfad dorthin abspeichert.
Anschließend wird über einen zweiten Callback mit stlread() die Datei geplottet. Da die App nicht nur auf meinem Computer verwendet wird, sondern auch auf anderen mit unterschiedlichen Betriebssystemen, suche ich einen Weg den Pfad zu der Datei bereitzustellen.(unabhängig davon wo die Datei bei anderen Computern liegt)

Mein jetziger Ansatz funktioniert, aber ich bin damit nicht ganz zufrieden.

Code:

 % Button pushed function: STLImportButton
  function STLImportButtonPushed(app, event)
        [app.STLDateiEditField.Value, app.stl_path] = uigetfile('*.stl');
  end


% Button pushed function: WerkstckButtonHinzufuegen
function WerkstckButtonHinzufuegenPushed(app, event)
       app.part = stlread([app.stl_path, app.STLDateiEditField.Value]);
       V = app.part.Points;
       F = app.part.ConnectivityList;
       patch(app.UIAxes,'Faces', F,'Vertices',V);          
end
 


In app.stl_pfad ist nur der Pfad bis zu dem Ordner abgespeichert, wo die ausgewählte Datei liegt. In app.STLDateiEditField.Value der Name der Datei. Um die Datei mit stlread() plotten zu können, muss nach dem Ordner, aber noch der Name der Datei stehen. Z.B so: stlread(..../ordner/name.stl). Deshalb habe ich die beiden char-Arrays einfach verkettet.
Hat jemand eine Idee wie man das noch lösen kann, sodass der Pfad relativ bleibt und die ausgewählt Datei in einem bis dahin noch unbekannten Ordner gefunden wird? Ich habe bisschen mit fullfile() rumexperimentiert, aber das hat nicht geklappt.

Lg Tim
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2021, 09:06     Titel:
  Antworten mit Zitat      
Hallo,

relative Pfade würde ich vermeiden, da auf jedem Rechner die Verzeichnisstruktur anders ist. Ich würde fullfile statt Verkettung verwenden und den vollen Namen abspeichern, entweder zusätzlich oder statt separater Datei-/Verzeichnisinformation.
Code:
app.fullname = fullfile(app.STLDateiEditField.Value, app.stl_path);


Zitat:
Ich habe bisschen mit fullfile() rumexperimentiert, aber das hat nicht geklappt.

Bitte dann immer genau schreiben, was du versucht hast und was daran nicht geklappt hat.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.