SchemeExt:Sheet:edge-regions
From DocR21
Contents |
Action
Repairs coplanar edge vertices within point coincident tolerance to form regions on a planar sheet.
Filename
scm/scmext/covr/wire_heal_scm.cpp
APIs
Syntax
(sheet:edge-regions edge-list [coin-tol] [min-length] [wire] [ao])
Argument Types
| Argument | Scheme Data Type |
|---|---|
| edge-list | edge | edge ... |
| coin-tol | real |
| min-length | real |
| wire | string |
| ao | acis-options |
Returns
body | wire
Description
This extension takes the list of noncontinuous edges defined in the first argument (edge-list), snaps the vertices to the edges, and unites the edges to create a single wire body.
Arguments
- edge-list argument calls the defined edge or edge list for repair.
- coin-tol argument defines the minimum tolerance allowed for coincidence. All vertices within the coincident tolerance are joined.
- min-length argument defines the minimum length tolerance allowed.
- wire argument requires the string "wire". When this argument is defined, a wire is returned.
- ao contains journaling and versioning information.
Example
; sheet:edge-regions ; Create topology to illustrate example. (define edge1 (edge:linear (position 0 0 0) (position 10 0 0))) ;; edge1 (define edge2 (edge:linear (position 10.1 0 0) (position 10 10.15 0))) ;; edge2 (define edge3 (edge:linear (position 10 10 0) (position 0 10 0))) ;; edge3 (define edge4 (edge:linear (position 0 10.1 0) (position 0.1 0.15 0))) ;; edge4 ; Create a sheet from edges that are not continuous. (define sheet (sheet:edge-regions (part:entities) 1 0.1)) ; stage 1: verify input edge set (4 edges). ; stage 2: snap vertices to edges. ; (8 free vertices) ; > cannot snap vertex at position 0.0000 0.0000 0.0000 ; > nearest entity is at position 0.0000 10.0000 ; 0.0000 (distance 10) ; 8 ; 7 vertices snapped. ; 1 edges split. ; stage 3: cleanup overlapping edges ; (5 edges) 4 ; stage 4: unite edges into wire body. ; (5 edges) 5 ; stage 5: remove edges under length tolerance. ; (5 edges) no short edge. ; stage 6: create regions from edges. ; (sheet:edge-regions) 1 faces created with 4 edges ; shortest edge length in the faces is 10 ; (vs 0.1) ;; sheet (entity:check sheet) ; checked: ; 1 lumps ; 1 shells ; 0 wires ; 1 faces ; 1 loops ; 4 coedges ; 4 edges ; 4 vertices ;; () (define 2d (sheet:2d sheet)) ;; 2d (roll) ;; -1 ; Create wire only (define wire (sheet:edge-regions (part:entities) 0.1 0.1 "wire")) ; stage 1: verify input edge set (4 edges). ; stage 2: snap vertices to edges. ; (0 free vertices) 0 ; stage 3: cleanup overlapping edges ; (4 edges) 3 ; stage 4: unite edges into wire body. ; (4 edges) 4 ; stage 5: remove edges under length tolerance. ; (4 edges) no short edge. ;; wire (entity:check wire) ; checked: ; 1 lumps ; 1 shells ; 1 wires ; 0 faces ; 0 loops ; 4 coedges ; 4 edges ; 4 vertices ;; ()



