Guest User

Untitled

a guest
Mar 8th, 2014
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.73 KB | None | 0 0
  1. from brlcad.vmath import Transform
  2. from brlcad.wdb import WDB
  3. from brlcad import primitives
  4.  
  5. if __name__ == "__main__":
  6.     with WDB("test_wdb.g", "Test BRLCAD DB file") as brl_db:
  7.         brl_db.sphere(
  8.             "sph1.s",
  9.             center=(1, 2, 3),
  10.             radius=0.75
  11.         )
  12.         brl_db.rpp(
  13.             "box1.s",
  14.             pmin=(0, 0, 0),
  15.             pmax=(2, 4, 2.5)
  16.         )
  17.         brl_db.wedge(
  18.             "wedge1.s",
  19.             vertex=(0, 0, 3.5),
  20.             x_dir=(0, 1, 0),
  21.             z_dir=(0, 0, 1),
  22.             x_len=4, y_len=2, z_len=1,
  23.             x_top_len=3
  24.         )
  25.         brl_db.arb4(
  26.             "arb4.s",
  27.             points=[(-1, -5, 3), (1, -5, 3), (1, -3, 4), (0, -4, 5)]
  28.         )
  29.         brl_db.arb5(
  30.             "arb5.s",
  31.             points=[(-1, -5, 0), (1, -5, 0), (1, -3, 0), (-1, -3, 0), (0, -4, 3)]
  32.         )
  33.         brl_db.arb6(
  34.             "arb6.s",
  35.             points=[(-1, -2.5, 0), (1, -2.5, 0), (1, -0.5, 0), (-1, -0.5, 0), (0, -2.5, 2.5), (0, -0.5, 2.5)]
  36.         )
  37.         brl_db.arb7(
  38.             "arb7.s",
  39.             points=[(-1, -2.5, 3), (1, -2.5, 3), (1, -0.5, 3), (-1, -1.5, 3), (-1, -2.5, 5), (1, -2.5, 5), (1, -1.5, 5)]
  40.         )
  41.         brl_db.arb8(
  42.             "arb8.s",
  43.             points=[
  44.                 (-1, -1, 5), (1, -1, 5), (1, 1, 5), (-1, 1, 5),
  45.                 (-0.5, -0.5, 6.5), (0.5, -0.5, 6.5), (0.5, 0.5, 6.5), (-0.5, 0.5, 6.5)
  46.             ]
  47.         )
  48.         brl_db.ellipsoid(
  49.             "ellipsoid.s",
  50.             center=(0, -4, 6),
  51.             a=(0.75, 0, 0),
  52.             b=(0, 1, 0),
  53.             c=(0, 0, 0.5)
  54.         )
  55.         brl_db.torus(
  56.             "torus.s",
  57.             center=(0, -2, 6),
  58.             n=(0, 0, 1),
  59.             r_revolution=1,
  60.             r_cross=0.25
  61.         )
  62.         brl_db.rcc(
  63.             "rcc.s",
  64.             base=(1, 2, 5),
  65.             height=(0, 0, 1),
  66.             radius=1
  67.         )
  68.         brl_db.tgc(
  69.             "tgc.s",
  70.             base=(0, -5, 7),
  71.             height=(0, 0, 1),
  72.             a=(0.5, 0, 0),
  73.             b=(0, 1, 0),
  74.             c=(1, 0, 0),
  75.             d=(0, 0.5, 0)
  76.         )
  77.         brl_db.cone(
  78.             "cone.s",
  79.             base=(0, -2, 7),
  80.             n=(0, 0, 2),
  81.             h=0.5,
  82.             r_base=1.25,
  83.             r_top=0.75
  84.         )
  85.         brl_db.trc(
  86.             "trc.s",
  87.             base=(0, -2, 7.5),
  88.             height=(0, 0, 0.5),
  89.             r_base=0.75,
  90.             r_top=1.25
  91.         )
  92.         brl_db.rpc(
  93.             "rpc.s",
  94.             base=(0, -2, 8.5),
  95.             height=(0, 0, 0.5),
  96.             breadth=(0.25, 0.25, 0),
  97.             half_width=0.75
  98.         )
  99.         brl_db.rhc(
  100.             "rhc.s",
  101.             base=(0, -2, 9),
  102.             height=(0, 0, 0.5),
  103.             breadth=(0.25, 0.25, 0),
  104.             half_width=0.75,
  105.             asymptote=0.1
  106.         )
  107.         brl_db.epa(
  108.             "epa.s",
  109.             base=(1, 2, 7),
  110.             height=(0, 0, -1),
  111.             n_major=(1, 0, 0),
  112.             r_major=1,
  113.             r_minor=0.5
  114.         )
  115.         brl_db.ehy(
  116.             "ehy.s",
  117.             base=(1, 2, 7),
  118.             height=(0, 0, 1),
  119.             n_major=(1, 0, 0),
  120.             r_major=1, r_minor=0.5,
  121.             asymptote=0.1
  122.         )
  123.         brl_db.hyperboloid(
  124.             "hyperboloid.s",
  125.             base=(0, 0, 6.75),
  126.             height=(0, 0, 0.75),
  127.             a_vec=(1, 0, 0),
  128.             b_mag=0.5,
  129.             base_neck_ratio=0.3
  130.         )
  131.         brl_db.eto(
  132.             "eto.s",
  133.             center=(1, 2, 8.5),
  134.             n=(0, 0, 1),
  135.             s_major=(0.5, 0, 0.5),
  136.             r_revolution=1,
  137.             r_minor=0.25
  138.         )
  139.         brl_db.arbn(
  140.             "arbn.s",
  141.             planes=[
  142.                 [(0, 0, -1), -8],
  143.                 [(0, 0, 1), 9],
  144.                 [(-1, 0, 0), 0.5],
  145.                 [(1, 0, 0), 0.5],
  146.                 [(0, -1, 0), 0.5],
  147.                 [(0, 1, 0), 0.5],
  148.             ]
  149.         )
  150.         brl_db.particle(
  151.             "particle.s",
  152.             base=(0, -5, 8.5),
  153.             height=(0, 0, 0.75),
  154.             r_base=0.25,
  155.             r_end=0.5
  156.         )
  157.         brl_db.pipe(
  158.             "pipe.s",
  159.             points=[
  160.                 [(0.55, 4, 5.45), 0.1, 0, 0.45],
  161.                 [(0.55, 3.55, 5.4875), 0.1, 0, 0.45],
  162.                 [(1.45, 3.55, 5.5625), 0.1, 0, 0.45],
  163.                 [(1.45, 4.45, 5.6375), 0.1, 0, 0.45],
  164.                 [(0.55, 4.45, 5.7125), 0.1, 0, 0.45],
  165.                 [(0.55, 3.55, 5.7875), 0.1, 0, 0.45],
  166.                 [(1.45, 3.55, 5.8625), 0.1, 0, 0.45],
  167.                 [(1.45, 4.45, 5.9375), 0.1, 0, 0.45],
  168.                 [(0.55, 4.45, 6.0125), 0.1, 0, 0.45],
  169.                 [(0.55, 4, 6.05), 0.1, 0, 0.45],
  170.             ]
  171.         )
  172.         brl_db.region(
  173.             name="all.r",
  174.             tree=(
  175.                 "sph1.s",
  176.                 "box1.s",
  177.                 "wedge1.s",
  178.                 "arb4.s",
  179.                 "arb5.s",
  180.                 "arb6.s",
  181.                 "arb7.s",
  182.                 "arb8.s",
  183.                 "ellipsoid.s",
  184.                 "torus.s",
  185.                 "rcc.s",
  186.                 "tgc.s",
  187.                 "cone.s",
  188.                 "trc.s",
  189.                 "rpc.s",
  190.                 "rhc.s",
  191.                 "epa.s",
  192.                 "ehy.s",
  193.                 "hyperboloid.s",
  194.                 "eto.s",
  195.                 primitives.leaf("arbn.s", Transform.translation(1, 0, 0)),
  196.                 "particle.s",
  197.                 "pipe.s",
  198.             ),
  199.             shader="plastic {di .8 sp .2}",
  200.             rgb_color=(64, 180, 96)
  201.         )
  202.  
  203.     with WDB("test_wdb.g") as brl_db:
  204.         for x in brl_db.ls():
  205.             print brl_db.lookup(x)
Advertisement
Add Comment
Please, Sign In to add comment