Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Vom 3D-Objekt die Wände dicker machen ?

 

JanInfoMed
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 10.09.2019, 12:04     Titel: Vom 3D-Objekt die Wände dicker machen ?
  Antworten mit Zitat      
funktioniert i-wie nicht, bin nicht so lange in matlab und wollte fragen, wie man die wandstärke oder die Linien dicker machen kann, damit es beim ausdrucken nicht auseinanderfällt

Code:


set(bin.faces,bin.vertices,'LineWidth',8);




 
Private Nachricht senden Benutzer-Profile anzeigen


JanInfoMed
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 10.09.2019, 13:14     Titel:
  Antworten mit Zitat      
Ich hab es versucht mit Linewidth oder set, aber die Wandstärke wird nur im Programm angezeigt und nicht abgespeichert für die STL-Datei

Photostrahlung.jpg
 Beschreibung:
Wie es im Programm aussieht

Download
 Dateiname:  Photostrahlung.jpg
 Dateigröße:  248.45 KB
 Heruntergeladen:  6 mal
Photonenstrahlung.jpg
 Beschreibung:
Wie es im 3D-Programm aussieht

Download
 Dateiname:  Photonenstrahlung.jpg
 Dateigröße:  408.91 KB
 Heruntergeladen:  6 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
JanInfoMed
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 11.09.2019, 11:03     Titel:
  Antworten mit Zitat      
https://de.mathworks.com/matlabcent.....ile?s_tid=prof_contriblnk
Private Nachricht senden Benutzer-Profile anzeigen
 
JanInfoMed
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 17.09.2019, 10:16     Titel:
  Antworten mit Zitat      
Die Oberfläche wird nicht angezeigt, ich weiß nicht woran es liegt. Es war erstmal geplant, das die Wänder dicker gemacht werden. Die Wand habe ich "verdoppelt" und um 0.8 Skalierung, kleiner gemacht. Normalerweise sollte dann zwischen der Wand und der etwas kleinere Wand ausgefüllt sein. Man sieht es auf dem Bild besser.

Code:

clear
name='010010_XBlockBigIsoz'; %Einlesen der Datei
     

info=dicominfo(name); %Zugreifen auf der Datei
es=(info.BeamSequence.Item_1.RadiationType);
ps=(info.BeamSequence.Item_1.RadiationType);
sz=size(info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData,1); % Größe der Datei
bd=(info.BeamSequence.Item_1.BlockSequence.Item_1.SourceToBlockTrayDistance)/10;
bh=(info.BeamSequence.Item_1.BlockSequence.Item_1.BlockThickness)/10;
b(:,1)=info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData(1:2:sz)/10; %x-Koordinaten
b(:,2)=info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData(2:2:sz)/10;


 kx = -10:0.2:10;
 ky = -10:0.2:10;
 
 kz = bd:-0.1:bd-bh;
 sz_x=size(kx,2);
 sz_y=size(ky,2);
 sz_z=size(kz,2);
 
 bin=nan(sz_y,sz_x,sz_z);
 
 [X,Y] = meshgrid(kx,ky);

for i=1:sz_z
 x=kz(i)*b(:,1)/100;
 y=kz(i)*b(:,2)/100;
 xi=(x)*.8;
 yi=(y)*.8;
 tmp=inpolygon (X,Y,x,y);
 tmp_i=inpolygon (X,Y,xi,yi);
 bin(:,:,i)=xor(tmp,tmp_i);
 end
end


Oberfläche .jpg
 Beschreibung:

Download
 Dateiname:  Oberfläche .jpg
 Dateigröße:  92.39 KB
 Heruntergeladen:  4 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
JanInfoMed
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 19.09.2019, 08:44     Titel: Umsetzung erfolgreich, nur das Objekt ist kleiner geworden
  Antworten mit Zitat      
Code:


% Es hat geklappt, indem ich in der untersten Schicht und der obersten Schicht , die z-Achse um "1 Einheit nach oben" gezogen und sie mit "0ern" ausgefüllt habe, somit schließen sich die  zwei Wände zu einer dicken Wand
% Das Problem ist jetzt das die Skalierung verändert wurde, auf dem Bild sieht
% man das der "Block" nur 1 cm breit und 1 cm hoch ist...
% der "Block" ist aber 5 cm hoch.. muss jetzt schauen, wie man das bearbeitet


clear
name='010010_XBlockBigIsoz'; %Einlesen der Datei
     

info=dicominfo(name); %Zugreifen auf der Datei
es=(info.BeamSequence.Item_1.RadiationType);
ps=(info.BeamSequence.Item_1.RadiationType);
sz=size(info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData,1); % Größe der Datei
bd=(info.BeamSequence.Item_1.BlockSequence.Item_1.SourceToBlockTrayDistance)/10;
bh=(info.BeamSequence.Item_1.BlockSequence.Item_1.BlockThickness)/10;
b(:,1)=info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData(1:2:sz)/10; %x-Koordinaten
b(:,2)=info.BeamSequence.Item_1.BlockSequence.Item_1.BlockData(2:2:sz)/10;


 kx = -10:0.2:10;
 ky = -10:0.2:10;
 
 kz = bd:-0.1:bd-bh;
 sz_x=size(kx,2);
 sz_y=size(ky,2);
 sz_z=size(kz,2);
 
 bin=nan(sz_y,sz_x,sz_z);
 
 [X,Y] = meshgrid(kx,ky);

for i=1:sz_z
 x=kz(i)*b(:,1)/100;
 y=kz(i)*b(:,2)/100;
 xi=(x)*.8;
 yi=(y)*.8;
 tmp=inpolygon (X,Y,x,y);
 tmp_i=inpolygon (X,Y,xi,yi);
 bin(:,:,i)=xor(tmp,tmp_i);

 end

 bin = squeeze(bin);
 [X,Y,Z] = meshgrid(kx,ky,kz);  % Ab hier wird die unterste und oberste Schicht erstellt und dann mit 0ern gefüllt, nur die Skalierung wurde verändert und ich bekomm ein kleineres Objekt
 bin=smooth3(bin);
 bin(:,:,1)=0;
 bin(:,:,end)=0;
 Oberfl = isosurface(X,Y,Z,bin(:,:,:),'verbose');

 s1 = 'PHOTON';
 s2 = 'ELECTRON';
tf  = strcmp(es,s2);
tu = strcmp(ps,s1);

if (tf == true) %Ist es eine Elektronenstrahlung ? -> ja dann soll es hierfür speziell geglättet werden
 
   Oberfl=smoothpatch(Oberfl,1,2); %Glättungsfaktor, wie oft soll es geglättet werden
    subplot(1,2,2), patch(Oberfl,'FaceColor',[1 0 1],'EdgeAlpha',0); view(3); camlight; % Darstllung des Objekts
 stlwrite('test.stl', Oberfl.faces, Oberfl.vertices);
else
  %msgbox('No Electron Radiation')
   
if (tu == true) %Ist es eine Photonenstrahlung ? -> ja dann soll es hierfür speziell geglättet werden
     Oberfl=smoothpatch(Oberfl,1,5,1,1)
    subplot(1,2,2), patch(Oberfl,'FaceColor',[1 0 1],'EdgeAlpha',0); view(3); camlight;
   stlwrite('test.stl', Oberfl.faces, Oberfl.vertices);
     %msgbox('No PhotonRadiation');
   end
 end
 


PhotoblockSkalierungfehlt.jpg
 Beschreibung:

Download
 Dateiname:  PhotoblockSkalierungfehlt.jpg
 Dateigröße:  228.63 KB
 Heruntergeladen:  1 mal
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2019 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.