Read an IGES file

Read an IGES file#

IGES (.iges / .igs) is one of the older neutral CAD interchange formats, still common for legacy mechanical hand-offs and turbomachinery. pyvista_cad.read_iges wraps pyiges and tessellates analytic surfaces with geomdl.

This example uses a real centrifugal impeller exported from SolidWorks to IGES (MIT, pyiges) and pushes beyond a load+plot demo by computing surface curvature, the kind of analysis turbomachinery engineers routinely run on imported IGES geometry.

import numpy as np
import pyvista as pv

import pyvista_cad
from pyvista_cad.examples import downloads

Load the real impeller. surfaces=True tessellates every analytic B-spline surface; lines=False drops the construction wires.

iges = pyvista_cad.read_iges(
    downloads.iges_impeller_path(),
    bsplines=True,
    surfaces=True,
    lines=False,
)
iges
Converting entities to vtk:   0%|          | 0/4615 [00:00<?, ?it/s]
Converting entities to vtk:   0%|          | 2/4615 [00:00<06:19, 12.14it/s]
Converting entities to vtk:   0%|          | 17/4615 [00:00<01:06, 69.61it/s]
Converting entities to vtk:   1%|          | 32/4615 [00:00<00:48, 94.07it/s]
Converting entities to vtk:   1%|          | 47/4615 [00:00<00:42, 106.98it/s]
Converting entities to vtk:   1%|▏         | 62/4615 [00:00<00:39, 114.07it/s]
Converting entities to vtk:   2%|▏         | 77/4615 [00:00<00:38, 118.71it/s]
Converting entities to vtk:   2%|▏         | 92/4615 [00:00<00:37, 121.78it/s]
Converting entities to vtk:   2%|▏         | 107/4615 [00:00<00:36, 123.75it/s]
Converting entities to vtk:   3%|▎         | 122/4615 [00:01<00:35, 124.98it/s]
Converting entities to vtk:   3%|▎         | 137/4615 [00:01<00:35, 125.90it/s]
Converting entities to vtk:   3%|▎         | 152/4615 [00:01<00:35, 126.22it/s]
Converting entities to vtk:   9%|▉         | 435/4615 [00:01<00:05, 722.29it/s]
Converting entities to vtk:  11%|█▏        | 520/4615 [00:01<00:06, 676.84it/s]
Converting entities to vtk:  13%|█▎        | 580/4615 [00:01<00:06, 606.49it/s]
Converting entities to vtk:  14%|█▍        | 635/4615 [00:02<00:09, 441.65it/s]
Converting entities to vtk:  15%|█▌        | 693/4615 [00:02<00:08, 449.35it/s]
Converting entities to vtk:  16%|█▌        | 739/4615 [00:02<00:11, 350.61it/s]
Converting entities to vtk:  17%|█▋        | 777/4615 [00:02<00:15, 240.52it/s]
Converting entities to vtk:  17%|█▋        | 807/4615 [00:03<00:26, 142.53it/s]
Converting entities to vtk:  18%|█▊        | 830/4615 [00:03<00:28, 132.46it/s]
Converting entities to vtk:  18%|█▊        | 849/4615 [00:03<00:27, 136.31it/s]
Converting entities to vtk:  19%|█▉        | 867/4615 [00:03<00:26, 139.27it/s]
Converting entities to vtk:  19%|█▉        | 885/4615 [00:04<00:31, 119.04it/s]
Converting entities to vtk:  20%|█▉        | 900/4615 [00:04<00:30, 120.46it/s]
Converting entities to vtk:  20%|█▉        | 914/4615 [00:04<00:30, 120.22it/s]
Converting entities to vtk:  20%|██        | 928/4615 [00:04<00:30, 120.17it/s]
Converting entities to vtk:  20%|██        | 941/4615 [00:04<00:31, 117.88it/s]
Converting entities to vtk:  21%|██        | 954/4615 [00:04<00:31, 116.13it/s]
Converting entities to vtk:  21%|██        | 966/4615 [00:04<00:32, 112.52it/s]
Converting entities to vtk:  21%|██        | 979/4615 [00:04<00:32, 111.42it/s]
Converting entities to vtk:  22%|██▏       | 993/4615 [00:04<00:31, 113.37it/s]
Converting entities to vtk:  22%|██▏       | 1007/4615 [00:05<00:31, 115.26it/s]
Converting entities to vtk:  22%|██▏       | 1024/4615 [00:05<00:28, 123.86it/s]
Converting entities to vtk:  22%|██▏       | 1038/4615 [00:05<00:29, 122.69it/s]
Converting entities to vtk:  23%|██▎       | 1052/4615 [00:05<00:29, 121.66it/s]
Converting entities to vtk:  23%|██▎       | 1066/4615 [00:05<00:29, 120.88it/s]
Converting entities to vtk:  23%|██▎       | 1080/4615 [00:05<00:29, 120.18it/s]
Converting entities to vtk:  24%|██▎       | 1094/4615 [00:05<00:29, 119.80it/s]
Converting entities to vtk:  24%|██▍       | 1108/4615 [00:05<00:29, 119.58it/s]
Converting entities to vtk:  24%|██▍       | 1122/4615 [00:06<00:29, 119.30it/s]
Converting entities to vtk:  25%|██▍       | 1136/4615 [00:06<00:29, 119.13it/s]
Converting entities to vtk:  25%|██▍       | 1150/4615 [00:06<00:54, 63.45it/s]
Converting entities to vtk:  25%|██▌       | 1164/4615 [00:06<00:46, 73.82it/s]
Converting entities to vtk:  26%|██▌       | 1178/4615 [00:06<00:41, 83.16it/s]
Converting entities to vtk:  26%|██▌       | 1192/4615 [00:06<00:37, 91.39it/s]
Converting entities to vtk:  26%|██▌       | 1208/4615 [00:07<00:33, 102.37it/s]
Converting entities to vtk:  27%|██▋       | 1224/4615 [00:07<00:30, 111.16it/s]
Converting entities to vtk:  28%|██▊       | 1288/4615 [00:07<00:14, 223.99it/s]
Converting entities to vtk:  28%|██▊       | 1312/4615 [00:07<00:15, 216.34it/s]
Converting entities to vtk:  29%|██▉       | 1335/4615 [00:07<00:15, 209.22it/s]
Converting entities to vtk:  29%|██▉       | 1357/4615 [00:07<00:19, 165.03it/s]
Converting entities to vtk:  30%|███       | 1400/4615 [00:07<00:18, 178.30it/s]
Converting entities to vtk:  31%|███       | 1419/4615 [00:08<00:18, 173.56it/s]
Converting entities to vtk:  31%|███▏      | 1444/4615 [00:08<00:17, 182.53it/s]
Converting entities to vtk:  32%|███▏      | 1463/4615 [00:08<00:18, 174.67it/s]
Converting entities to vtk:  32%|███▏      | 1483/4615 [00:08<00:18, 170.51it/s]
Converting entities to vtk:  33%|███▎      | 1510/4615 [00:08<00:18, 168.94it/s]
Converting entities to vtk:  33%|███▎      | 1529/4615 [00:08<00:18, 164.92it/s]
Converting entities to vtk:  33%|███▎      | 1546/4615 [00:08<00:19, 158.23it/s]
Converting entities to vtk:  34%|███▍      | 1573/4615 [00:08<00:17, 176.83it/s]
Converting entities to vtk:  34%|███▍      | 1591/4615 [00:09<00:18, 167.48it/s]
Converting entities to vtk:  35%|███▍      | 1612/4615 [00:09<00:18, 166.79it/s]
Converting entities to vtk:  36%|███▌      | 1639/4615 [00:09<00:17, 166.00it/s]
Converting entities to vtk:  36%|███▌      | 1658/4615 [00:09<00:18, 162.13it/s]
Converting entities to vtk:  36%|███▋      | 1675/4615 [00:09<00:18, 156.32it/s]
Converting entities to vtk:  37%|███▋      | 1702/4615 [00:09<00:16, 175.78it/s]
Converting entities to vtk:  37%|███▋      | 1720/4615 [00:09<00:17, 167.14it/s]
Converting entities to vtk:  38%|███▊      | 1741/4615 [00:10<00:17, 166.37it/s]
Converting entities to vtk:  38%|███▊      | 1768/4615 [00:10<00:17, 166.15it/s]
Converting entities to vtk:  39%|███▊      | 1787/4615 [00:10<00:32, 88.24it/s]
Converting entities to vtk:  39%|███▉      | 1801/4615 [00:10<00:30, 93.29it/s]
Converting entities to vtk:  40%|███▉      | 1831/4615 [00:10<00:22, 123.68it/s]
Converting entities to vtk:  40%|████      | 1848/4615 [00:11<00:21, 126.69it/s]
Converting entities to vtk:  41%|████      | 1870/4615 [00:11<00:19, 137.78it/s]
Converting entities to vtk:  41%|████      | 1897/4615 [00:11<00:18, 145.84it/s]
Converting entities to vtk:  42%|████▏     | 1916/4615 [00:11<00:18, 147.57it/s]
Converting entities to vtk:  42%|████▏     | 1932/4615 [00:11<00:18, 143.63it/s]
Converting entities to vtk:  42%|████▏     | 1960/4615 [00:11<00:15, 167.54it/s]
Converting entities to vtk:  43%|████▎     | 1978/4615 [00:11<00:16, 160.85it/s]
Converting entities to vtk:  43%|████▎     | 1999/4615 [00:11<00:16, 162.04it/s]
Converting entities to vtk:  44%|████▍     | 2026/4615 [00:12<00:15, 162.47it/s]
Converting entities to vtk:  44%|████▍     | 2045/4615 [00:12<00:16, 159.98it/s]
Converting entities to vtk:  45%|████▍     | 2062/4615 [00:12<00:16, 154.03it/s]
Converting entities to vtk:  45%|████▌     | 2089/4615 [00:12<00:14, 173.82it/s]
Converting entities to vtk:  46%|████▌     | 2107/4615 [00:12<00:15, 164.98it/s]
Converting entities to vtk:  46%|████▌     | 2128/4615 [00:12<00:15, 164.71it/s]
Converting entities to vtk:  47%|████▋     | 2155/4615 [00:12<00:14, 164.17it/s]
Converting entities to vtk:  47%|████▋     | 2174/4615 [00:13<00:15, 161.13it/s]
Converting entities to vtk:  47%|████▋     | 2191/4615 [00:13<00:15, 155.14it/s]
Converting entities to vtk:  48%|████▊     | 2218/4615 [00:13<00:13, 174.49it/s]
Converting entities to vtk:  48%|████▊     | 2236/4615 [00:13<00:14, 165.60it/s]
Converting entities to vtk:  49%|████▉     | 2257/4615 [00:13<00:14, 165.39it/s]
Converting entities to vtk:  49%|████▉     | 2284/4615 [00:13<00:14, 164.87it/s]
Converting entities to vtk:  50%|████▉     | 2303/4615 [00:13<00:14, 161.05it/s]
Converting entities to vtk:  50%|█████     | 2320/4615 [00:13<00:14, 154.62it/s]
Converting entities to vtk:  51%|█████     | 2347/4615 [00:14<00:23, 95.74it/s]
Converting entities to vtk:  51%|█████     | 2361/4615 [00:14<00:22, 99.16it/s]
Converting entities to vtk:  52%|█████▏    | 2386/4615 [00:14<00:18, 119.08it/s]
Converting entities to vtk:  52%|█████▏    | 2413/4615 [00:14<00:16, 131.81it/s]
Converting entities to vtk:  53%|█████▎    | 2432/4615 [00:14<00:15, 136.60it/s]
Converting entities to vtk:  53%|█████▎    | 2447/4615 [00:15<00:16, 133.67it/s]
Converting entities to vtk:  54%|█████▎    | 2476/4615 [00:15<00:13, 160.75it/s]
Converting entities to vtk:  54%|█████▍    | 2494/4615 [00:15<00:13, 155.97it/s]
Converting entities to vtk:  54%|█████▍    | 2515/4615 [00:15<00:13, 158.14it/s]
Converting entities to vtk:  55%|█████▌    | 2542/4615 [00:15<00:12, 160.01it/s]
Converting entities to vtk:  55%|█████▌    | 2561/4615 [00:15<00:13, 157.69it/s]
Converting entities to vtk:  56%|█████▌    | 2577/4615 [00:15<00:13, 150.52it/s]
Converting entities to vtk:  56%|█████▋    | 2605/4615 [00:15<00:11, 172.82it/s]
Converting entities to vtk:  57%|█████▋    | 2623/4615 [00:16<00:12, 163.69it/s]
Converting entities to vtk:  57%|█████▋    | 2644/4615 [00:16<00:12, 163.58it/s]
Converting entities to vtk:  58%|█████▊    | 2671/4615 [00:16<00:11, 163.68it/s]
Converting entities to vtk:  58%|█████▊    | 2690/4615 [00:16<00:11, 160.48it/s]
Converting entities to vtk:  59%|█████▊    | 2707/4615 [00:16<00:12, 154.64it/s]
Converting entities to vtk:  59%|█████▉    | 2734/4615 [00:16<00:10, 174.01it/s]
Converting entities to vtk:  60%|█████▉    | 2752/4615 [00:16<00:11, 163.63it/s]
Converting entities to vtk:  60%|██████    | 2773/4615 [00:17<00:11, 163.56it/s]
Converting entities to vtk:  61%|██████    | 2800/4615 [00:17<00:11, 162.89it/s]
Converting entities to vtk:  61%|██████    | 2819/4615 [00:17<00:11, 161.37it/s]
Converting entities to vtk:  61%|██████▏   | 2836/4615 [00:17<00:11, 157.20it/s]
Converting entities to vtk:  62%|██████▏   | 2852/4615 [00:17<00:11, 152.56it/s]
Converting entities to vtk:  62%|██████▏   | 2868/4615 [00:17<00:11, 149.04it/s]
Converting entities to vtk:  62%|██████▏   | 2883/4615 [00:17<00:12, 143.70it/s]
Converting entities to vtk:  63%|██████▎   | 2898/4615 [00:18<00:23, 74.59it/s]
Converting entities to vtk:  63%|██████▎   | 2909/4615 [00:18<00:21, 78.74it/s]
Converting entities to vtk:  63%|██████▎   | 2922/4615 [00:18<00:19, 86.32it/s]
Converting entities to vtk:  64%|██████▎   | 2938/4615 [00:18<00:17, 98.31it/s]
Converting entities to vtk:  64%|██████▍   | 2953/4615 [00:18<00:15, 106.77it/s]
Converting entities to vtk:  64%|██████▍   | 2968/4615 [00:18<00:14, 113.31it/s]
Converting entities to vtk:  65%|██████▍   | 2982/4615 [00:18<00:14, 115.93it/s]
Converting entities to vtk:  65%|██████▍   | 2996/4615 [00:19<00:13, 115.88it/s]
Converting entities to vtk:  65%|██████▌   | 3011/4615 [00:19<00:13, 120.35it/s]
Converting entities to vtk:  66%|██████▌   | 3028/4615 [00:19<00:12, 128.42it/s]
Converting entities to vtk:  66%|██████▌   | 3042/4615 [00:19<00:12, 126.80it/s]
Converting entities to vtk:  66%|██████▌   | 3056/4615 [00:19<00:12, 125.35it/s]
Converting entities to vtk:  67%|██████▋   | 3071/4615 [00:19<00:12, 127.31it/s]
Converting entities to vtk:  67%|██████▋   | 3085/4615 [00:19<00:12, 126.02it/s]
Converting entities to vtk:  67%|██████▋   | 3099/4615 [00:19<00:12, 125.19it/s]
Converting entities to vtk:  67%|██████▋   | 3114/4615 [00:19<00:11, 127.67it/s]
Converting entities to vtk:  68%|██████▊   | 3129/4615 [00:20<00:11, 128.79it/s]
Converting entities to vtk:  68%|██████▊   | 3145/4615 [00:20<00:11, 131.39it/s]
Converting entities to vtk:  68%|██████▊   | 3159/4615 [00:20<00:11, 128.86it/s]
Converting entities to vtk:  69%|██████▉   | 3174/4615 [00:20<00:11, 129.48it/s]
Converting entities to vtk:  69%|██████▉   | 3189/4615 [00:20<00:10, 130.30it/s]
Converting entities to vtk:  69%|██████▉   | 3203/4615 [00:20<00:11, 127.85it/s]
Converting entities to vtk:  70%|██████▉   | 3217/4615 [00:20<00:11, 125.70it/s]
Converting entities to vtk:  70%|███████   | 3232/4615 [00:20<00:10, 128.19it/s]
Converting entities to vtk:  70%|███████   | 3246/4615 [00:20<00:10, 126.69it/s]
Converting entities to vtk:  71%|███████   | 3260/4615 [00:21<00:10, 125.37it/s]
Converting entities to vtk:  71%|███████   | 3275/4615 [00:21<00:10, 127.48it/s]
Converting entities to vtk:  71%|███████▏  | 3290/4615 [00:21<00:10, 129.00it/s]
Converting entities to vtk:  72%|███████▏  | 3304/4615 [00:21<00:19, 66.71it/s]
Converting entities to vtk:  72%|███████▏  | 3318/4615 [00:21<00:16, 77.03it/s]
Converting entities to vtk:  72%|███████▏  | 3333/4615 [00:22<00:14, 88.33it/s]
Converting entities to vtk:  73%|███████▎  | 3348/4615 [00:22<00:12, 98.23it/s]
Converting entities to vtk:  73%|███████▎  | 3362/4615 [00:22<00:12, 104.13it/s]
Converting entities to vtk:  73%|███████▎  | 3376/4615 [00:22<00:11, 108.22it/s]
Converting entities to vtk:  73%|███████▎  | 3391/4615 [00:22<00:10, 115.01it/s]
Converting entities to vtk:  74%|███████▍  | 3405/4615 [00:22<00:10, 117.56it/s]
Converting entities to vtk:  74%|███████▍  | 3419/4615 [00:22<00:10, 119.00it/s]
Converting entities to vtk:  74%|███████▍  | 3434/4615 [00:22<00:09, 123.00it/s]
Converting entities to vtk:  75%|███████▍  | 3449/4615 [00:22<00:09, 125.59it/s]
Converting entities to vtk:  75%|███████▌  | 3463/4615 [00:23<00:09, 124.70it/s]
Converting entities to vtk:  75%|███████▌  | 3477/4615 [00:23<00:09, 124.33it/s]
Converting entities to vtk:  76%|███████▌  | 3492/4615 [00:23<00:08, 126.58it/s]
Converting entities to vtk:  76%|███████▌  | 3507/4615 [00:23<00:08, 128.30it/s]
Converting entities to vtk:  76%|███████▋  | 3521/4615 [00:23<00:08, 126.61it/s]
Converting entities to vtk:  77%|███████▋  | 3535/4615 [00:23<00:08, 124.68it/s]
Converting entities to vtk:  77%|███████▋  | 3550/4615 [00:23<00:08, 126.60it/s]
Converting entities to vtk:  77%|███████▋  | 3564/4615 [00:23<00:08, 125.35it/s]
Converting entities to vtk:  78%|███████▊  | 3578/4615 [00:23<00:08, 124.39it/s]
Converting entities to vtk:  78%|███████▊  | 3593/4615 [00:24<00:08, 126.43it/s]
Converting entities to vtk:  78%|███████▊  | 3608/4615 [00:24<00:07, 126.35it/s]
Converting entities to vtk:  78%|███████▊  | 3622/4615 [00:24<00:07, 124.89it/s]
Converting entities to vtk:  79%|███████▉  | 3636/4615 [00:24<00:07, 124.02it/s]
Converting entities to vtk:  79%|███████▉  | 3651/4615 [00:24<00:07, 126.42it/s]
Converting entities to vtk:  79%|███████▉  | 3666/4615 [00:24<00:07, 128.14it/s]
Converting entities to vtk:  80%|███████▉  | 3682/4615 [00:24<00:07, 130.82it/s]
Converting entities to vtk:  80%|████████  | 3696/4615 [00:25<00:13, 66.84it/s]
Converting entities to vtk:  80%|████████  | 3713/4615 [00:25<00:11, 81.58it/s]
Converting entities to vtk:  81%|████████  | 3727/4615 [00:25<00:09, 90.02it/s]
Converting entities to vtk:  81%|████████  | 3741/4615 [00:25<00:08, 97.42it/s]
Converting entities to vtk:  81%|████████▏ | 3756/4615 [00:25<00:08, 105.78it/s]
Converting entities to vtk:  82%|████████▏ | 3771/4615 [00:25<00:07, 112.44it/s]
Converting entities to vtk:  82%|████████▏ | 3785/4615 [00:25<00:07, 114.94it/s]
Converting entities to vtk:  82%|████████▏ | 3799/4615 [00:26<00:06, 116.73it/s]
Converting entities to vtk:  83%|████████▎ | 3814/4615 [00:26<00:06, 120.84it/s]
Converting entities to vtk:  83%|████████▎ | 3829/4615 [00:26<00:06, 123.90it/s]
Converting entities to vtk:  83%|████████▎ | 3843/4615 [00:26<00:06, 122.75it/s]
Converting entities to vtk:  84%|████████▎ | 3857/4615 [00:26<00:06, 121.73it/s]
Converting entities to vtk:  84%|████████▍ | 3872/4615 [00:26<00:05, 124.39it/s]
Converting entities to vtk:  84%|████████▍ | 3886/4615 [00:26<00:05, 123.32it/s]
Converting entities to vtk:  85%|████████▍ | 3902/4615 [00:26<00:05, 127.42it/s]
Converting entities to vtk:  85%|████████▍ | 3917/4615 [00:26<00:05, 128.52it/s]
Converting entities to vtk:  85%|████████▌ | 3932/4615 [00:27<00:05, 128.96it/s]
Converting entities to vtk:  86%|████████▌ | 3946/4615 [00:27<00:05, 126.54it/s]
Converting entities to vtk:  86%|████████▌ | 3960/4615 [00:27<00:05, 125.02it/s]
Converting entities to vtk:  86%|████████▌ | 3975/4615 [00:27<00:05, 126.65it/s]
Converting entities to vtk:  86%|████████▋ | 3990/4615 [00:27<00:04, 127.95it/s]
Converting entities to vtk:  87%|████████▋ | 4004/4615 [00:27<00:04, 125.66it/s]
Converting entities to vtk:  87%|████████▋ | 4018/4615 [00:27<00:04, 123.53it/s]
Converting entities to vtk:  87%|████████▋ | 4033/4615 [00:27<00:04, 125.45it/s]
Converting entities to vtk:  88%|████████▊ | 4047/4615 [00:27<00:04, 123.78it/s]
Converting entities to vtk:  88%|████████▊ | 4061/4615 [00:28<00:04, 122.50it/s]
Converting entities to vtk:  88%|████████▊ | 4076/4615 [00:28<00:04, 124.95it/s]
Converting entities to vtk:  89%|████████▊ | 4091/4615 [00:28<00:04, 126.45it/s]
Converting entities to vtk:  89%|████████▉ | 4107/4615 [00:28<00:03, 128.31it/s]
Converting entities to vtk:  89%|████████▉ | 4121/4615 [00:28<00:07, 66.50it/s]
Converting entities to vtk:  90%|████████▉ | 4136/4615 [00:29<00:06, 76.26it/s]
Converting entities to vtk:  90%|████████▉ | 4151/4615 [00:29<00:05, 85.45it/s]
Converting entities to vtk:  90%|█████████ | 4165/4615 [00:29<00:04, 92.81it/s]
Converting entities to vtk:  91%|█████████ | 4179/4615 [00:29<00:04, 99.04it/s]
Converting entities to vtk:  91%|█████████ | 4194/4615 [00:29<00:03, 106.97it/s]
Converting entities to vtk:  91%|█████████ | 4208/4615 [00:29<00:03, 110.40it/s]
Converting entities to vtk:  91%|█████████▏| 4222/4615 [00:29<00:03, 113.08it/s]
Converting entities to vtk:  92%|█████████▏| 4237/4615 [00:29<00:03, 118.09it/s]
Converting entities to vtk:  92%|█████████▏| 4252/4615 [00:30<00:02, 121.59it/s]
Converting entities to vtk:  92%|█████████▏| 4266/4615 [00:30<00:02, 121.23it/s]
Converting entities to vtk:  93%|█████████▎| 4280/4615 [00:30<00:02, 121.13it/s]
Converting entities to vtk:  93%|█████████▎| 4295/4615 [00:30<00:02, 123.63it/s]
Converting entities to vtk:  93%|█████████▎| 4310/4615 [00:30<00:02, 125.93it/s]
Converting entities to vtk:  94%|█████████▎| 4324/4615 [00:30<00:02, 124.10it/s]
Converting entities to vtk:  94%|█████████▍| 4338/4615 [00:30<00:02, 122.51it/s]
Converting entities to vtk:  94%|█████████▍| 4353/4615 [00:30<00:02, 125.01it/s]
Converting entities to vtk:  95%|█████████▍| 4367/4615 [00:30<00:02, 123.52it/s]
Converting entities to vtk:  95%|█████████▍| 4381/4615 [00:31<00:01, 122.39it/s]
Converting entities to vtk:  95%|█████████▌| 4396/4615 [00:31<00:01, 124.51it/s]
Converting entities to vtk:  96%|█████████▌| 4411/4615 [00:31<00:01, 126.48it/s]
Converting entities to vtk:  96%|█████████▌| 4425/4615 [00:31<00:01, 124.97it/s]
Converting entities to vtk:  96%|█████████▌| 4439/4615 [00:31<00:01, 120.39it/s]
Converting entities to vtk:  97%|█████████▋| 4454/4615 [00:31<00:01, 123.22it/s]
Converting entities to vtk:  97%|█████████▋| 4469/4615 [00:31<00:01, 125.63it/s]
Converting entities to vtk:  97%|█████████▋| 4483/4615 [00:31<00:01, 124.31it/s]
Converting entities to vtk:  97%|█████████▋| 4497/4615 [00:31<00:00, 122.66it/s]
Converting entities to vtk:  98%|█████████▊| 4512/4615 [00:32<00:01, 65.54it/s]
Converting entities to vtk:  98%|█████████▊| 4526/4615 [00:32<00:01, 75.60it/s]
Converting entities to vtk:  98%|█████████▊| 4540/4615 [00:32<00:00, 84.59it/s]
Converting entities to vtk:  99%|█████████▊| 4555/4615 [00:32<00:00, 94.71it/s]
Converting entities to vtk:  99%|█████████▉| 4570/4615 [00:32<00:00, 103.49it/s]
Converting entities to vtk: 100%|██████████| 4615/4615 [00:32<00:00, 140.16it/s]
PolyData (0x7f1a876206a0)
  N Cells:    753716
  N Points:   488880
  N Strips:   0
  X Bounds:   -5.052e+01, 4.945e+01
  Y Bounds:   -6.144e+01, 6.144e+01
  Z Bounds:   -4.577e+01, 6.388e+00
  N Arrays:   2


