he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
onents (radiation, sunlight-hours and view analysis) which let you study the effect of the orientation of your building and the analysis result. When you come to a question similar to "what is the orientation that the building receives the most/least amount of radiation?" is probably the right time to use this component.
HOW?
I'll try to explain the steps using a simple example. Here is my design geometries. The building in the center is the building to be designed and the rest of the buildings are context. I want to see the effect of orientation on the amount of the radiation on the test building surfaces from the start of Oct. to the end of Feb. for Chicago.
First I need to set up the normal radiation analysis and run it for the building as it is right now. [I'm not going to explain how you can set up this since you can find it in the sample file (Download the sample file from here)]
Now I need to set up the parameters for orientation study using orientationStudyPar component. You can find it under the Extra tab:
At minimum I need to input the divisionAngle, and the totalAngle and set runTheStudy to True. In this case I put 45 for divisionAngle and 180 for the totalAngle which means I want the study to be run for angles 0, 45, 90, 135 and 180.
[Note1: The divisionAngle should be divisible by totalAngle.]
[Note 2: If you don't provide any point for the basePoint, the component will use the center of the geometry as the center of the rotation.]
[Note 3: You can also rotate the context with the geometry! Normally you don't have the chance to change the context to make your design work but if you got lucky the rotateContext input is for you! Set it to True. The default is set to False.]
You're all set for the orientation study, just connect the orientationStudyPar output to OrientationStudyP input in the component and wait for the result!
The component will run the study for all the orientations and preview the latest geometry. To see the result just grab a quick graph and connect it to totalRadiation. As you can see in the graph 135 is the orientation that I receive the maximum radiation. Dang!
If you want to see all the result geometries set bakeIt to True, and the result will be baked under LadyBug> RadaitionStudy>[projectname]> . The layer name starts with a number which is the totalRadiation.
Mostapha…
her people) a tremendous amount of time creating them by hand. Dog Treat was far from perfect, however it was good enough to use almost daily.
Three years is a long time. Since 2016 my Gh knowledge has expanded and I’ve seen how dodgy some of the scripting is. With this in mind I started work on a new build. Many things have been tweaked and some things have been rebuilt from the ground up.
Everything has been designed to be leaner and be a general solution to the problem of creating dog bone corners on geometry for quick, efficient and safe CNC fabrication.
Some of these things are:
Adding prompts about user geometry to make them aware about open curves, varying curve heights and if their geometry had been altered (mostly removing unnecessary points on curves).
Smooth Transfers. If you’re in a rush and need to speed through cutting, smooth transfers mean that a lead in geometry is now created alongside the actual dog bone arc. This means the router bit doesn’t have to come to a minute stop at every corner. This is turned on by default.
Acute Angle Condition If the angle between the two curves adjacent to a dog bone point is acute, previously the dog bone corner was useless. This was because the distance between the end points of the dog bone arc were less than the diameter of the router bit. There are many ways this condition could be addressed. I chose to circumscribe a larger arc based on the original angle between the adjacent curves. While it removes more material from the corner, it minimises tool wear and any potential for material to burn.
Single Curve A single curve can now be input into Dog Treat. It will be output with both internal and external treatments.
I’ll continue to update Dog Treat as the need arises, it’s become somewhat of a hobby now. Maybe one day it will become part of a Plug-in… once I learn to code it though!
Happy Treating!
Hi Everyone,
Here's a tool I've been working on for the past 4 months or so in my free time. It's a dog bone corner generator, however it's a little different to some of the existing ones. It's designed to be used for large amounts of geometry and as such, it avoids using any curve boolean operations that are computationally taxing. You don't have to split your curves up into internal and external lots either, it works it all out so you can be lazy. I've also incorporated Lunch Box's Object Bake Component for a one click operation that bakes geometry back out to Internal and External profile layers.
Let me know how it goes, will update where necessary.
Best,
Darcy
Change Log
06/11/19 - Version 2.0 SECOND DINNER - Rebuild
29/09/17 - Version 1.3 - Now with smooth corners option, True for smooth default/False for original
18/05/17 - Version 1.2 - Now includes variable angle domain input (defaults at 90°) for angled corners
13/11/16 - slight change to enable acceptance of very large interior curves
…
Added by Darcy Zelenko at 8:44pm on November 9, 2016
assume we want to format two numbers, one integer and a floating point value. The integer represents an index and it should appear inside square brackets, then we want the floating point number rounded to a maximum of 4 decimal places (but always using at least one decimal place, even if it's zero), and then, in parentheses a scientific notation representation using 8 decimal digits of the number.
So, assuming the index is 16 and the value is 47.280006208, what we are after is:
[16] 47.28 (4.72800062E+001)
To make this work, we need a formatting pattern that looks like:
[{0}] {1:0.0###} ({1:E8})
The square brackets, spaces and parenthesis are just part of the output, they have no meaning whilst formatting. Everything inside the curly brackets though will be replaced with a specific formatting of one of the values.
When using the Format component as shown above, the formatting pattern is just text data. The component knows that it is supposed to use the Format() function using the pattern text and whatever additional data is provided.
When you invoke the Format() method in an expression, you do need to make sure that the pattern is actually text:
So here the pattern needs to be encased in double quotes, otherwise it will be treated as code, rather than text.
You cannot use the formatting method in the internal expression of a number parameter, because this method returns text, whereas the number parameter is only capable of storing numbers. Any expression that you put into a number parameter had better return numbers as a result.…
ort and export from the images below and also from the HELP file of DB in attachments (Page 71: Importing Geometric Data; Page 78-80: Import 3 - D CAD Data). In their HELP file, they mention about "import geometric data".
However, regarding the input of schedules, loads, constructions and etc., DB normally uses "Component " and "Template" (Page 29: Templates And Components; Page 591: Templates; Page 533: Components). "Templates" are databases of typical generic data, including Activity templates, Construction templates, Glazing templates, Facade templates, HVAC templates, Location Templates, and etc. "Component " are databases of individual data items (e.g. a construction type, material, window pane).
Both "Component " and "Template" are allowed to be imported and exported by using "Import / Export library data" command (.ddf format - DB Database File; Page 734: Import Components/Templates, Export Components/Templates). DB also allows us to build up our own libraries of templates and components (Page 731: Library Management; Page 733: Template Library Management).
In order to import both geometric information and other information related to schedules, loads, constructions and etc. from GH to BD, we supposed the following two ways:
1. GH(HB+GB) --> gbXML (both geometric and "Component " and "Template" information) --> DB
This is the way we most prefer. We did see information related to schedules, loads, constructions encoded in the gbXML file generated by GB, but still do not know the reason why DB did not take this information (I also mentioned this in Q6 within the gh file). We assume this might because the gbXML file we create encodes the schedules based on a different template / schema than the one DB expects. We also post this question to the DB forum for help.
(http://www.designbuilder.co.uk/component/option,com_forum/Itemid,25/page,viewtopic/p,13755/#13755)
2. GH(HB+GB) --> gbXML (geometric information only) + .ddf ("Component " and "Template" information only) --> DB
If the first way doesn't work and DB only takes geometric information from the gbXML, then we might think of the other way - generating the .ddf files from GH(HB+GB) to pass the schedule, load and construction information to DB.
I was wondering if it is feasible for HB and GB to have this function? And what is your suggestion to achieve this?
In addition, we notice that DB can export XML files (not gbXML), so we are trying to figure out if DB also accepts / reads the XML file. If so, we might be able to convert the gbXML (with both geometric and schedule information) to XML. What do you think about that?
Thank you again for all your help!
Best,
Ding
DB import
DB export
Template libraries
Component libraries
…
n make it possible to Motivation generate
a variety of interesting objects, from abstract fractals to plant-like
branching structures, their modeling power is quite limited. A major
problem can be traced to the reduction of all lines to integer multiples
of the unit segment. As a result, even such a simple figure as an
isosceles right-angled triangle cannot be traced exactly, since the ratio
of its hypotenuse length to the length of a side is expressed by the irrational
number √2. Rational approximation of line length provides only
a limited solution, because the unit step must be the smallest common
1
1
√2
denominator of all line lengths in the modeled structure. Consequently,
the representation of a simple plant module, such as an internode, may
require a large number of symbols. The same argument applies to angles.
Problems become even more pronounced while simulating changes
to the modeled structure over time, since some growth functions cannot
be expressed conveniently using L-systems. Generally, it is difficult
1.10. Parametric L-systems 41
to capture continuous phenomena, since the obvious technique of discretizing
continuous values may require a large number of quantization
levels, yielding L-systems with hundreds of symbols and productions.
Consequently, model specification becomes difficult, and the mathematical
beauty of L-systems is lost.
In order to solve similar problems, Lindenmayer proposed that numerical
parameters be associated with L-system symbols [83]. He illustrated
this idea by referring to the continuous development of branching
structures and diffusion of chemical compounds in a nonbranching filament
of Anabaena catenula.
The following is an example of its application:
starting string: A
p1: A F(1)[+A][-A]
P2: F(s) F(s*R)
which I think is basically trying to say
F(s) = move forwar a step of length s > 0.
Thanks again,
Mateo…
[2 of 8] No context surfaces...5. [3 of 8] Writing geometry...6. [4 of 8] Writing Electric Load Center - Generator specifications ...7. [5 of 8] Writing materials and constructions...8. [6 of 8] Writing schedules...9. [7 of 8] Writing loads and ideal air system...10. [8 of 8] Writing outputs...11. ...... idf file is successfully written to : C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\THOR001.idf12. 13. Analysis is running!...14. C:\Users\Personal\Desktop\TESI\x006\THOR001\EnergyPlus\eplusout.csv15. ......
Done! Read below for errors and warnings:
16. 17. Program Version,EnergyPlus, Version 8.3.0-6d97d074ea, YMD=2016.01.17 17:56,IDD_Version 8.3.018. 19. ** Warning ** IP: Note -- Some missing fields have been filled with defaults. See the audit output file for details.20. 21. ************* Beginning Zone Sizing Calculations22. 23. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)24. 25. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00126. 27. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00128. 29. ** ~~~ ** (Dot Product indicator=184.4593)30. 31. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.32. 33. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)34. 35. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00136. 37. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00138. 39. ** ~~~ ** (Dot Product indicator=184.4593)40. 41. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.42. 43. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)44. 45. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00146. 47. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00148. 49. ** ~~~ ** (Dot Product indicator=184.4593)50. 51. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.52. 53. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)54. 55. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00156. 57. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD1 is in front of receiving surface=PELLE_COMUNIONE00158. 59. ** ~~~ ** (Dot Product indicator=184.4593)60. 61. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.62. 63. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)64. 65. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00166. 67. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00168. 69. ** ~~~ ** (Dot Product indicator=184.4593)70. 71. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.72. 73. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)74. 75. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00176. 77. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00178. 79. ** ~~~ ** (Dot Product indicator=184.4593)80. 81. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.82. 83. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)84. 85. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00186. 87. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00188. 89. ** ~~~ ** (Dot Product indicator=184.4593)90. 91. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.92. 93. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)94. 95. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=00196. 97. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE00198. 99. ** ~~~ ** (Dot Product indicator=184.4593)100. 101. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.102. 103. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)104. 105. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001106. 107. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001108. 109. ** ~~~ ** (Dot Product indicator=184.4593)110. 111. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.112. 113. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)114. 115. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001116. 117. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE002 is in front of receiving surface=PELLE_COMUNIONE001118. 119. ** ~~~ ** (Dot Product indicator=184.4593)120. 121. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.122. 123. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)124. 125. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001126. 127. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001128. 129. ** ~~~ ** (Dot Product indicator=182.6148)130. 131. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.132. 133. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)134. 135. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001136. 137. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001138. 139. ** ~~~ ** (Dot Product indicator=92.2297)140. 141. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.142. 143. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)144. 145. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001146. 147. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001148. 149. ** ~~~ ** (Dot Product indicator=92.2297)150. 151. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.152. 153. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)154. 155. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001156. 157. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001158. 159. ** ~~~ ** (Dot Product indicator=182.6148)160. 161. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.162. 163. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)164. 165. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001166. 167. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001168. 169. ** ~~~ ** (Dot Product indicator=92.2297)170. 171. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.172. 173. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)174. 175. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001176. 177. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001178. 179. ** ~~~ ** (Dot Product indicator=182.6148)180. 181. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.182. 183. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)184. 185. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001186. 187. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001188. 189. ** ~~~ ** (Dot Product indicator=92.2297)190. 191. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.192. 193. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)194. 195. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001196. 197. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001198. 199. ** ~~~ ** (Dot Product indicator=1.8446)200. 201. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.202. 203. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)204. 205. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001206. 207. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001208. 209. ** ~~~ ** (Dot Product indicator=1.8446)210. 211. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.212. 213. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)214. 215. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001216. 217. ** ~~~ ** because vertex 1 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001218. 219. ** ~~~ ** (Dot Product indicator=92.2297)220. 221. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.222. 223. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)224. 225. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001226. 227. ** ~~~ ** because vertex 2 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001228. 229. ** ~~~ ** (Dot Product indicator=1.8446)230. 231. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.232. 233. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)234. 235. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001236. 237. ** ~~~ ** because vertex 3 of back surface=WIN_006_GLZP_3 is in front of receiving surface=PELLE_COMUNIONE001238. 239. ** ~~~ ** (Dot Product indicator=92.2297)240. 241. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.242. 243. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)244. 245. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001246. 247. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001248. 249. ** ~~~ ** (Dot Product indicator=184.4593)250. 251. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.252. 253. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)254. 255. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001256. 257. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE001258. 259. ** ~~~ ** (Dot Product indicator=184.4593)260. 261. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.262. 263. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)264. 265. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001266. 267. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001268. 269. ** ~~~ ** (Dot Product indicator=184.4593)270. 271. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.272. 273. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)274. 275. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001276. 277. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE001278. 279. ** ~~~ ** (Dot Product indicator=184.4593)280. 281. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.282. 283. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)284. 285. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001286. 287. ** ~~~ ** because vertex 1 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001288. 289. ** ~~~ ** (Dot Product indicator=180.7210)290. 291. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.292. 293. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)294. 295. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001296. 297. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001298. 299. ** ~~~ ** (Dot Product indicator=180.7210)300. 301. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.302. 303. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)304. 305. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001306. 307. ** ~~~ ** because vertex 2 of back surface=WIN_001_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001308. 309. ** ~~~ ** (Dot Product indicator=180.7210)310. 311. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.312. 313. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)314. 315. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001316. 317. ** ~~~ ** because vertex 3 of back surface=WIN_001_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001318. 319. ** ~~~ ** (Dot Product indicator=180.7210)320. 321. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.322. 323. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)324. 325. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001326. 327. ** ~~~ ** because vertex 3 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001328. 329. ** ~~~ ** (Dot Product indicator=184.4593)330. 331. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.332. 333. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)334. 335. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001336. 337. ** ~~~ ** because vertex 4 of back surface=PELLE_OVEST is in front of receiving surface=PELLE_COMUNIONE001338. 339. ** ~~~ ** (Dot Product indicator=184.4593)340. 341. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.342. 343. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)344. 345. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001346. 347. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001348. 349. ** ~~~ ** (Dot Product indicator=180.7210)350. 351. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.352. 353. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)354. 355. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001356. 357. ** ~~~ ** because vertex 3 of back surface=WIN_002_GLZP_0 is in front of receiving surface=PELLE_COMUNIONE001358. 359. ** ~~~ ** (Dot Product indicator=180.7210)360. 361. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.362. 363. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)364. 365. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001366. 367. ** ~~~ ** because vertex 2 of back surface=WIN_002_GLZP_1 is in front of receiving surface=PELLE_COMUNIONE001368. 369. ** ~~~ ** (Dot Product indicator=180.7210)370. 371. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.372. 373. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)374. 375. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001376. 377. ** ~~~ ** because vertex 1 of back surface=WIN_002_GLZP_2 is in front of receiving surface=PELLE_COMUNIONE001378. 379. ** ~~~ ** (Dot Product indicator=180.7210)380. 381. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.382. 383. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)384. 385. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001386. 387. ** ~~~ ** because vertex 3 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001388. 389. ** ~~~ ** (Dot Product indicator=184.4593)390. 391. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.392. 393. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)394. 395. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001396. 397. ** ~~~ ** because vertex 4 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001398. 399. ** ~~~ ** (Dot Product indicator=184.4593)400. 401. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.402. 403. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)404. 405. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001406. 407. ** ~~~ ** because vertex 7 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001408. 409. ** ~~~ ** (Dot Product indicator=184.4593)410. 411. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.412. 413. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)414. 415. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001416. 417. ** ~~~ ** because vertex 8 of back surface=PELLE_SOTTO is in front of receiving surface=PELLE_COMUNIONE001418. 419. ** ~~~ ** (Dot Product indicator=184.4593)420. 421. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.422. 423. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)424. 425. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001426. 427. ** ~~~ ** because vertex 1 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001428. 429. ** ~~~ ** (Dot Product indicator=184.4593)430. 431. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.432. 433. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)434. 435. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001436. 437. ** ~~~ ** because vertex 4 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001438. 439. ** ~~~ ** (Dot Product indicator=184.4593)440. 441. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.442. 443. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)444. 445. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001446. 447. ** ~~~ ** because vertex 5 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001448. 449. ** ~~~ ** (Dot Product indicator=184.4593)450. 451. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.452. 453. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)454. 455. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001456. 457. ** ~~~ ** because vertex 8 of back surface=PELLE_SOPRA_DUP is in front of receiving surface=PELLE_COMUNIONE001458. 459. ** ~~~ ** (Dot Product indicator=184.4593)460. 461. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.462. 463. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)464. 465. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001466. 467. ** ~~~ ** because vertex 1 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002468. 469. ** ~~~ ** (Dot Product indicator=167.5695)470. 471. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.472. 473. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)474. 475. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001476. 477. ** ~~~ ** because vertex 2 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002478. 479. ** ~~~ ** (Dot Product indicator=167.5695)480. 481. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.482. 483. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)484. 485. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001486. 487. ** ~~~ ** because vertex 3 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002488. 489. ** ~~~ ** (Dot Product indicator=195.1092)490. 491. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.492. 493. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)494. 495. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001496. 497. ** ~~~ ** because vertex 4 of back surface=PELLE_NORD2 is in front of receiving surface=PELLE_COMUNIONE002498. 499. ** ~~~ ** (Dot Product indicator=195.1092)500. 501. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.502. 503. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)504. 505. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001506. 507. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002508. 509. ** ~~~ ** (Dot Product indicator=167.5695)510. 511. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.512. 513. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)514. 515. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001516. 517. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE001 is in front of receiving surface=PELLE_COMUNIONE002518. 519. ** ~~~ ** (Dot Product indicator=167.5695)520. 521. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.522. 523. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)524. 525. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001526. 527. ** ~~~ ** because vertex 1 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002528. 529. ** ~~~ ** (Dot Product indicator=32.0568)530. 531. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.532. 533. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)534. 535. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001536. 537. ** ~~~ ** because vertex 2 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002538. 539. ** ~~~ ** (Dot Product indicator=139.1556)540. 541. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.542. 543. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)544. 545. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001546. 547. ** ~~~ ** because vertex 3 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002548. 549. ** ~~~ ** (Dot Product indicator=139.1556)550. 551. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.552. 553. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)554. 555. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001556. 557. ** ~~~ ** because vertex 4 of back surface=WIN_005 is in front of receiving surface=PELLE_COMUNIONE002558. 559. ** ~~~ ** (Dot Product indicator=32.0568)560. 561. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.562. 563. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)564. 565. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001566. 567. ** ~~~ ** because vertex 1 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002568. 569. ** ~~~ ** (Dot Product indicator=167.5695)570. 571. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.572. 573. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)574. 575. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001576. 577. ** ~~~ ** because vertex 2 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002578. 579. ** ~~~ ** (Dot Product indicator=167.5695)580. 581. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.582. 583. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)584. 585. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001586. 587. ** ~~~ ** because vertex 3 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002588. 589. ** ~~~ ** (Dot Product indicator=167.5695)590. 591. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.592. 593. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)594. 595. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001596. 597. ** ~~~ ** because vertex 4 of back surface=PELLE_COMUNIONE003 is in front of receiving surface=PELLE_COMUNIONE002598. 599. ** ~~~ ** (Dot Product indicator=167.5695)600. 601. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.602. 603. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)604. 605. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001606. 607. ** ~~~ ** because vertex 1 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002608. 609. ** ~~~ ** (Dot Product indicator=195.1092)610. 611. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.612. 613. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)614. 615. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001616. 617. ** ~~~ ** because vertex 2 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002618. 619. ** ~~~ ** (Dot Product indicator=195.1092)620. 621. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.622. 623. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)624. 625. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001626. 627. ** ~~~ ** because vertex 3 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002628. 629. ** ~~~ ** (Dot Product indicator=195.1092)630. 631. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.632. 633. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)634. 635. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001636. 637. ** ~~~ ** because vertex 4 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002638. 639. ** ~~~ ** (Dot Product indicator=195.1092)640. 641. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.642. 643. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)644. 645. ** ~~~ ** Solar Distribution = FullInteriorExterior will not work in Zone=001646. 647. ** ~~~ ** because vertex 5 of back surface=PELLE_EST is in front of receiving surface=PELLE_COMUNIONE002648. 649. ** ~~~ ** (Dot Product indicator=195.1092)650. 651. ** ~~~ ** Check surface geometry; if OK, use Solar Distribution = FullExterior instead.652. 653. ** Severe ** Problem in interior solar distribution calculation (CHKBKS)654. [...]
thisthe errorthat appen when i lunch E+ with only one zone....what is going on???? …
ther math and logic. i can usually conceptualise what i want to do and cobble some semi working thing together but don't know which components to use and how to patch it. so i'm super happy to have someone who knows what he's doing to find this interesting.
and i'm glad you mention the fanned frets again, there is one input parameter that's still missing for the multiscale frets to be fully parametric, it's the angle of the nut or which fret should be straight. it depends a bit on personal preferences and playing posture what is more comfortable. so being able to adjust this easily would be cool. again i have no idea how the maths for that work or if you can just rotate each fret the same amount around it's middle point. The input either as fret number (for the straight fret) or as a simple slider from bridge to nut should do as input setting.
Here are the two extremes and the middle ground:
i've been thinkin today while analysing your patches and cleaning up my mess what exactly the monster should do.
Here are the input parameters needed, i think it's the complete list
scale length low E string
scale length high e string
fret angle/straight fret
string width at nut
string width at bridge
number of frets
fretboard overhang at nut (distance from string to fretboard bounds)
fretboard overhang at last fret
string gauges
string tensions
fretboard radius at nut (for compound radius fretboard radius at bridge is calculated with the stewmac formula)
fretwire crown width
fretwire crown height
action height at nut (distance between bottom of string and fretwire crown top)
action height at last fret
pickup 1 neck position
pickup 2 middle position
pickup 3 bridge position
nut width
the pickup positions should be used to draw circles for the magnet poles on each string so they are perfectly aligned and can be used for the pickup flatwork construction. ideally they would need a rotation control aligning the center line of the pickup so it's somewher between the last fret angle and bridge angle. personally i do this visually depending on the design i'm looking for, some people have huge theories on pickup positioning but personally i don't believe in it.
that should result in everything needed to quickly generate all the necessary construction curves or geometry for nut/fingerboard/frets/pickups. this is the core of what makes a guitar work, the more precise this dynamic system is the better the guitar plays and sounds.
i posted another thread trying to understand how i could use datasets form spreadsheets,databse, csv to organize the input parameters. What would make sense for the strings for example is hook into a spreadsheet with the different string sets, i attached one for the d'Addario NYXL string line which basically covers all combos that make sense.
The string tension is an interesting one, and implmenting it would sure be overkill albeit super interesting to try. it should be possible to extrapolate from the scale length of each string what the tension for a given string gauge of that string would be so that you could say 'i want a fully balanced set' or 'heavy top light bottom) and it would calculate which SKU from d'addario would best match the required tension. All the strings listed in the spreadsheet are available as single strings to buy.
i'm trying to reorganize everything which helps me understand it. i just discovered the 'hidden wires' feature which is great since once i understood what a certain block does or have finished one of my own, i can get the wires out of the way to carry on undistracted. a bit risky to hide so many wires but it makes it so much easier not to get completely lost :-)
btw, the 'fanned fret' term is trademarked, some guy tried to patent it in the 80's which is a bit silly since it has been done for centuries. there is a level of sophistication above this as well, check out http://www.truetemperament.com/ and that really is something else. it really is astounding how superior the tuning is on those wigglefrets, the problem is that it's rather awkward for string bending and also you can't easily recrown or level the frets when they are used. …
e matching with a dedicated component which creates combinations of items. You can find the [Cross Reference] component in the Sets.List panel.
When Grasshopper iterates over lists of items, it will match the first item in list A with the first item in list B. Then the second item in list A with the second item in list B and so on and so forth. Sometimes however you want all items in list A to combine with all items in list B, the [Cross Reference] component allows you to do this.
Here we have two input lists {A,B,C} and {X,Y,Z}. Normally Grasshopper would iterate over these lists and only consider the combinations {A,X}, {B,Y} and {C,Z}. There are however six more combinations that are not typically considered, to wit: {A,Y}, {A,Z}, {B,X}, {B,Z}, {C,X} and {C,Y}. As you can see the output of the [Cross Reference] component is such that all nine permutations are indeed present.
We can denote the behaviour of data cross referencing using a table. The rows represent the first list of items, the columns the second. If we create all possible permutations, the table will have a dot in every single cell, as every cell represents a unique combination of two source list indices:
Sometimes however you don't want all possible permutations. Sometimes you wish to exclude certain areas because they would result in meaningless or invalid computations. A common exclusion principle is to ignore all cells that are on the diagonal of the table. The image above shows a 'holistic' matching, whereas the 'diagonal' option (available from the [Cross Reference] component menu) has gaps for {0,0}, {1,1}, {2,2} and {3,3}:
If we apply this to our {A,B,C}, {X,Y,Z} example, we should expect to not see the combinations for {A,X}, {B,Y} and {C,Z}:
The rule that is applied to 'diagonal' matching is: "Skip all permutations where all items have the same list index". 'Coincident' matching is the same as 'diagonal' matching in the case of two input lists which is why I won't show an example of it here (since we are only dealing with 2-list examples), but the rule is subtly different: "Skip all permutations where any two items have the same list index".
The four remaining matching algorithms are all variations on the same theme. 'Lower triangle' matching applies the rule: "Skip all permutations where the index of an item is less than the index of the item in the next list", resulting in an empty triangle but with items on the diagonal.
'Lower triangle (strict)' matching goes one step further and also eliminates the items on the diagonal:
'Upper Triangle' and 'Upper Triangle (strict)' are mirror images of the previous two algorithms, resulting in empty triangles on the other side of the diagonal line:
…