[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???? …
that aren't relevant anymore or if there are any I missed please let me know. Maybe we can get a list like this in a better place as well.
Thank you.
Right Mouse - When wiring, plugs wire into multiple inputs.Shift+Click - Pick component aggregate.Shift+Clicking - Place component aggregate.Alt+Left - Click Split canvas tool.Ctrl+Q - Preview toggle.Ctrl+E - Enable toggle.Ctrl+Left - Navigate upstream.Ctrl+Right - Navigate downstream.Ctrl+M - Mesh Edge display toggle.Ctrl+1 - No previewCtrl+2 - Wireframe preview.Ctrl+3 - ShadedCtrl+Alt+Shift+Click - Save image of canvas.Ctrl+Alt and Shift+Ctrl+Alt - Highlights components on the canvas and component palette.Ctrl+Shift - Rewire component input/output.Double Click - Find/SearchAlt+Drag - Copy component on canvas.Ctrl+Tab - Document cycling.Ctrl+Shift+P - PreferencesCtrl+N - New fileCtrl+O - Open fileCtrl+S - Save file.Ctrl+Shift+S - Save as.Ctrl+Alt+S - Save backup.Ctrl+W - Close open document.Ctrl+Z - Undo copy.Ctrl+Y - RedoCtrl+X - CutCtrl+C - CopyCtrl+P - PasteCtrl+Alt+V - Paste in placeCtrl+Shift+V - Paste in centerCtrl+A - Select allCtrl+D - DeselectCtrl+Shift+I - Invert SelectionCtrl+Shift+A - Grow SelectionCtrl+Shift+Left Arrow - Grow UpstreamCtrl+Shift+Right Arrow - Grow DownstreamCtrl+Left Arrow - Shift upstreamCtrl+Right Arrow - Shift downstreamCtrl+G - Group selectionF3 - FindF4 - CreateF5 - RecomputeCtrl+B - Send to backCtrl+F - Bring to frontCtrl+Shift+B - Move backwardsCtrl+Shift+F - Move forwardsInsert - Bake selectedCtrl+Q - Toggle previewCtrl+E - Toggle enabled selected
…
y to facilitate the help.
Private Sub RunScript(ByVal x As Boolean, ByVal Ids As List(Of Guid), ByRef A As Object)
If x ThenBB = New BLABLA(ids)A = BB.CurvaElseIf BB IsNot Nothing Then BB.timer.Stop()End If
End Sub
'<Custom additional code>
Dim BB As BlABLA
Public Class BLABLAPublic Curva As curvePrivate Cache As list(Of point3d)Private IDs As list(Of guid)
Sub New(_ids As list(Of guid))IDs = _idsDim points As New list(Of point3d)For Each id As guid In idsDim rh As rhinoobject = rhinodoc.ActiveDoc.Objects.Find(id)Dim pt As Rhino.Geometry.Point = DirectCast(rh.Geometry, rhino.Geometry.Point)If pt is Nothing Then Continue Forpoints.add(pt.Location)Nextcache = pointscurva = curve.CreateInterpolatedCurve(points, 3)timer = New system.Windows.Forms.Timertimer.Interval = 100timer.Start()
End Sub
Public WithEvents timer As system.Windows.Forms.Timer
Private Sub Tick(sender As Object, e As System.EventArgs) Handles timer.Tick
For i As int32 = 0 To ids.count - 1Dim rh As rhinoobject = rhinodoc.ActiveDoc.Objects.Find(ids(i))Dim pt As Rhino.Geometry.Point = DirectCast(rh.Geometry, rhino.Geometry.Point)If pt Is Nothing Then Continue For
If Not pt.Location.Equals(cache(i)) ThenUpdateOutput()
End Ifcache(i) = pt.LocationNextEnd Sub
Private Sub UpdateOutput()'HERE I NEED UPDATE THE A OUTPUTrhinoapp.WriteLine("Change")End Sub
End Class…
ler and other input/output devices like web cams, mobile phones, lights, motors and many more. It allows near real-time data flow between the digital and physical worlds – enabling the possibility to explore virtual and physical prototypes with unprecedented fluidity. Through lectures and demonstrations, participants will learn how to sense various data sources (environmental, behavioral, web-based) and use the information to create interactive prototypes controlling actuators including servo motors and LED lights. This workshop is suitable for those interested in interactive environments, design robotics and fabrication, and implementation of the Internet of Things. Requires purchase of the Arduino Inventor's Kit.
Topics Covered
What is Firefly? What is Arduino?
How to navigate the user interface.
How to sense data and accurately scale (or remap) values to work with a specific design problem.
How to wire and power your prototype correctly.
An overview of sensors and actuators available and where to purchase them.
How to use Twitter data to control your design.
About the Instructors
Biayna Bogosian and Jason King are co-founders of Somewhere Something and have over two decades of combined experience in architecture, design technology, and teaching. We strive to make our workshops fun and informative, helping participants integrate new design technologies into their workflows.…
diseño computacional.
La Visiting School digitalMed 2014, promovida por Medaarch y Emwesoft Sevilla S.L.N.E, se celebrará en la ciudad de Sevilla, y tendrá como tema central la Smart City y el estudio de la interacción entre las personas y su entorno a través de objetos, dispositivos e infraestructuras.
Fecha limite de inscripción: 16/01/2014
info@emwesoft.com
OBJECTIVOS Adquirir la capacidad de gestionar flujos de datos en los que las ciudades están sumergidas, para insertar proyectos que sean útiles, contextualizados, poco invasivos y aptos a establecer un intercambio de informaciones con los usuarios.
El objetivo final es redactar un catálogo de proyectos que puedan formar parte de un contexto urbano y puedan delinear el perfil de las ciudades en las que viviremos en el futuro próximo.
METODOLOGÍA Metodología basada en el aprendizaje activo, en la puesta en práctica de métodos activos que estimulan y facilitan el intercambio de experiencias y puntos de vista entre el alumnado: Buscando la participación del alumno, planteando todas las cuestiones que considere necesarias a la hora de aclarar conceptos.
Fomentando el debate y la colaboración entre los participantes.
Dando respuesta a las dudas planteadas.
La metodología será presencial, lo cual permite un mayor acercamiento entre profesor y alumno, y en consecuencia una mayor asimilación de los conceptos.
PROGRAMA Los primeros días del taller serán dedicados a establecer definiciones comunes que nos permitan trabajar a partir de significados compartidos. En esta fase se tratarán temáticas que recurren a menudo en la práctica arquitectónica contemporánea, es decir el diseño computacional, la fabricación digital y los data driven. Los alumnos tendrán la posibilidad de aprender a usar software para el diseño paramétrico, como Rhinoceros y el plug-in Grasshopper, a través del conocimiento de dichos software, el alumno conseguirá competencias teóricas y técnicas, para un enfoque al diseño computacional.
PROFESORADO La formación será impartida por profesionales con amplio conocimiento y experiencia en el ámbito. Los tutores serán los arquitectos Amleto Picerno Ceraso y Francesca Viglione.
DURACIÓN TOTAL DEL TALLER
40 horas
QUIÉN PUEDE PARTICIPAR?
. Funcionarios con una actitud proactiva hacia la construcción de ciudades inteligentes;
. Académicos y estudiantes en áreas relacionadas con el desarrollo de proyectos y soluciones tecnológicas para ciudades digitales y ciudades inteligentes;
. Arquitectos;
. Ingenieros;
. Diseñadores;
. Profesionales de las tecnologías de información y con relación a el área de tecnología.
REQUISITOS BÁSICOS
- Conocimiento básico de Rhinoceros
- Inglés medio
*Disponibilidad de un intérprete español.
PRECIO y Tarifa especial
El cuesto del taller es de 500€.
También hay facilitacióno en caso de Inscripciones de grupo: para cada grupo formado por 5 inscriptos, que paguen en un única solución, el costo total será de 4 miembros y no 5 (una persona gratis)
DONDE
Emwesoft Sevilla S.L.N.E C/ Monte Carmelo 21, 41011 – Sevilla (España)
Teléfono: +34 (955) 224 524
Email: info@emwesoft.com
Internet: www.emwesoft.com …
ructural member. It can only be used as a Veneer / Cladding. You may observe from my sketch that structural member is only a timber frame. Hence we do not need to have a valid bond as long as the brick veneer is tied together with each other and to the timber structural frame behind.
Nevertheless, though i understood the components used in the definition, i only partially understood the logic behind your definition i.e. only until 'Divide Dist' and Extracting the points. After that I did not understand the logic behind using
a) Extracting 40 random values and than using those values as input for Seed to extract another set of 40 random values.
b) Extracting list length, subtracting with random values created in (a) above and then dividing with number 3.
c) Duplicating the Datas
d) The most perplexing is using above logic (a,b,c) to to extract number of branches (number-40) by using Tree Statistics. If number 40 is the input we required for 3rd Random component Why couldn't we connect the List Lenght to Pramviewer and extract the number of branches (40) and connect the output to the Random Component?
e) Finally i did understand the logic behind creating 2 Vector to create the bricks. But i did not understand the addition following the vector.
f) Why do you use the function 'simplify'? - what does it do? I know it simplifies the data tree, but what does simplifying a a data tree do to the entire definition?
Hannes, i know this is quite comprehensive list of doubt, but your help is and will be always appreciated.
Cheers
AB
…
ional form into a new innovated one respecting each one identity, focusing on customized and multifunctional units using adaptive design strategy.A competitive workshop for participants to have the ability to win a competition, how to deal with its requirements and submission specifications also how to work in a group at a deadline submission under pressure and reaching the maximum level of qualifications.The workshop will provide the participants with a knowledge through lectures talking about imagination thinking, design strategies, presentation new techniques and others reflecting these knowledge into a real project using parametric tooling techniques with presentation skills to facilitate participants to do their design.For Detailed Program: niitstudio.com/Recode.pdfEligibility:- Current architecture, interior and product design students or professionals.- Basic knowledge of Photoshop and 3D modelling.- Bringing own laptop.Software- Rhino: Nurbs / Modeling / T-Spline.- Grasshopper: Forming / List arrangement / Simulations .- Photoshop: Photomontage / Post production / layout composition.TutorsNIITStudio Design TeamDuration7 Days / 56 hoursFeesProfessionals: 1500 LEStudents: 1200 LENiiters*: 900 LE//Limited SeatsRegistration : http://goo.gl/forms/NECYhniZzWWebsite : www.NIITStudio.comE-mail : info@niitstudio.comMob: +2 010 027 254 57 | +2 012 825 225 44Niiters*: Previous participants of NIITStudio's workshops…
y part of existing files, you typically mark the old component as [Obsolete]* and write an entirely new component which has the changes. This allows you to open old files and have them work in the same way as before, by loading the obsolete component instead of the current one. You can then choose to add an automatic upgrader which is a class which knows how to replace an obsolete component with an updated version in situ. You can load all upgraders via the Solution->Upgrade Components... menu.
An upgrader is a class which implements the IGH_UpgradeObject interface. There's also a GH_UpgradeUtil class which provides some useful static methods for doing common upgrade stuff. For example, here's the upgrader for the [Polygon Centre] component:
public class Upgrade_PolygonCenterComponent : IGH_UpgradeObject { public Guid UpgradeFrom { get { return new Guid("{7BD7B551-CA79-4f01-B95A-7E9AB876F24D}"); } } public Guid UpgradeTo { get { return new Guid("{87E7F480-14DC-4478-B1E6-2B8B035D9EDC}"); } } public DateTime Version { get { return new DateTime(2011, 12, 7, 16, 30, 00); } } public IGH_DocumentObject Upgrade(IGH_DocumentObject target, GH_Document document) { IGH_Component component = target as IGH_Component; if (component == null) { return null; }
IGH_Component upgradedComponent = GH_UpgradeUtil.SwapComponents(component, UpgradeTo); Grasshopper.Kernel.Parameters.Param_Point extraParameter = new Grasshopper.Kernel.Parameters.Param_Point(); extraParameter.Name = "Center(E)"; extraParameter.NickName = "Ce"; extraParameter.Description = "Average of polyline edges"; upgradedComponent.Params.RegisterOutputParam(extraParameter);
return upgradedComponent; } }
* This can be done either by adding the string "OBSOLETE" to the component class name, or by adding the [Obsolete] attribute to the component. Do note you have to change the exposure to Hidden, otherwise the obsolete component will still show up on the panels.…
Added by David Rutten at 9:36am on October 21, 2017
rmation?" I know that this can already be accomplished using the brilliant Kangaroo plugin, but I wanted a simpler and faster (yet still accurate) single component that could replicate this unique curve using a variety of inputs: the length of the rod/wire, the width/distance between the endpoints, the height of the bend, and the tangent angle at the start. I also wanted make the unknowns (such as height if only length and width are known) easily accessible for plugging into additional components.
The resulting script, being an all-in-one solution, is somewhat unwieldy, but it could easily be broken down into smaller components (custom .gha's which I don't have the ability to code). If someone wants to tackle this, please do! I'm not an expert coder by any means, and as this was only my second time diving into Grasshopper scripting, if the script seems somewhat strange, that's probably why. I did try to comment the code pretty well though. Here's the full description:
--------------------------------------------------
DESCRIPTION: This beast creates the so-called 'elastica curve', the shape a long, thin rod or wire makes when it is bent elastically (i.e. not permanently). In this case, force is assumed to only be applied horizontally (which would be in line with the rod at rest) and both ends are assumed to be pinned or hinged meaning they are free to rotate (as opposed to clamped, when the end tangent angle is fixed, usually horizontally). An interesting finding is that it doesn't matter what the material or cross-sectional area is, as long as they're uniform along the entire length. Everything makes the same shape when bent as long as it doesn't cross the threshold from elastic to plastic (permanent) deformation (I don't bother to find that limit here, but can be found if the yield stress for a material is known).
Key to the formulas used in this script are elliptic integrals, specifically K(m), the complete elliptic integral of the first kind, and E(m), the complete elliptic integral of the second kind. There was a lot of confusion over the 'm' and 'k' parameters for these functions, as some people use them interchangeably, but they are not the same. m = k^2 (thus k = Sqrt(m)). I try to use the 'm' parameter exclusively to avoid this confusion. Note that there is a unique 'm' parameter for every configuration/shape of the elastica curve.
This script tries to find that unique 'm' parameter based on the inputs. The algorithm starts with a test version of m, evaluates an expression, say 2*E(m)/K(m)-1, then compares the result to what it should be (in this case, a known width/length ratio). Iterate until the correct m is found. Once we have m, we can then calculate all of the other unknowns, then find points that lie on that curve, then interpolate those points for the actual curve. You can also use Wolfram|Alpha as I did to find the m parameter based on the equations in this script (example here: http://tiny.cc/t4tpbx for when say width=45.2 and length=67.1).
Other notes:
* This script works with negative values for width, which will creat a self-intersecting curve (as it should). The curvature of the elastica starts to break down around m=0.95 (~154°), but this script will continue to work until M_MAX, m=0.993 (~169°). If you wish to ignore self-intersecting curves, set ignoreSelfIntersecting to True
* When the only known values are length and height, it is actually possible for certain ratios of height to length to have two valid m values (thus 2 possible widths and angles). This script will return them both.
* Only the first two valid parameters (of the required ones) will be used, meaning if all four are connected (length, width or a PtB, height, and angle), this script will only use length and width (or a PtB).
* Depending on the magnitude of your inputs (say if they're really small, like if length < 10), you might have to increase the constant ROUNDTO at the bottom
REFERENCES: {1} "The elastic rod" by M.E. Pacheco Q. & E. Pina, http://www.scielo.org.mx/pdf/rmfe/v53n2/v53n2a8.pdf {2} "An experiment in nonlinear beam theory" by A. Valiente, http://www.deepdyve.com/lp/doc/I3lwnxdfGz {3} "Snap buckling, writhing and Loop formation In twisted rods" by V.G.A. GOSS, http://myweb.lsbu.ac.uk/~gossga/thesisFinal.pdf {4} "Theory of Elastic Stability" by Stephen Timoshenko, http://www.scribd.com/doc/50402462/Timoshenko-Theory-of-Elastic-Stability (start on p. 76)
INPUT: PtA - First anchor point (required) PtB - Second anchor point (optional, though 2 out of the 4--length, width, height, angle--need to be specified) [note that PtB can be the same as PtA (meaning width would be zero)] [also note that if a different width is additionally specified that's not equal to the distance between PtA and PtB, then the end point will not equal PtB anymore] Pln - Plane of the bent rod/wire, which bends up in the +y direction. The line between PtA and PtB (if specified) must be parallel to the x-axis of this plane
** 2 of the following 4 need to be specified ** Len - Length of the rod/wire, which needs to be > 0 Wid - Width between the endpoints of the curve [note: if PtB is specified in addition, and distance between PtA and PtB <> width, the end point will be relocated Ht - Height of the bent rod/wire (when negative, curve will bend downward, relative to the input plane, instead) Ang - Inner departure angle or tangent angle (in radians) at the ends of the bent rod/wire. Set up so as width approaches length (thus height approaches zero), angle approaches zero
* Following variables only needed for optional calculating of bending force, not for shape of curve. E - Young's modulus (modulus of elasticity) in GPa (=N/m^2) (material-specific. for example, 7075 aluminum is roughly 71.7 GPa) I - Second moment of area (or area moment of inertia) in m^4 (cross-section-specific. for example, a hollow rod would have I = pi * (outer_diameter^4 - inner_diameter^4) / 32 Note: E*I is also known as flexural rigidity or bending stiffness
OUTPUT: out - only for debugging messages Pts - the list of points that approximate the shape of the elastica Crv - the 3rd-degree curve interpolated from those points (with accurate start & end tangents) L - the length of the rod/wire W - the distance (width) between the endpoints of the rod/wire H - the height of the bent rod/wire A - the tangent angle at the (start) end of the rod/wire F - the force needed to hold the rod/wire in a specific shape (based on the material properties & cross-section) **be sure your units for 'I' match your units for the rest of your inputs (length, width, etc.). Also note that the critical buckling load (force) that makes the rod/wire start to bend can be found at height=0
THANKS TO: Mårten Nettelbladt (thegeometryofbending.blogspot.com) Daniel Piker (Kangaroo plugin) David Rutten (Grasshopper guru) Euler & Bernoulli (the O.G.'s)
--------------------------------------------------
Edit: More on the math behind this here.
Cheers,
Will
…
Added by Will McElwain at 4:08pm on February 26, 2014
.
Things have been working swimmingly in many areas of the plugin, but one particular problem has been tough to solve. I have two components that are trying to read/write to the same memory at the same time, causing Rhino exceptions and crashes.
The conflicts appear to be happening between two components -- one is a "Layer Events Listener" that reports essentially what type of layer event just happened. The other is a "Set Layer Visibility" component that toggles the visibility of a list of layers.
The code:
public class LayerTools_LayerEventsListener : GH_Component { /// <summary> /// Initializes a new instance of the LayerTools_LayerListener class. /// </summary> public LayerTools_LayerEventsListener() : base("Layer Events Listener", "Layer Listener", "Get granular information about the layer events happening in the Rhino document.", "Squirrel", "Layer Tools") { }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddBooleanParameter("Active", "A", "Set to true to listen to layer events in the Rhino document.", GH_ParamAccess.item, false); pManager.AddTextParameter("Exclusions", "E", "Provide a list of exclusions to stop reading specific events (Added, Deleted, Moved, Renamed, Locked, Visibility, Color, Active).", GH_ParamAccess.list); pManager[1].Optional = true; }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddBooleanParameter("Initialized", "I", "Whether the listener changed from passive to active.", GH_ParamAccess.item); pManager.AddTextParameter("Document Name", "doc", "Name of the Rhino document that is changing.", GH_ParamAccess.item); pManager.AddTextParameter("Layer Path", "path", "Path of the modifed layer.", GH_ParamAccess.item); pManager.AddIntegerParameter("Layer Index", "ID", "Index of the modified layer.", GH_ParamAccess.item); pManager.AddIntegerParameter("Sort Index", "SID", "Sort index of the modified layer.", GH_ParamAccess.item); pManager.AddTextParameter("Event Type", "T", "Type of the modification.", GH_ParamAccess.item); pManager.AddBooleanParameter("Added", "A", "If the layer has been added.", GH_ParamAccess.item); pManager.AddBooleanParameter("Deleted", "D", "If the layer has been deleted.", GH_ParamAccess.item); pManager.AddBooleanParameter("Moved", "M", "If the layer has been moved.", GH_ParamAccess.item); pManager.AddBooleanParameter("Renamed", "R", "If the layer has been renamed.", GH_ParamAccess.item); pManager.AddBooleanParameter("Locked", "L", "If the layer locked setting has changed.", GH_ParamAccess.item); pManager.AddBooleanParameter("Visibility", "V", "If the layer's visibility has changed.", GH_ParamAccess.item); pManager.AddBooleanParameter("Color", "C", "If the layer's color has changed.", GH_ParamAccess.item); pManager.AddBooleanParameter("Active", "Act", "If the active layer has changed.", GH_ParamAccess.item); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { bool active = false; List<string> exclusions = new List<string>();
DA.GetData(0, ref active); DA.GetDataList(1, exclusions);
RhinoDoc thisDoc = null;
bool initialize = false;
string dName = null; string activePath = null; int layerIndex = -1; int sortIndex = -1; string eventType = null; bool added = false; bool deleted = false; bool moved = false; bool renamed = false; bool locked = false; bool visibility = false; bool color = false; bool current = false;
if (active) { thisDoc = RhinoDoc.ActiveDoc;
initialize = (!previouslyActive) ? true : false;
RhinoDoc.LayerTableEvent -= RhinoDoc_LayerTableEvent; RhinoDoc.LayerTableEvent += RhinoDoc_LayerTableEvent; previouslyActive = true;
} else {
RhinoDoc.LayerTableEvent -= RhinoDoc_LayerTableEvent; previouslyActive = false; }
if (ev != null) { dName = ev.Document.Name; layerIndex = ev.LayerIndex; eventType = ev.EventType.ToString();
if (!exclusions.Contains("Active")) { if (ev.EventType.ToString() == "Current") { // active layer has just been changed current = true; }
}
if (!exclusions.Contains("Moved")) { if (ev.EventType.ToString() == "Sorted") { // active layer has just been changed moved = true; }
}
if (!exclusions.Contains("Added")) { if (ev.EventType.ToString() == "Added") { // layer has just been added activePath = ev.NewState.FullPath; added = true; }
}
if (!exclusions.Contains("Active")) { if (ev.EventType.ToString() == "Deleted") { // layer has just been added
deleted = true; } }
if (ev.EventType.ToString() == "Modified") { // layer has been modified activePath = ev.NewState.FullPath;
//skip sortindex eventType = ev.EventType.ToString();
if (ev.OldState != null && ev.NewState != null) { if (!exclusions.Contains("Locked")) { if (ev.OldState.IsLocked != ev.NewState.IsLocked) locked = true;
} if (!exclusions.Contains("Visibility")) { if (ev.OldState.IsVisible != ev.NewState.IsVisible) visibility = true; }
if (!exclusions.Contains("Moved")) { if (ev.OldState.ParentLayerId != ev.NewState.ParentLayerId) moved = true; }
//if (ev.OldState.SortIndex != ev.NewState.SortIndex) moved = true; if (!exclusions.Contains("Renamed")) { if (ev.OldState.Name != ev.NewState.Name) renamed = true; }
if (!exclusions.Contains("Color")) { if (ev.OldState.Color != ev.NewState.Color) color = true; } }
} }
DA.SetData(0, initialize); DA.SetData(1, dName); DA.SetData(2, activePath); DA.SetData(3, layerIndex); DA.SetData(4, sortIndex); DA.SetData(5, eventType); DA.SetData(6, added); DA.SetData(7, deleted); DA.SetData(8, moved); DA.SetData(9, renamed); DA.SetData(10, locked); DA.SetData(11, visibility); DA.SetData(12, color); DA.SetData(13, current);
}
static bool previouslyActive = false; Rhino.DocObjects.Tables.LayerTableEventArgs ev = null;
void RhinoDoc_LayerTableEvent(object sender, Rhino.DocObjects.Tables.LayerTableEventArgs e) { ev = e;this.ExpireSolution(true); }
And for the layer visibility component:
public LayerTools_SetActiveLayer() : base("Set Active Layer", "SetActiveLayer", "Set the active layer in the Rhino document.", "Squirrel", "Layer Tools") { }
/// <summary> /// Registers all the input parameters for this component. /// </summary> protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.AddBooleanParameter("Active", "A", "Set to true to change the active layer in Rhino.", GH_ParamAccess.item, false); pManager.AddTextParameter("Path", "P", "Full path of the layer to be activated.", GH_ParamAccess.item); }
/// <summary> /// Registers all the output parameters for this component. /// </summary> protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.AddIntegerParameter("Layer ID", "ID", "Index of layer that has been activated.", GH_ParamAccess.item); pManager.AddBooleanParameter("Status", "St", "True when the layer has been activated.", GH_ParamAccess.item); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { bool active = false; string path = "";
if (!DA.GetData(0, ref active)) return; if (!DA.GetData(1, ref path)) return;
int layer_index = -1; bool status = false;
if (path != null) {
Rhino.RhinoDoc doc = Rhino.RhinoDoc.ActiveDoc; Rhino.DocObjects.Tables.LayerTable layertable = doc.Layers;
layer_index = layertable.FindByFullPath(path, true);
if (layer_index > 0) { // if exists RhinoDoc.ActiveDoc.Layers.SetCurrentLayerIndex(layer_index, true); status = true; } }
DA.SetData(0, layer_index); DA.SetData(1, status); }
Now originally I was getting exceptions when changing multiple layers' visibility properties, which would cause the Event Listener to fire and try to read the Visibility property before the memory has been released by the Set Layer Visibility component. That led me to add an "Exceptions" input, that would allow me to disable the reading of Visibility events at the source in the Layer Events listener. That helped me manage about 95% of the crashes I was getting, but I still get strange crashes in other event properties, even when that property shouldn't be affected. For instance, I am getting a crash here on the Name property in the event from the delegate function, even though I am only changing Visibility at any one time:
I have a few ideas but they all seem pretty hacky. One is to try to set a flag that is readable by any component in the plugin -- so that the event listener can see if a "set" component is currently running and abort before causing an exception. The other is creating a delay in the event listener, somthing like 200ms, to allow any set components to finish what they are doing before reading the event. Neither seems super ideal.
Any ideas?
Thanks,
Marc
…