|
Scheme Extensions:slinterface:skin-guide
|
|
|
C++ APIs:api_add_guide_curve_sli
|
|
|
Scheme Example
|
|
|
(part:clear)
|
|
(define frame1 (wcs (position 0 0 0) (gvector 1 0 0)
|
|
(gvector 0 1 0)))
|
|
(define wire_0 (wire-body (list
|
|
(edge:linear (position -60 0 0) (position 60 0 0))
|
|
(edge:linear (position 60 0 0) (position 60 50 0))
|
|
(edge:linear (position 60 50 0) (position -60 50 0))
|
|
(edge:linear (position -60 50 0) (position -60 0 0)))))
|
|
(define wire_1 (wire-body (list
|
|
(edge:linear (position -30 0 100) (position 30 0 100))
|
|
(edge:linear (position 30 0 100) (position 30 40 100))
|
|
(edge:linear (position 30 40 100)(position -30 40 100))
|
|
(edge:linear (position -30 40 100) (position -30 0 100)))))
|
|
(define wire_3 (wire-body (list (edge:circular
|
|
(position 0 -85 150) 25 0 360))))
|
|
(define guide1 (edge:spline (list (position 0 0 0)
|
|
(position 0 20 50) (position 0 0 100) (position 0 -20 160)
|
|
(position 0 -50 160) (position 0 -60 150))))
|
|
(zoom-all)
|
|
(define interface (slinterface:skinning
|
|
(list wire_0 wire_1 wire_3) #f #t #t #f #t #f #f #t))
|
|
(define skinningWires (slinterface:wires interface))
|
|
(entity:set-color skinningWires 1)
|
|
(slinterface:align-wires interface)
|
|
(slinterface:minimizetwist-wires interface)
|
|
(slinterface:breakup-wires interface)
|
|
(body:reverse (list-ref skinningWires 2))
|
|
(slinterface:skin-guide interface guide1)
|
|
(define body (slinterface:build-body interface))
|
|
(slinterface:delete-interface interface)
|
|
(entity:delete (list wire_0 wire_1 wire_3))
|
|
(solid:blend-edges (list-ref (entity:edges body) 8) 8)
|
|
(solid:blend-edges (list-ref (entity:edges body) 4) 8)
|
|
(solid:blend-edges (list-ref (entity:edges body) 13) 8)
|
|
(solid:blend-edges (list-ref (entity:edges body) 7) 8)
|
|
(shell:sheet-thicken body 3)
|
|
|
Example 1-13. Skinning with Guide Curves
|
|
|
|
|
Figure 1-45. Skinning with Guide Curves
|