From b64ca8e43ddaee34c86731a06aa7a3e813c96936 Mon Sep 17 00:00:00 2001 From: zahuifan Date: Thu, 20 Jan 2022 14:45:28 +0800 Subject: [PATCH] Add Normalize Selected Arrows ea-script file --- ea-scripts/Normalize Selected Arrows.md | 79 +++++++++++++++++++ ea-scripts/README.md | 1 + ea-scripts/index.md | 7 ++ images/scripts-normalize-selected-arrows.png | Bin 0 -> 29563 bytes 4 files changed, 87 insertions(+) create mode 100644 ea-scripts/Normalize Selected Arrows.md create mode 100644 images/scripts-normalize-selected-arrows.png diff --git a/ea-scripts/Normalize Selected Arrows.md b/ea-scripts/Normalize Selected Arrows.md new file mode 100644 index 0000000..bdf2f64 --- /dev/null +++ b/ea-scripts/Normalize Selected Arrows.md @@ -0,0 +1,79 @@ +/* +![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-download-raw.jpg) + +Download this file and save to your Obsidian Vault including the first line, or open it in "Raw" and copy the entire contents to Obsidian. + +![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-normalize-selected-arrows.png) + +This script will reset the start and end positions of the selected arrows. The arrow will point to the center of the connected box and will have a gap of 8px from the box. + +See documentation for more details: +https://zsviczian.github.io/obsidian-excalidraw-plugin/ExcalidrawScriptsEngine.html + +```javascript +*/ +const selectedIndividualArrows = ea.getMaximumGroups(ea.getViewSelectedElements()) + .reduce((result, group) => (group.length === 1 && (group[0].type === 'arrow' || group[0].type === 'line')) ? + [...result, group[0]] : result, []); + +const allElements = ea.getViewElements(); +for(const arrow of selectedIndividualArrows) { + const startBindingEl = allElements.filter(el => el.id === (arrow.startBinding||{}).elementId)[0]; + const endBindingEl = allElements.filter(el => el.id === (arrow.endBinding||{}).elementId)[0]; + + if(startBindingEl) { + recalculateStartPointOfLine(arrow, startBindingEl, endBindingEl); + } + if(endBindingEl) { + recalculateEndPointOfLine(arrow, endBindingEl, startBindingEl); + } +} + +ea.copyViewElementsToEAforEditing(selectedIndividualArrows); +ea.addElementsToView(); + +function recalculateStartPointOfLine(line, el, elB) { + const aX = el.x + el.width/2; + const bX = (line.points.length <=2 && elB) ? elB.x + elB.width/2 : line.x + line.points[1][0]; + const aY = el.y + el.height/2; + const bY = (line.points.length <=2 && elB) ? elB.y + elB.height/2 : line.y + line.points[1][1]; + + line.startBinding.gap = 8; + line.startBinding.focus = 0; + const intersectA = ea.intersectElementWithLine( + el, + [bX, bY], + [aX, aY], + line.startBinding.gap + ); + + if(intersectA.length > 0) { + line.points[0] = [0, 0]; + for(var i = 1; i 0) { + line.points[line.points.length - 1] = [intersectA[0][0] - line.x, intersectA[0][1] - line.y]; + } +} \ No newline at end of file diff --git a/ea-scripts/README.md b/ea-scripts/README.md index 6e1b8a7..833ab1c 100644 --- a/ea-scripts/README.md +++ b/ea-scripts/README.md @@ -35,6 +35,7 @@ Open the script you are interested in and save it to your Obsidian Vault includi |[Lighten background color](Lighten%20background%20color.md)|This script lightens the background color of the selected element by 2% at a time. You can use this script several times until you are satisfied. It is recommended to set a shortcut key for this script so that you can quickly try to DARKEN and LIGHTEN the color effect.In contrast to the `Modify background color opacity` script, the advantage is that the background color of the element is not affected by the canvas color, and the color value does not appear in a strange rgba() form.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/darken-lighten-background-color.png)|[@1-2-3](https://github.com/1-2-3)| |[Modify background color opacity](Modify%20background%20color%20opacity.md)|This script changes the opacity of the background color of the selected boxes. The default background color in Excalidraw is so dark that the text is hard to read. You can lighten the color a bit by setting transparency. And you can tweak the transparency over and over again until you're happy with it. Although excalidraw has the opacity option in its native property Settings, it also changes the transparency of the border. Use this script to change only the opacity of the background color without affecting the border.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-modify-background-color-opacity.png)|[@1-2-3](https://github.com/1-2-3)| |[Modify stroke width of selected elements](Modify%20stroke%20width%20of%20selected%20elements.md)|This script will set the stroke width of selected elements. This is helpful, for example, when you scale freedraw sketches and want to reduce or increase their line width.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-stroke-width.jpg)|[@zsviczian](https://github.com/zsviczian)| +|[Normalize Selected Arrows](Normalize%20Selected%20Arrows.md)|This script will reset the start and end positions of the selected arrows. The arrow will point to the center of the connected box and will have a gap of 8px from the box.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-normalize-selected-arrows.png)|[@1-2-3](https://github.com/1-2-3)| |[OCR - Optical Character Recognition](OCR%20-%20Optical%20Character%20Recognition.md)|The script will 1) send the selected image file to [taskbone.com](https://taskbone.com) to exctract the text from the image, and 2) will add the text to your drawing as a text element.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-ocr.jpg)|[@zsviczian](https://github.com/zsviczian)| |[Reverse arrows](Reverse%20arrows.md)|Reverse the direction of **arrows** within the scope of selected elements.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-reverse-arrow.jpg)|[@zsviczian](https://github.com/zsviczian)| |[Set Link Alias](Set20%Link20%Alias.md)|Iterates all of the links in the selected TextElements and prompts the user to set or modify the alias for each link found.|![](https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/images/scripts-set-link-alias.jpg)|[@zsviczian](https://github.com/zsviczian)| diff --git a/ea-scripts/index.md b/ea-scripts/index.md index 9aff4e0..97cf54f 100644 --- a/ea-scripts/index.md +++ b/ea-scripts/index.md @@ -46,6 +46,7 @@ I would love to include your contribution in the script library. If you have a s - [[#Lighten background color]] - [[#Modify background color opacity]] - [[#Modify stroke width of selected elements]] +- [[#Normalize Selected Arrows]] - [[#OCR - Optical Character Recognition]] - [[#Reverse arrows]] - [[#Set Link Alias]] @@ -180,6 +181,12 @@ https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea ```
Author@zsviczian
SourceFile on GitHub
DescriptionThis script will set the stroke width of selected elements. This is helpful, for example, when you scale freedraw sketches and want to reduce or increase their line width.
+## Normalize Selected Arrows +```excalidraw-script-install +https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/Normalize%20Selected%20Arrows +``` +
Author@1-2-3
SourceFile on GitHub
DescriptionThis script will reset the start and end positions of the selected arrows. The arrow will point to the center of the connected box and will have a gap of 8px from the box.
+ ## OCR - Optical Character Recognition ```excalidraw-script-install https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/OCR%20-%20Optical%20Character%20Recognition.md diff --git a/images/scripts-normalize-selected-arrows.png b/images/scripts-normalize-selected-arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..85f23c33f4b94e85d5ed96ffc66a33a964600db1 GIT binary patch literal 29563 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 literal 0 HcmV?d00001