SchemeExt:Sheet:edge-regions

From DocR21

Jump to: navigation, search

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

api_heal_edges_to_regions

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
;; ()
original edges(non continuous)
covered sheet
covered wire-body
Personal tools
Live