Compute mean curvature on the impeller surface. Mean curvature highlights the convex blade ridges and concave hub fillets: the regions a CFD or stress engineer wants to refine first. (Gaussian curvature on a near-developable blade is ~0 almost everywhere and washes out; mean curvature reads far better.)

surface = iges.extract_surface().compute_normals()
surface['mean_curvature'] = surface.curvature(curv_type='mean')
surface
/home/runner/work/pyvista-cad/pyvista-cad/examples/01_readers/read_iges.py:44: PyVistaFutureWarning: The default value of `algorithm` for the filter
`PolyData.extract_surface` will change in the future. It currently defaults to
`'dataset_surface'`, but will change to `None`. Explicitly set the `algorithm` keyword to
silence this warning.
  surface = iges.extract_surface().compute_normals()
PolyData (0x7f1a876ab280)
  N Cells:    753716
  N Points:   488880
  N Strips:   0
  X Bounds:   -5.052e+01, 4.945e+01
  Y Bounds:   -6.144e+01, 6.144e+01
  Z Bounds:   -4.577e+01, 6.388e+00
  N Arrays:   7


Render with a diverging colormap centred on zero so flat regions sit mid-scale and ridges / valleys pop. Symmetric, robust clim from the 90th percentile of the absolute curvature keeps a few extreme outliers from flattening the contrast.

q = float(np.nanpercentile(np.abs(surface['mean_curvature']), 90))

pl = pv.Plotter()
pl.cad.add(
    surface,
    scalars='mean_curvature',
    cmap='RdBu_r',
    clim=(-q, q),
    scalar_bar_args={'title': 'Mean curvature'},
)
pl.show()
read iges

Total running time of the script: (0 minutes 38.776 seconds)