extrude

Вертикальное вытягивание 2-D геометрии или заданных граней 3-D геометрии

    Описание

    пример

    extrude(g,height) создает 3-D дискретную геометрию путем выдавливания 2-D геометрии вдоль оси z на значение height. Можно создать сложенную многослойную 3-D дискретную геометрию путем определения height как вектор толщин слоев.

    пример

    extrude(g,FaceID,height) выдавливает указанные грани 3-D геометрии по направлению, перпендикулярному граням. Здесь, FaceID задает грани, которые будут вытесняться. Можно вытеснить грани в несколько слоев путем определения height как вектор толщин слоев.

    Все указанные грани должны быть плоскими и иметь одинаковую ориентацию. Вытесненные объемы не должны пересекаться друг с другом или с существующей геометрией.

    h = extrude(___) возвращает указатель h. Если исходная геометрия является DiscreteGeometry объект, затем функция изменяет исходную геометрию, и h указатель на измененный DiscreteGeometry объект. Если исходная геометрия является AnalyticGeometry объект, затем h является указателем на новый DiscreteGeometry объект. В этом случае исходная геометрия остается неизменной.

    Примеры

    свернуть все

    Создайте 3-D геометрию путем вытягивания 2-D геометрии вдоль оси Z.

    Создайте модель УЧП.

    model = createpde;

    Импортируйте 2-D геометрию.

    g = importGeometry(model,'PlateHolePlanar.stl');

    Постройте график геометрии и отобразите метки граней.

    pdegplot(g,'FaceLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Создайте 3-D геометрию путем вытягивания 2-D геометрии вдоль оси Z на 5 модули.

    extrude(g,5)
    ans = 
      DiscreteGeometry with properties:
    
           NumCells: 1
           NumFaces: 7
           NumEdges: 15
        NumVertices: 10
           Vertices: [10x3 double]
    
    

    Постройте график новой геометрии и отобразите метки граней.

    pdegplot(g,'FaceLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Создайте многослойную геометрию 3-D путем вытягивания 2-D геометрии вдоль оси Z.

    Создайте модель УЧП.

    model = createpde;

    Импортируйте геометрию.

    g = importGeometry(model,'PlateHolePlanar.stl')
    g = 
      DiscreteGeometry with properties:
    
           NumCells: 0
           NumFaces: 1
           NumEdges: 5
        NumVertices: 5
           Vertices: [5x3 double]
    
    

    Постройте график геометрии и отобразите метки граней.

    pdegplot(g,'FaceLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Создайте 3-D геометрию, состоящую из трех блоков с отверстиями, сложенными друг на верхнюю часть. Высоты блоков составляют 5, 10 и 20 модули.

    extrude(g,[5,10,20])
    ans = 
      DiscreteGeometry with properties:
    
           NumCells: 3
           NumFaces: 19
           NumEdges: 35
        NumVertices: 20
           Vertices: [20x3 double]
    
    

    Постройте график новой геометрии и отобразите метки камеры.

    pdegplot(g,'CellLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Вытянуть 2-D геометрию, которая имеет вершину, добавленную addVertex функция. Все слои вытесненной геометрии имеют соответствующую вершину, но ребра между этими вершинами отсутствуют.

    Создайте модель УЧП.

    model = createpde;

    Импортируйте геометрию.

    g = importGeometry(model,'PlateHolePlanar.stl');

    Постройте график геометрии и отобразите метки вершин.

    pdegplot(g,'VertexLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Добавьте новую вершину правого ребра.

    addVertex(g,'Coordinates',[10 12]);

    Постройте график новой геометрии и отобразите метки вершин.

    pdegplot(g,'FaceLabels','on','VertexLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Создайте 3-D геометрию, состоящую из трех блоков с отверстиями, сложенными друг на верхнюю часть. Высоты блоков составляют 5, 10 и 20 модули.

    extrude(g,[5,10,20])
    ans = 
      DiscreteGeometry with properties:
    
           NumCells: 3
           NumFaces: 19
           NumEdges: 35
        NumVertices: 24
           Vertices: [24x3 double]
    
    

    Постройте график новой геометрии и отобразите метки вершин. The extrude функция наследует добавленную вершину V6 в три новые вершины: V12, V18, и V24. Он не создает ребра между этими вершинами.

    pdegplot(g,'VertexLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Вытеснить 2-D геометрию, грань которой добавлена addFace функция.

    Создайте модель УЧП.

    model = createpde;

    Импортируйте геометрию.

    g = importGeometry(model,'PlateHolePlanar.stl');

    Постройте график геометрии и отобразите метки граней и ребер.

    pdegplot(g,'FaceLabels','on','EdgeLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Заполните отверстие в центре путем добавления грани.

    addFace(g,5)
    ans = 
      DiscreteGeometry with properties:
    
           NumCells: 0
           NumFaces: 2
           NumEdges: 5
        NumVertices: 5
           Vertices: [5x3 double]
    
    

    Постройте график измененной геометрии.

    pdegplot(g,'FaceLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Создайте 3-D геометрию путем вытягивания 2-D геометрии вдоль оси Z на 2 модули.

    extrude(g,2)
    ans = 
      DiscreteGeometry with properties:
    
           NumCells: 2
           NumFaces: 9
           NumEdges: 15
        NumVertices: 10
           Vertices: [10x3 double]
    
    

    Постройте график новой геометрии и отобразите метки камеры.

    pdegplot(g,'CellLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Выдавливание заданных граней 3-D геометрии.

    Импортируйте геометрию и постройте график с метками граней и ребер.

    g = importGeometry('PlateHolePlanar.stl');
    pdegplot(g,'FaceLabels','on','EdgeLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Заполните отверстие в центре путем добавления грани. Постройте график измененной геометрии.

    addFace(g,5);
    pdegplot(g,'FaceLabels','on')

    Figure contains an axes. The axes contains an object of type line.

    Создайте 3-D геометрию путем вытягивания 2-D геометрии вдоль оси Z на 2 модули.

    extrude(g,2);

    Постройте график новой геометрии с метками камер и граней.

    pdegplot(g,'CellLabels','on','Facelabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Теперь вытяните центральную грань геометрии на 5 модули.

    extrude(g,4,5);

    Постройте график получившейся геометрии с метками камер.

    pdegplot(g,'CellLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Теперь позвоните extrude снова, и на этот раз задайте вектор высот. Функция вытягивает все заданные грани по каждой из заданных высот, что создает несколько слоев.

    extrude(g,[1 2],[3 4]);
    pdegplot(g,'CellLabels','on','FaceAlpha',0.5)

    Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

    Входные параметры

    свернуть все

    Геометрия, заданная как DiscreteGeometry или AnalyticGeometry объект.

    Высоты камер, заданные как положительное вещественное число или вектор положительных вещественных чисел.

    Если height является вектором и g является 2-D геометрией, тогда height(i) задает высоту iвторой слой многослойной (сложенной) 3-D геометрии. Каждый слой образует новую камеру.

    Если g является 3-D геометрией, функция вытягивает все заданные грани в несколько слоев с height(i) задание высоты i1й слой.

    Пример: extrude(g,5.5)

    Грани для вытягивания в 3-D геометрии, заданные как положительное вещественное число или вектор положительных вещественных чисел. Если height является вектором, затем функция вытягивает все заданные грани в несколько слоев, так же как и для 2-D геометрий.

    Выходные аргументы

    свернуть все

    Получившаяся геометрия, возвращенная как указатель. Если исходная геометрия g является DiscreteGeometry объект, затем h является указателем на измененный DiscreteGeometry g объекта. Если g является AnalyticGeometry объект, затем h является указателем на новый DiscreteGeometry объект. В этом случае исходная геометрия g остается неизменным.

    Совет

    • extrude изменяет геометрию, но не изменяет соответствующий mesh. После изменения геометрии перегенерируйте mesh, чтобы гарантировать соответствие сетки новой геометрии.

    • Если у 2-D геометрии есть новые вершины, добавленные при помощи addVertex функция, extrude реплицирует новые вершины на каждом новом слое вытесненной геометрии 3-D, но он не соединяет эти вершины ребрами.

    • Если g является AnalyticGeometry объект, и необходимо заменить его вытесненной дискретной геометрией 3-D, присвоить выход исходной геометрии, например g = extrude(g,20).

    Введенный в R2020b