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:38, 11.58it/s]
Converting entities to vtk:   0%|          | 17/4615 [00:00<01:10, 65.34it/s]
Converting entities to vtk:   1%|          | 32/4615 [00:00<00:52, 87.22it/s]
Converting entities to vtk:   1%|          | 47/4615 [00:00<00:46, 98.21it/s]
Converting entities to vtk:   1%|▏         | 62/4615 [00:00<00:43, 104.76it/s]
Converting entities to vtk:   2%|▏         | 77/4615 [00:00<00:41, 108.74it/s]
Converting entities to vtk:   2%|▏         | 92/4615 [00:00<00:40, 111.54it/s]
Converting entities to vtk:   2%|▏         | 107/4615 [00:01<00:39, 113.43it/s]
Converting entities to vtk:   3%|▎         | 122/4615 [00:01<00:39, 114.71it/s]
Converting entities to vtk:   3%|▎         | 137/4615 [00:01<00:38, 115.26it/s]
Converting entities to vtk:   3%|▎         | 152/4615 [00:01<00:38, 115.65it/s]
Converting entities to vtk:   9%|▉         | 435/4615 [00:01<00:06, 653.25it/s]
Converting entities to vtk:  11%|█▏        | 520/4615 [00:01<00:06, 609.43it/s]
Converting entities to vtk:  12%|█▏        | 573/4615 [00:01<00:07, 536.63it/s]
Converting entities to vtk:  13%|█▎        | 621/4615 [00:02<00:08, 476.23it/s]
Converting entities to vtk:  14%|█▍        | 665/4615 [00:02<00:09, 437.56it/s]
Converting entities to vtk:  15%|█▌        | 706/4615 [00:02<00:09, 402.17it/s]
Converting entities to vtk:  16%|█▌        | 744/4615 [00:02<00:16, 241.61it/s]
Converting entities to vtk:  17%|█▋        | 774/4615 [00:02<00:19, 199.60it/s]
Converting entities to vtk:  17%|█▋        | 799/4615 [00:03<00:29, 128.23it/s]
Converting entities to vtk:  18%|█▊        | 818/4615 [00:03<00:29, 130.67it/s]
Converting entities to vtk:  18%|█▊        | 836/4615 [00:03<00:28, 131.65it/s]
Converting entities to vtk:  18%|█▊        | 853/4615 [00:03<00:28, 131.62it/s]
Converting entities to vtk:  19%|█▉        | 869/4615 [00:04<00:35, 106.90it/s]
Converting entities to vtk:  19%|█▉        | 883/4615 [00:04<00:34, 107.11it/s]
Converting entities to vtk:  19%|█▉        | 897/4615 [00:04<00:34, 107.17it/s]
Converting entities to vtk:  20%|█▉        | 911/4615 [00:04<00:34, 106.92it/s]
Converting entities to vtk:  20%|██        | 925/4615 [00:04<00:34, 107.39it/s]
Converting entities to vtk:  20%|██        | 939/4615 [00:04<00:34, 107.35it/s]
Converting entities to vtk:  21%|██        | 951/4615 [00:04<00:35, 103.35it/s]
Converting entities to vtk:  21%|██        | 965/4615 [00:05<00:34, 104.93it/s]
Converting entities to vtk:  21%|██        | 979/4615 [00:05<00:34, 105.44it/s]
Converting entities to vtk:  22%|██▏       | 993/4615 [00:05<00:34, 106.40it/s]
Converting entities to vtk:  22%|██▏       | 1007/4615 [00:05<00:33, 106.16it/s]
Converting entities to vtk:  22%|██▏       | 1024/4615 [00:05<00:31, 112.44it/s]
Converting entities to vtk:  22%|██▏       | 1038/4615 [00:05<00:32, 110.16it/s]
Converting entities to vtk:  23%|██▎       | 1052/4615 [00:05<00:32, 110.01it/s]
Converting entities to vtk:  23%|██▎       | 1066/4615 [00:05<00:32, 110.14it/s]
Converting entities to vtk:  23%|██▎       | 1080/4615 [00:06<00:32, 110.11it/s]
Converting entities to vtk:  24%|██▎       | 1094/4615 [00:06<00:32, 109.80it/s]
Converting entities to vtk:  24%|██▍       | 1108/4615 [00:06<00:32, 109.50it/s]
Converting entities to vtk:  24%|██▍       | 1122/4615 [00:06<00:31, 109.59it/s]
Converting entities to vtk:  25%|██▍       | 1136/4615 [00:06<00:31, 109.64it/s]
Converting entities to vtk:  25%|██▍       | 1150/4615 [00:06<00:31, 109.61it/s]
Converting entities to vtk:  25%|██▌       | 1164/4615 [00:06<00:31, 109.72it/s]
Converting entities to vtk:  26%|██▌       | 1178/4615 [00:06<00:31, 109.91it/s]
Converting entities to vtk:  26%|██▌       | 1192/4615 [00:07<00:31, 109.89it/s]
Converting entities to vtk:  26%|██▌       | 1208/4615 [00:07<00:29, 115.18it/s]
Converting entities to vtk:  27%|██▋       | 1224/4615 [00:07<00:28, 118.84it/s]
Converting entities to vtk:  28%|██▊       | 1288/4615 [00:07<00:22, 149.65it/s]
Converting entities to vtk:  28%|██▊       | 1305/4615 [00:07<00:22, 145.94it/s]
Converting entities to vtk:  29%|██▊       | 1320/4615 [00:07<00:23, 139.48it/s]
Converting entities to vtk:  29%|██▉       | 1336/4615 [00:08<00:24, 135.73it/s]
Converting entities to vtk:  29%|██▉       | 1349/4615 [00:08<00:24, 134.43it/s]
Converting entities to vtk:  30%|██▉       | 1382/4615 [00:08<00:17, 180.47it/s]
Converting entities to vtk:  30%|███       | 1401/4615 [00:08<00:18, 171.38it/s]
Converting entities to vtk:  31%|███       | 1419/4615 [00:08<00:19, 161.81it/s]
Converting entities to vtk:  31%|███▏      | 1444/4615 [00:08<00:18, 171.32it/s]
Converting entities to vtk:  32%|███▏      | 1462/4615 [00:08<00:19, 160.14it/s]
Converting entities to vtk:  32%|███▏      | 1483/4615 [00:08<00:19, 157.71it/s]
Converting entities to vtk:  33%|███▎      | 1510/4615 [00:09<00:20, 153.88it/s]
Converting entities to vtk:  33%|███▎      | 1529/4615 [00:09<00:20, 150.57it/s]
Converting entities to vtk:  33%|███▎      | 1545/4615 [00:09<00:21, 143.07it/s]
Converting entities to vtk:  34%|███▍      | 1573/4615 [00:09<00:18, 163.48it/s]
Converting entities to vtk:  34%|███▍      | 1590/4615 [00:09<00:19, 153.11it/s]
Converting entities to vtk:  35%|███▍      | 1612/4615 [00:09<00:19, 154.63it/s]
Converting entities to vtk:  36%|███▌      | 1639/4615 [00:09<00:19, 152.08it/s]
Converting entities to vtk:  36%|███▌      | 1658/4615 [00:10<00:19, 149.29it/s]
Converting entities to vtk:  36%|███▋      | 1673/4615 [00:10<00:20, 140.51it/s]
Converting entities to vtk:  37%|███▋      | 1702/4615 [00:10<00:17, 163.51it/s]
Converting entities to vtk:  37%|███▋      | 1719/4615 [00:10<00:18, 153.25it/s]
Converting entities to vtk:  38%|███▊      | 1741/4615 [00:10<00:18, 152.53it/s]
Converting entities to vtk:  38%|███▊      | 1768/4615 [00:10<00:18, 150.61it/s]
Converting entities to vtk:  39%|███▊      | 1787/4615 [00:10<00:19, 147.99it/s]
Converting entities to vtk:  39%|███▉      | 1802/4615 [00:11<00:20, 139.41it/s]
Converting entities to vtk:  40%|███▉      | 1831/4615 [00:11<00:17, 162.05it/s]
Converting entities to vtk:  40%|████      | 1848/4615 [00:11<00:27, 101.18it/s]
Converting entities to vtk:  41%|████      | 1870/4615 [00:11<00:24, 113.40it/s]
Converting entities to vtk:  41%|████      | 1897/4615 [00:11<00:22, 123.12it/s]
Converting entities to vtk:  42%|████▏     | 1916/4615 [00:12<00:21, 127.12it/s]
Converting entities to vtk:  42%|████▏     | 1930/4615 [00:12<00:21, 122.42it/s]
Converting entities to vtk:  42%|████▏     | 1960/4615 [00:12<00:17, 149.22it/s]
Converting entities to vtk:  43%|████▎     | 1976/4615 [00:12<00:18, 141.41it/s]
Converting entities to vtk:  43%|████▎     | 1999/4615 [00:12<00:17, 147.58it/s]
Converting entities to vtk:  44%|████▍     | 2026/4615 [00:12<00:17, 145.21it/s]
Converting entities to vtk:  44%|████▍     | 2045/4615 [00:12<00:17, 143.59it/s]
Converting entities to vtk:  45%|████▍     | 2060/4615 [00:13<00:18, 136.10it/s]
Converting entities to vtk:  45%|████▌     | 2089/4615 [00:13<00:15, 159.11it/s]
Converting entities to vtk:  46%|████▌     | 2106/4615 [00:13<00:16, 149.76it/s]
Converting entities to vtk:  46%|████▌     | 2128/4615 [00:13<00:16, 151.44it/s]
Converting entities to vtk:  47%|████▋     | 2155/4615 [00:13<00:16, 149.28it/s]
Converting entities to vtk:  47%|████▋     | 2174/4615 [00:13<00:16, 146.58it/s]
Converting entities to vtk:  47%|████▋     | 2189/4615 [00:13<00:17, 138.37it/s]
Converting entities to vtk:  48%|████▊     | 2218/4615 [00:14<00:14, 161.27it/s]
Converting entities to vtk:  48%|████▊     | 2235/4615 [00:14<00:15, 151.26it/s]
Converting entities to vtk:  49%|████▉     | 2257/4615 [00:14<00:15, 152.46it/s]
Converting entities to vtk:  49%|████▉     | 2284/4615 [00:14<00:15, 149.86it/s]
Converting entities to vtk:  50%|████▉     | 2303/4615 [00:14<00:15, 146.78it/s]
Converting entities to vtk:  50%|█████     | 2318/4615 [00:14<00:16, 138.14it/s]
Converting entities to vtk:  51%|█████     | 2347/4615 [00:14<00:14, 160.67it/s]
Converting entities to vtk:  51%|█████     | 2364/4615 [00:15<00:14, 150.72it/s]
Converting entities to vtk:  52%|█████▏    | 2386/4615 [00:15<00:14, 151.46it/s]
Converting entities to vtk:  52%|█████▏    | 2413/4615 [00:15<00:14, 148.83it/s]
Converting entities to vtk:  53%|█████▎    | 2432/4615 [00:15<00:14, 145.98it/s]
Converting entities to vtk:  53%|█████▎    | 2447/4615 [00:15<00:15, 137.22it/s]
Converting entities to vtk:  54%|█████▎    | 2476/4615 [00:15<00:13, 159.82it/s]
Converting entities to vtk:  54%|█████▍    | 2493/4615 [00:15<00:14, 150.13it/s]
Converting entities to vtk:  54%|█████▍    | 2515/4615 [00:16<00:20, 101.24it/s]
Converting entities to vtk:  55%|█████▌    | 2542/4615 [00:16<00:18, 112.93it/s]
Converting entities to vtk:  55%|█████▌    | 2561/4615 [00:16<00:17, 118.52it/s]
Converting entities to vtk:  56%|█████▌    | 2575/4615 [00:16<00:17, 116.07it/s]
Converting entities to vtk:  56%|█████▋    | 2605/4615 [00:16<00:14, 143.21it/s]
Converting entities to vtk:  57%|█████▋    | 2621/4615 [00:17<00:14, 136.85it/s]
Converting entities to vtk:  57%|█████▋    | 2644/4615 [00:17<00:13, 143.57it/s]
Converting entities to vtk:  58%|█████▊    | 2671/4615 [00:17<00:13, 143.72it/s]
Converting entities to vtk:  58%|█████▊    | 2690/4615 [00:17<00:13, 141.67it/s]
Converting entities to vtk:  59%|█████▊    | 2705/4615 [00:17<00:14, 134.37it/s]
Converting entities to vtk:  59%|█████▉    | 2734/4615 [00:17<00:11, 157.25it/s]
Converting entities to vtk:  60%|█████▉    | 2750/4615 [00:17<00:12, 146.35it/s]
Converting entities to vtk:  60%|██████    | 2773/4615 [00:18<00:12, 150.10it/s]
Converting entities to vtk:  61%|██████    | 2800/4615 [00:18<00:12, 147.42it/s]
Converting entities to vtk:  61%|██████    | 2819/4615 [00:18<00:12, 147.03it/s]
Converting entities to vtk:  61%|██████▏   | 2834/4615 [00:18<00:12, 140.40it/s]
Converting entities to vtk:  62%|██████▏   | 2848/4615 [00:18<00:13, 134.00it/s]
Converting entities to vtk:  62%|██████▏   | 2863/4615 [00:18<00:13, 131.18it/s]
Converting entities to vtk:  62%|██████▏   | 2879/4615 [00:18<00:13, 130.93it/s]
Converting entities to vtk:  63%|██████▎   | 2893/4615 [00:18<00:13, 126.04it/s]
Converting entities to vtk:  63%|██████▎   | 2908/4615 [00:19<00:13, 125.41it/s]
Converting entities to vtk:  63%|██████▎   | 2922/4615 [00:19<00:13, 122.44it/s]
Converting entities to vtk:  64%|██████▎   | 2938/4615 [00:19<00:13, 123.93it/s]
Converting entities to vtk:  64%|██████▍   | 2953/4615 [00:19<00:13, 123.93it/s]
Converting entities to vtk:  64%|██████▍   | 2968/4615 [00:19<00:13, 122.63it/s]
Converting entities to vtk:  65%|██████▍   | 2982/4615 [00:19<00:13, 120.09it/s]
Converting entities to vtk:  65%|██████▍   | 2996/4615 [00:19<00:13, 118.07it/s]
Converting entities to vtk:  65%|██████▌   | 3011/4615 [00:19<00:13, 119.68it/s]
Converting entities to vtk:  66%|██████▌   | 3028/4615 [00:20<00:19, 79.80it/s]
Converting entities to vtk:  66%|██████▌   | 3042/4615 [00:20<00:18, 87.16it/s]
Converting entities to vtk:  66%|██████▌   | 3056/4615 [00:20<00:16, 93.22it/s]
Converting entities to vtk:  67%|██████▋   | 3071/4615 [00:20<00:15, 100.38it/s]
Converting entities to vtk:  67%|██████▋   | 3085/4615 [00:20<00:14, 104.14it/s]
Converting entities to vtk:  67%|██████▋   | 3099/4615 [00:20<00:14, 106.43it/s]
Converting entities to vtk:  67%|██████▋   | 3114/4615 [00:21<00:13, 111.21it/s]
Converting entities to vtk:  68%|██████▊   | 3129/4615 [00:21<00:12, 114.45it/s]
Converting entities to vtk:  68%|██████▊   | 3145/4615 [00:21<00:12, 117.81it/s]
Converting entities to vtk:  68%|██████▊   | 3159/4615 [00:21<00:12, 116.57it/s]
Converting entities to vtk:  69%|██████▉   | 3174/4615 [00:21<00:12, 118.41it/s]
Converting entities to vtk:  69%|██████▉   | 3189/4615 [00:21<00:11, 119.62it/s]
Converting entities to vtk:  69%|██████▉   | 3203/4615 [00:21<00:12, 117.20it/s]
Converting entities to vtk:  70%|██████▉   | 3217/4615 [00:21<00:12, 115.75it/s]
Converting entities to vtk:  70%|███████   | 3232/4615 [00:22<00:11, 118.59it/s]
Converting entities to vtk:  70%|███████   | 3246/4615 [00:22<00:11, 117.31it/s]
Converting entities to vtk:  71%|███████   | 3260/4615 [00:22<00:11, 116.45it/s]
Converting entities to vtk:  71%|███████   | 3275/4615 [00:22<00:11, 118.54it/s]
Converting entities to vtk:  71%|███████▏  | 3290/4615 [00:22<00:11, 120.00it/s]
Converting entities to vtk:  72%|███████▏  | 3304/4615 [00:22<00:11, 118.06it/s]
Converting entities to vtk:  72%|███████▏  | 3318/4615 [00:22<00:11, 116.78it/s]
Converting entities to vtk:  72%|███████▏  | 3333/4615 [00:22<00:10, 118.20it/s]
Converting entities to vtk:  73%|███████▎  | 3348/4615 [00:23<00:10, 119.66it/s]
Converting entities to vtk:  73%|███████▎  | 3362/4615 [00:23<00:10, 117.48it/s]
Converting entities to vtk:  73%|███████▎  | 3376/4615 [00:23<00:10, 115.77it/s]
Converting entities to vtk:  73%|███████▎  | 3391/4615 [00:23<00:10, 118.47it/s]
Converting entities to vtk:  74%|███████▍  | 3405/4615 [00:23<00:10, 116.83it/s]
Converting entities to vtk:  74%|███████▍  | 3419/4615 [00:23<00:10, 115.99it/s]
Converting entities to vtk:  74%|███████▍  | 3434/4615 [00:23<00:10, 118.06it/s]
Converting entities to vtk:  75%|███████▍  | 3449/4615 [00:23<00:09, 119.60it/s]
Converting entities to vtk:  75%|███████▌  | 3463/4615 [00:23<00:09, 117.89it/s]
Converting entities to vtk:  75%|███████▌  | 3477/4615 [00:24<00:09, 116.71it/s]
Converting entities to vtk:  76%|███████▌  | 3492/4615 [00:24<00:14, 75.52it/s]
Converting entities to vtk:  76%|███████▌  | 3507/4615 [00:24<00:12, 85.55it/s]
Converting entities to vtk:  76%|███████▋  | 3521/4615 [00:24<00:11, 92.00it/s]
Converting entities to vtk:  77%|███████▋  | 3535/4615 [00:24<00:11, 97.03it/s]
Converting entities to vtk:  77%|███████▋  | 3550/4615 [00:24<00:10, 104.04it/s]
Converting entities to vtk:  77%|███████▋  | 3564/4615 [00:25<00:09, 106.89it/s]
Converting entities to vtk:  78%|███████▊  | 3578/4615 [00:25<00:09, 108.47it/s]
Converting entities to vtk:  78%|███████▊  | 3593/4615 [00:25<00:09, 112.29it/s]
Converting entities to vtk:  78%|███████▊  | 3608/4615 [00:25<00:08, 115.42it/s]
Converting entities to vtk:  78%|███████▊  | 3622/4615 [00:25<00:08, 114.91it/s]
Converting entities to vtk:  79%|███████▉  | 3636/4615 [00:25<00:08, 114.16it/s]
Converting entities to vtk:  79%|███████▉  | 3651/4615 [00:25<00:08, 116.61it/s]
Converting entities to vtk:  79%|███████▉  | 3666/4615 [00:25<00:07, 118.66it/s]
Converting entities to vtk:  80%|███████▉  | 3682/4615 [00:26<00:07, 119.47it/s]
Converting entities to vtk:  80%|████████  | 3696/4615 [00:26<00:07, 117.35it/s]
Converting entities to vtk:  80%|████████  | 3713/4615 [00:26<00:07, 123.19it/s]
Converting entities to vtk:  81%|████████  | 3727/4615 [00:26<00:07, 120.54it/s]
Converting entities to vtk:  81%|████████  | 3741/4615 [00:26<00:07, 118.58it/s]
Converting entities to vtk:  81%|████████▏ | 3756/4615 [00:26<00:07, 119.69it/s]
Converting entities to vtk:  82%|████████▏ | 3771/4615 [00:26<00:07, 120.18it/s]
Converting entities to vtk:  82%|████████▏ | 3785/4615 [00:26<00:07, 118.07it/s]
Converting entities to vtk:  82%|████████▏ | 3799/4615 [00:27<00:06, 116.83it/s]
Converting entities to vtk:  83%|████████▎ | 3814/4615 [00:27<00:06, 118.53it/s]
Converting entities to vtk:  83%|████████▎ | 3829/4615 [00:27<00:06, 119.91it/s]
Converting entities to vtk:  83%|████████▎ | 3843/4615 [00:27<00:06, 117.81it/s]
Converting entities to vtk:  84%|████████▎ | 3857/4615 [00:27<00:06, 115.92it/s]
Converting entities to vtk:  84%|████████▍ | 3872/4615 [00:27<00:06, 118.12it/s]
Converting entities to vtk:  84%|████████▍ | 3886/4615 [00:27<00:06, 116.60it/s]
Converting entities to vtk:  85%|████████▍ | 3902/4615 [00:28<00:09, 77.29it/s]
Converting entities to vtk:  85%|████████▍ | 3917/4615 [00:28<00:08, 86.95it/s]
Converting entities to vtk:  85%|████████▌ | 3932/4615 [00:28<00:07, 95.38it/s]
Converting entities to vtk:  86%|████████▌ | 3946/4615 [00:28<00:06, 99.84it/s]
Converting entities to vtk:  86%|████████▌ | 3960/4615 [00:28<00:06, 103.57it/s]
Converting entities to vtk:  86%|████████▌ | 3975/4615 [00:28<00:05, 108.70it/s]
Converting entities to vtk:  86%|████████▋ | 3990/4615 [00:28<00:05, 112.75it/s]
Converting entities to vtk:  87%|████████▋ | 4004/4615 [00:29<00:05, 112.79it/s]
Converting entities to vtk:  87%|████████▋ | 4018/4615 [00:29<00:05, 112.01it/s]
Converting entities to vtk:  87%|████████▋ | 4033/4615 [00:29<00:05, 115.00it/s]
Converting entities to vtk:  88%|████████▊ | 4047/4615 [00:29<00:04, 114.44it/s]
Converting entities to vtk:  88%|████████▊ | 4061/4615 [00:29<00:04, 113.35it/s]
Converting entities to vtk:  88%|████████▊ | 4076/4615 [00:29<00:04, 115.92it/s]
Converting entities to vtk:  89%|████████▊ | 4091/4615 [00:29<00:04, 117.80it/s]
Converting entities to vtk:  89%|████████▉ | 4107/4615 [00:29<00:04, 120.32it/s]
Converting entities to vtk:  89%|████████▉ | 4121/4615 [00:30<00:04, 117.84it/s]
Converting entities to vtk:  90%|████████▉ | 4136/4615 [00:30<00:04, 119.17it/s]
Converting entities to vtk:  90%|████████▉ | 4151/4615 [00:30<00:03, 120.32it/s]
Converting entities to vtk:  90%|█████████ | 4165/4615 [00:30<00:03, 118.04it/s]
Converting entities to vtk:  91%|█████████ | 4179/4615 [00:30<00:03, 116.03it/s]
Converting entities to vtk:  91%|█████████ | 4194/4615 [00:30<00:03, 117.60it/s]
Converting entities to vtk:  91%|█████████ | 4208/4615 [00:30<00:03, 116.06it/s]
Converting entities to vtk:  91%|█████████▏| 4222/4615 [00:30<00:03, 114.92it/s]
Converting entities to vtk:  92%|█████████▏| 4237/4615 [00:30<00:03, 117.28it/s]
Converting entities to vtk:  92%|█████████▏| 4252/4615 [00:31<00:03, 118.89it/s]
Converting entities to vtk:  92%|█████████▏| 4266/4615 [00:31<00:02, 116.98it/s]
Converting entities to vtk:  93%|█████████▎| 4280/4615 [00:31<00:02, 115.38it/s]
Converting entities to vtk:  93%|█████████▎| 4295/4615 [00:31<00:02, 117.31it/s]
Converting entities to vtk:  93%|█████████▎| 4310/4615 [00:31<00:02, 119.02it/s]
Converting entities to vtk:  94%|█████████▎| 4324/4615 [00:31<00:02, 117.01it/s]
Converting entities to vtk:  94%|█████████▍| 4338/4615 [00:32<00:03, 73.76it/s]
Converting entities to vtk:  94%|█████████▍| 4353/4615 [00:32<00:03, 83.87it/s]
Converting entities to vtk:  95%|█████████▍| 4367/4615 [00:32<00:02, 90.54it/s]
Converting entities to vtk:  95%|█████████▍| 4381/4615 [00:32<00:02, 95.86it/s]
Converting entities to vtk:  95%|█████████▌| 4396/4615 [00:32<00:02, 102.60it/s]
Converting entities to vtk:  96%|█████████▌| 4411/4615 [00:32<00:01, 107.74it/s]
Converting entities to vtk:  96%|█████████▌| 4425/4615 [00:32<00:01, 109.08it/s]
Converting entities to vtk:  96%|█████████▌| 4439/4615 [00:32<00:01, 110.12it/s]
Converting entities to vtk:  97%|█████████▋| 4454/4615 [00:33<00:01, 113.19it/s]
Converting entities to vtk:  97%|█████████▋| 4469/4615 [00:33<00:01, 114.69it/s]
Converting entities to vtk:  97%|█████████▋| 4483/4615 [00:33<00:01, 113.73it/s]
Converting entities to vtk:  97%|█████████▋| 4497/4615 [00:33<00:01, 112.83it/s]
Converting entities to vtk:  98%|█████████▊| 4512/4615 [00:33<00:00, 115.53it/s]
Converting entities to vtk:  98%|█████████▊| 4526/4615 [00:33<00:00, 114.28it/s]
Converting entities to vtk:  98%|█████████▊| 4540/4615 [00:33<00:00, 113.39it/s]
Converting entities to vtk:  99%|█████████▊| 4555/4615 [00:33<00:00, 115.24it/s]
Converting entities to vtk:  99%|█████████▉| 4570/4615 [00:34<00:00, 116.56it/s]
Converting entities to vtk: 100%|██████████| 4615/4615 [00:34<00:00, 135.27it/s]
PolyData (0x7efd4301e6e0)
  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 (0x7efd42e378e0)
  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 39.665 seconds)