Πώς να εργαστείτε με 2D προφίλ στο .NET
Πώς να εργαστείτε με προφίλ 2D στο .NET
Αυτό το άρθρο δείχνει πώς να ορίσετε προφίλ διατομών 2D και να τα σαρώσετε ή να τα περιστρέψετε σε στερεά 3D χρησιμοποιώντας το Aspose.3D για .NET.
Βήμα 1 — Εγκατάσταση του πακέτου
dotnet add package Aspose.3D.FOSSΒήμα 2 — Δημιουργία παραμετρικού προφίλ
Χρησιμοποιήστε ενσωματωμένα σχήματα όπως RectangleShape ή CircleShape για τυπικές διατομές:
using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Profiles;
var scene = new Scene();
// Rectangle profile: 2 units wide, 1 unit tall
var rectProfile = new RectangleShape();
rectProfile.XDim = 2.0;
rectProfile.YDim = 1.0;
// Extrude 5 units along Z
var beam = new LinearExtrusion(rectProfile, 5.0);
beam.Slices = 10;
scene.RootNode.CreateChildNode("beam", beam);Βήμα 3 — Δημιουργία παραμετρικού προφίλ σε σχήμα L
LShape παράγει δοκό L-σχήματος από διαστατικές ιδιότητες:
using Aspose.ThreeD.Profiles;
// L-shaped cross-section structural beam
var lProfile = new LShape();
lProfile.Width = 0.1;
lProfile.Depth = 0.2;
lProfile.Thickness = 0.01;
var lBeam = new LinearExtrusion(lProfile, 4.0);
scene.RootNode.CreateChildNode("l_beam", lBeam);Βήμα 4 — Δημιουργία Κατοπτρικού Προφίλ
MirroredProfile παράγει συμμετρική διατομή κατοπτρίζοντας μια βασική προφίλ:
using Aspose.ThreeD.Profiles;
// Base profile to mirror
var baseProfile = new RectangleShape();
baseProfile.XDim = 0.5;
baseProfile.YDim = 1.0;
// Mirror to get a symmetric beam flange
var mirrored = new MirroredProfile(baseProfile);
var iBeam = new LinearExtrusion(mirrored, 3.0);
scene.RootNode.CreateChildNode("i_beam", iBeam);Βήμα 5 — Περιστροφή Προφίλ σε Στερεό
RevolvedAreaSolid περιστρέφει ένα προφίλ γύρω από έναν άξονα για να δημιουργήσει ένα περιστροφικά συμμετρικό στερεό. Ορίστε Shape και AngleEnd στην instance:
var circleProfile = new CircleShape { Radius = 0.5 };
var revolved = new RevolvedAreaSolid();
revolved.Shape = circleProfile;
revolved.AngleEnd = Math.PI * 2; // full revolution
scene.RootNode.CreateChildNode("sphere", revolved);Βήμα 6 — Αποθήκευση της Σκηνής
scene.Save("profiles.gltf", FileFormat.GLTF2);
Console.WriteLine("Saved: profiles.gltf");Troubleshooting
| Symptom | Πιθανή Αιτία | Διόρθωση |
|---|---|---|
| Η εξώθηση δεν έχει ορατή γεωμετρία | Οι άκρες του προφίλ είναι συνευθειακές ή μηδενικού εμβαδού | Επαληθεύστε ότι το Edges σχηματίζει ένα έγκυρο κλειστό πολύγωνο |
| Το αντικατοπτρισμένο αποτέλεσμα δεν είναι συμμετρικό | Το MirroredProfile αντικατοπτρίζει ό,τι baseProfile τυλίγει — δεν υπάρχει ξεχωριστή παράμετρος άξονα για να οριστεί | Περάστε το σωστό baseProfile στο new MirroredProfile(baseProfile); προσαρμόστε το ίδιο το βασικό προφίλ για να πετύχετε την επιθυμητή συμμετρία |
| Το περιστρεφόμενο στερεό είναι κενό ή επίπεδο | Η γωνία sweep είναι 0 ή το προφίλ είναι ανοιχτό | Χρησιμοποιήστε ένα κλειστό προφίλ και ορίστε τη γωνία σε Math.PI * 2 για πλήρη περιστροφή |
Σχετικοί Πόροι
- Εργασία με προφίλ — οδηγός προγραμματιστή με πλήρεις λεπτομέρειες API
- Εργασία με οντότητες σκηνής — επισύναψη εξωθημένων στερεών σε κόμβους σκηνής