167 lines
3.8 KiB
Markdown
167 lines
3.8 KiB
Markdown
# Common Workflows
|
|
|
|
## 1. New Drawing from Scratch
|
|
|
|
```
|
|
Progress:
|
|
- [ ] Step 1: Create drawing
|
|
- [ ] Step 2: Set up layers
|
|
- [ ] Step 3: Draw entities
|
|
- [ ] Step 4: Add dimensions
|
|
- [ ] Step 5: Add text annotations
|
|
- [ ] Step 6: Verify and save
|
|
```
|
|
|
|
**Step 1**: `drawing_new()` — creates empty drawing
|
|
|
|
**Step 2**: Create layers for organization:
|
|
```
|
|
layer_create("WALLS", color=7, linetype="Continuous")
|
|
layer_create("DOORS", color=3)
|
|
layer_create("WINDOWS", color=5)
|
|
layer_create("DIMENSIONS", color=1)
|
|
layer_create("TEXT", color=2)
|
|
```
|
|
Or use `template_apply_layers("architectural")` for standard sets.
|
|
|
|
**Step 3**: Draw geometry on appropriate layers:
|
|
```
|
|
layer_set_current("WALLS")
|
|
entity_create_rectangle(x1=0, y1=0, x2=6000, y2=4000)
|
|
entity_create_line(x1=3000, y1=0, x2=3000, y2=4000)
|
|
```
|
|
|
|
**Step 4**: Add dimensions:
|
|
```
|
|
layer_set_current("DIMENSIONS")
|
|
dimension_linear(x1=0, y1=0, x2=6000, y2=0, dim_x=3000, dim_y=-500)
|
|
```
|
|
|
|
**Step 5**: Add text labels:
|
|
```
|
|
layer_set_current("TEXT")
|
|
entity_create_text(text="Living Room", x=1500, y=2000, height=200)
|
|
```
|
|
|
|
**Step 6**: Verify and save:
|
|
```
|
|
analysis_entity_stats() # check entity counts
|
|
validation_check() # run quality checks
|
|
drawing_save("/path/to/drawing.dxf")
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Edit Existing DXF
|
|
|
|
```
|
|
Progress:
|
|
- [ ] Step 1: Open file
|
|
- [ ] Step 2: Explore contents
|
|
- [ ] Step 3: Make changes (with transaction)
|
|
- [ ] Step 4: Verify and save
|
|
```
|
|
|
|
**Step 1**: `drawing_open("/path/to/file.dxf")`
|
|
|
|
**Step 2**: Explore:
|
|
```
|
|
analysis_entity_stats() # overview
|
|
layer_list() # see layers
|
|
entity_list(type_filter="LINE", limit=20) # browse entities
|
|
```
|
|
|
|
**Step 3**: Begin transaction, then modify:
|
|
```
|
|
transaction_begin()
|
|
entity_move(handle="1A2B", dx=100, dy=0)
|
|
entity_set_properties(handle="3C4D", color=1, layer="WALLS")
|
|
entity_delete(handle="5E6F")
|
|
transaction_commit() # or transaction_rollback() to undo all
|
|
```
|
|
|
|
**Step 4**: `drawing_save()`
|
|
|
|
---
|
|
|
|
## 3. Batch Entity Creation
|
|
|
|
```
|
|
Progress:
|
|
- [ ] Step 1: Prepare entity list
|
|
- [ ] Step 2: Batch create
|
|
- [ ] Step 3: Verify results
|
|
```
|
|
|
|
**Step 1**: Build entity definitions:
|
|
```json
|
|
[
|
|
{"type": "line", "x1": 0, "y1": 0, "x2": 100, "y2": 0, "layer": "WALLS"},
|
|
{"type": "line", "x1": 100, "y1": 0, "x2": 100, "y2": 100, "layer": "WALLS"},
|
|
{"type": "circle", "cx": 50, "cy": 50, "radius": 10, "layer": "DETAILS"},
|
|
{"type": "text", "text": "A1", "x": 50, "y": -20, "height": 5, "layer": "TEXT"}
|
|
]
|
|
```
|
|
|
|
**Step 2**: `entity_batch_create(entities=[...])` — returns handles for all created entities
|
|
|
|
**Step 3**: `analysis_entity_stats()` to verify counts
|
|
|
|
---
|
|
|
|
## 4. Drawing Analysis
|
|
|
|
```
|
|
Progress:
|
|
- [ ] Step 1: Open drawing
|
|
- [ ] Step 2: Get overview stats
|
|
- [ ] Step 3: Examine specific areas
|
|
- [ ] Step 4: Measure and report
|
|
```
|
|
|
|
**Step 1**: `drawing_open(path)` or `drawing_info()` if already open
|
|
|
|
**Step 2**:
|
|
```
|
|
analysis_entity_stats() # by type and layer
|
|
analysis_layer_stats() # per-layer details
|
|
analysis_bounding_box() # drawing extents
|
|
```
|
|
|
|
**Step 3**: Region queries:
|
|
```
|
|
analysis_find_in_region(x1=0, y1=0, x2=1000, y2=1000, type_filter="LINE")
|
|
analysis_select_by_layer(layer_name="WALLS")
|
|
analysis_select_by_type(entity_type="CIRCLE")
|
|
```
|
|
|
|
**Step 4**: Measurements:
|
|
```
|
|
analysis_measure_distance(x1=0, y1=0, x2=100, y2=100)
|
|
analysis_measure_area(points=[[0,0],[100,0],[100,100],[0,100]])
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Template-Based Drawing
|
|
|
|
```
|
|
Progress:
|
|
- [ ] Step 1: Create drawing with template
|
|
- [ ] Step 2: Apply layer standards
|
|
- [ ] Step 3: Add content
|
|
- [ ] Step 4: Validate and save
|
|
```
|
|
|
|
**Step 1**: `drawing_new(template="/path/to/template.dwt")` (or `drawing_new()` without template)
|
|
|
|
**Step 2**: `template_apply_layers("architectural")` — creates standard layers
|
|
|
|
**Step 3**: Draw content on appropriate layers
|
|
|
|
**Step 4**:
|
|
```
|
|
validation_check(["empty_layers", "zero_length"])
|
|
drawing_save("/path/to/output.dxf")
|
|
```
|