vault backup: 2025-08-29 12:47:00

This commit is contained in:
2025-08-29 12:47:00 -04:00
parent c1bdb06c6a
commit f831a58d53
6 changed files with 108 additions and 22 deletions
+22 -22
View File
@@ -1,13 +1,33 @@
{
"recentFiles": [
{
"basename": "feeders",
"path": "feeders.md"
"basename": "markdown-formatter-cli",
"path": "markdown-formatter-cli.md"
},
{
"basename": "automating-pdf-annotation",
"path": "automating-pdf-annotation.md"
},
{
"basename": "lighting-controls",
"path": "lighting-controls.md"
},
{
"basename": "electrical",
"path": "electrical.md"
},
{
"basename": "full-takeoff",
"path": "full-takeoff.md"
},
{
"basename": "README",
"path": "README.md"
},
{
"basename": "feeders",
"path": "feeders.md"
},
{
"basename": "fixture-designations",
"path": "fixture-designations.md"
@@ -20,10 +40,6 @@
"basename": "units",
"path": "units.md"
},
{
"basename": "README",
"path": "README.md"
},
{
"basename": "feeder-sizing",
"path": "feeder-sizing.md"
@@ -104,10 +120,6 @@
"basename": "misc-budgets",
"path": "misc-budgets.md"
},
{
"basename": "electrical",
"path": "electrical.md"
},
{
"basename": "psn-distribution-list",
"path": "psn-distribution-list.md"
@@ -132,10 +144,6 @@
"basename": "assembly-objects",
"path": "assembly-objects.md"
},
{
"basename": "automating-pdf-annotation",
"path": "automating-pdf-annotation.md"
},
{
"basename": "ai-in-estimating",
"path": "ai-in-estimating.md"
@@ -191,14 +199,6 @@
{
"basename": "excel-macros",
"path": "excel-macros.md"
},
{
"basename": "gold-plating",
"path": "gold-plating.md"
},
{
"basename": "uncertainty",
"path": "uncertainty.md"
}
],
"omittedPaths": [],
+45
View File
@@ -15,3 +15,48 @@ See [[portable-tools]] for valid dependencies.
Right now I'm exporting Bluebeam markups to csv before processing,
however if I converted to the code to extract the markups directly with MuPDF.Net
as I've managed before with itext, that could save a step.
## PDF Content Positional Tokenization
Recursively parse and consume pdf vector content.
> [!example]
> A span with text "GFCI" is consumed.
> (draw calls are removed from page content)
> A `gfci_label` token is created
> and encoded with the span's position.
> [!example]
> A `duplex_receptacle` token and a `gfci_label` token
> in close proximity are consumed
> creating a `duplex_gfci_receptacle` token
> which inherits the `duplex_receptacle`'s position.
```
$ mutool show file.pdf pages/1/Contents
629 0 obj
<<
/Filter /FlateDecode
/Length 31375
>>
stream
q
0.12 0 0 0.12 0 0 cm
/R8 gs
/R9 gs
2 w
1 J
1 j
0 G
q
4217 3947 m
4217 3879 l
4467 3879 l
4467 3947 l
4455 3947 l
4455 3891 l
4230 3891 l
4230 3947 l
...
```
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+15
View File
@@ -19,6 +19,21 @@ parent: [[electrical]]
All these control methods are likely to appear in drawings.
#### 0-10V Dimming
In conduit:
```
Southwire 64350501
SIMpull® 16/2 Low Voltage Signal Cable, Blue
```
This method is compliant with NEC 725.136(I)(1),
which allows control circuits to share a raceway with power conductors
if either all of the power conductors or all of the control conductors
are themselves in a raceway or in metal-sheathed,
metal-clad, nonmetallic-sheathed, or Type UF cables.
## Conventions
> [!info] "Local Control" as a PDI proposal qualification
+26
View File
@@ -0,0 +1,26 @@
---
id:
aliases: []
tags:
- topic/automation
- topic/software
- status/fleeting
---
# Markdown Formatter CLI
create a custom markdown formatter to implement desired features.
## Character Substitution
* em dashes to `--`
* curved quotes to straight
## Semantic Line Breaks
Join inappropriately split clauses.
Always split on certain syntax:
* full stop
Conditionally split in other cases
to prevent column overflow