aws-cqc / aws-cqc/DeviceLayout.jl
Improve postrenderer interface
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 21
Description
Right now we specify a postrenderer for a `SolidModel` by putting a list of `(new_physical_group_name, function, (args...), kwargs...)` tuples in the `SolidModelTarget`. We can make this nicer to use and more robust.
For example, instead of
```julia
( # Get metal ground plane by subtracting negative from writeable area
"metal", # Output group name
SolidModels.difference_geom!, # Operation
("writeable_area", "metal_negative", 2, 2), # (object, tool, object_dim, tool_dim)
:remove_object => true # Remove "writeable_area" group after operation
),
```
we could have
```julia
struct DifferenceOp <: PostrenderOp
output::String # Output group name
object::String # Object group name
tool::String # Tool group name
object_dim::Int # Object group dimension, default 2
tool_dim::Int # Tool group dimension, default 2
remove_object::Bool # Remove object group after operation
remove_tool::Bool # Remove tool group after operation
end
```
and so on.
Later, we could define a macro to create these like `@postrender metal = writeable_area(remove=true) - metal_negative`.
Contributor guide
Assessment
This issue has not been assessed yet.