Files
PVPlant/__pycache__/PVPlantPlacement.cpython-313.pyc
T

428 lines
115 KiB
Plaintext
Raw Normal View History

ó
0oöihãó`SSKrSSKr\R(aSSKrSSKrSSKJrJr SSKJ r SSK
J r OSr Sr \RRrSSKrSSKrSrS r"S
S 5r"S S
5rSSKrSSKrSSKJr SSKJr SSK J!r! SSKrSSKrSSKrSSK"JrJr SSK#J r SSKrSSKr"SS5r$S'Sjr%"SS5r&SSKrSSKJr Sr'Sr(S(Sjr)Sr*Sr+S)Sjr,"SS5r-S*Sjr.S+Sjr/S r0"S!S"5r1"S#S$5r2"S%S&5r3g!\a SrNØf=f),éN)ÚQtCoreÚQtGui)ÚQListWidgetItem)ÚQT_TRANSLATE_NOOPcóU$©©ÚctxtÚtxts Ú[/home/javi/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/PVPlant/./PVPlantPlacement.pyÚ translater!ó؈
ócóU$rr r
s r
rr%rrcóU$rr )Úss r
Ú _fromUtf8r,s؈rz0.1.0cóš/nUHBn[US5(dMURRULdM1URU5 MD U$)Proxy)ÚhasattrrÚ __class__Úappend)ÚselÚobjtypeÚfilÚobjs r
ÚselectionFilterr5sBØ
€CÛˆÜ × Ó Øy‰y×" 
˜3–ñð €Jrcóv\rSrSrSrSSjrSrSrSrSr S r
S
r S r S r
S
rSrSrSrSrSrSrg)Ú_PVPlantPlacementTaskPanel_oldé>ú$The editmode TaskPanel for SchedulesNcó[R"5UlURRUlSUlSUlSUlSUlSUlSUl SUl
[R"SSS5Ul
[RR!["R$R'[(R*S55UlUR,R/[0R2"["R$R'[(R4S555 UR75 [9URR:Vs/sHo"R<R>PM sn5Ul UR,RBRDRGURH5 UR,RJRLRGURN5 URO5 gs snf©réÿÿÿÿzPVPlantPlacement.uiúway.svg©(Ú PVPlantSiteÚgetÚsiteÚTerrainÚ FrameSetupsÚPVAreaÚAreaÚgap_colÚgap_rowÚoffsetXÚoffsetYÚFreeCADÚVectorÚDirÚ
FreeCADGuiÚ PySideUicÚloadUiÚosÚpathÚjoinÚPVPlantResourcesÚ__dir__ÚformÚ
setWindowIconrÚQIconÚDirIconsÚ addFramesÚmaxÚFramesÚWidthÚValueÚmaxWidthÚ buttonPVAreaÚclickedÚconnectÚ addPVAreaÚ editGapColsÚ valueChangedÚupdate_inner_spacing©ÚselfrÚframes r
Ú__init__Ú'_PVPlantPlacementTaskPanel_old.__init__Aó[Ü—O’OÓŒ Ø—y‘y׌ ØˆÔØˆŒ ؈Œ ؈Œ ؈Œ ؈Œ ؈Œ Ü—>’> ! R¨Ó+ˆŒô×·±· ± Ô=M×=UÑ=UÐWlÓ0mÓŒ Ø ‰ ×Ѥ§ ¢ ¬B¯G©G¯L©LÔ9I×9RÑ9RÐT]Ó,^Ó _Ô ÔܸD¿I¹I×<LÒ<LÓMÒ<L°5Ÿ[™[×.Ñ<LÑNˆŒ
à ×Ñ×&×.¨t¯~©~Ô ×Ñ×2°4×3LÑ3LÔ ×#ùò NóÅH
cóæ[RR5n[U5S:”aDUSUlUR
R RURR5 gg©Nr© r7Ú SelectionÚ getSelectionÚlenr.r?Ú
editPVAreaÚsetTextÚLabel©rQrs r
rLÚ(_PVPlantPlacementTaskPanel_old.addPVAreaXóSÜ×"×1ˆÜ ˆs8a˜a™&ˆDŒKØ I‰I× Ñ × ¯©×):Ñ):Õ  rcóäURRHVn[URURR
5nUR
[RR5 MX gr©
r+rErÚNamer?ÚlistFrameSetupsÚ
setCheckStaterÚQtÚChecked©rQÚ frame_setupÚ list_items r
rCÚ(_PVPlantPlacementTaskPanel_old.addFrames^óJØŸ9™9×+ˆ ×(8Ñ(8¸$¿)¹)×:SÑ:SÓTˆ × #¤F§I¡I×$5Ñ$5Ö ,rcóÐURRRSRURRR 5UR S- -
55 g©Nz{} méè©r?ÚeditInnerSpacingr^ÚformatrMÚvaluerH©rQs r
rOÚ3_PVPlantPlacementTaskPanel_old.update_inner_spacingcóHØ ×"×
]‰]˜DŸI™I×1×9¸T¿]¹]ÈTÑ=QÑ
 Vrcó”^
SSKJn [RnSnUR U5nU(dDUR SU5nXEl[US5(aURR U5 UnURRR5(alSURR 3m
[U
4SjUR5S5nU(d*UR ST
5nT
UlUR U5 UnUSR5nUS R5n /n
[![#U55HMn UR%XS
9n S U lS U lXU lUR U 5 U
R+U 5 MO URR0R3S5(aX Rlgg! USn/n
UH^n [-U 5 UR%U SS
9n S U lS U lU S
U l[.R U 5 U
R+U 5 M` N«=f)Nr©Ú PVPlantFramerEúApp::DocumentObjectGroupÚMechanicalGroupúFrames-c3óJ># UHoRT:XdMUv M g7fr©re©Ú.0rÚ
subgroup_names €r
Ú <genexpr>ÚG_PVPlantPlacementTaskPanel_old.createFrameFromPoints.<locals>.<genexpr>ŒóøéÐZÒ,< ÁÈMÑ@YŸS™SÒ,<ùóƒ#š #Ú placementÚtype©ÚsetupÚTrackerFéÚ FrameArea©ÚMechanical.Framer{r4ÚActiveDocumentÚ getObjectÚ addObjectr_rr}r?Ú cbSubfoldersÚ isCheckedr.ÚnextÚGroupÚtolistÚranger\Ú makeTrackerÚ
VisibilityÚ PlacementrÚprintÚgroupqreÚ
startswithrE©rQÚ dataframer{ÚdocÚmain_group_nameÚ
main_groupÚgroupÚsubgroupÚ
placementsÚtypesÚframesÚidxÚnewrackrƒs @r
ÚcreateFrameFromPointsÚ4_PVPlantPlacementTaskPanel_old.createFrameFromPointsgsø€Ý +ô"×$ˆð#ˆØ—]‘] ?Ó
ÞØŸÐ'AÀ?ÓSˆJØ ä×-¨jÔˆØ 9‰9× +× % d§k¡k×&7Ñ&7Ð%8Ð9ˆÔZ¨J×,<Ò,<ÓZÐ\`ÓaˆØŸ=™=Ð)CÀ]ÓSØ!.Ø×$ ˆ" /×8ˆ˜fÑ.ˆE؈FÜœS -Ø&×2¸¹ÐDØ )
Ø%*Ô"Ø$.¡OÔ Ô
˜
.ð& ;‰;× Ñ × & {× 3Ø!'K‰KÕ ð 4øð
" 1™ˆˆ!Üc”
Ø&×2¸¸Ð@Ø )
Ø%*Ô"Ø$'¨¡FÔ× Ñ  Ô
˜"úsÄB
GÇA-IcóˆURRS:Xa4[R"[R"UR
55$SSKJn URURU55nUR5(a$[R"UR55$[R"U5$©z5returns projected edges from a shape and a direction r©Ú PVPlantUtils© ÚBoundBoxÚZLengthÚPartÚFaceÚWireÚEdgesÚUtilsr±Ú simplifyWireÚ getProjectedÚisClosedÚremoveSplitter©rQÚshapeÚutilsÚwires r
Ú+_PVPlantPlacementTaskPanel_old.getProjected®ó~à >‰>× !  —99œTŸYšY u§{¡{Ó ×! %×"4Ñ"4°UÓ";Ó<ˆØ37·=±=·?±?ŒtyŠy˜×Ï Ê ÐRVËÐWrcó˜URURR5Ul[R
R
SS9nU(a|/nUHSnURURRS5nUR5(dMBURU5 MU URRU5Ulgg©
ExclusionArear€r© r.ÚShaper/r4rÚ findObjectsÚ SubShapesÚisValidrÚcut©rQÚexclusion_areasÚprohibited_facesrÚfaces r
ÚcalculateWorkingAreaÚ3_PVPlantPlacementTaskPanel_old.calculateWorkingArea·óžØ×% d§k¡k×&7Ñ&7Ó8ˆŒ Ü"×=À?ÐSˆæ Ø Û&Ø×¯©×)<Ñ)<¸QÑ)?Ó@Ø—<<—>“>Ø$×+¨DÖŸ ™ Ÿ
Ð&6Ó7ˆD
rcó,[RR5SnSnSn[UR5S:Xag[UR5S:XaURS=p#Oç[UR5S:”URSR
R URSR
R :”aURSnOURSnURSR
RURSR
R:”aURSnOURSn[UR
RURR
R-
UR-UR- 5n[UR
RUR-URU--
5n[UR
RURR
R-
UR -UR"- 5n[UR
RUR -UR"U--5n[$R&"XPRR
RUR[$R(S9[$R&"X`RR
RUR"*[$R(S94$©Nrr©Údtype©r7rZÚgetSelectionExr\Ú
SubObjectsr³ÚXLengthÚYLengthÚintÚXMaxr/ÚXMinr2r0ÚYMinÚYMaxr3r1ÚnpÚarangeÚint64©rQrÚrefhÚrefvÚstepsÚstartxÚstartys r
Ú getAligmentsÚ+_PVPlantPlacementTaskPanel_old.getAligmentsÃó<ä×"×3°AÑØˆØˆä ˆs~‰~Ó  !Ó ä
Ó
 
Ÿ.™.¨Ñ +ˆD
Ó
 
~‰~˜aÑ ×)×1°C·N±NÀ1Ñ4E×4NÑ4N×4VÑ4VÓ—~~ (à—~‘~ aÑ(à~‰~˜aÑ ×)×1°C·N±NÀ1Ñ4E×4NÑ4N×4VÑ4VÓ—~~ (à—~‘~ (äT—]]×'¨$¯)©)×*<Ñ*<×*AÑ*AÑAÀDÇLÁLÑPÐTX×T`ÑT`ÑaˆÜT—]]×'¨$¯,©,Ñ6¸¿¹ÈÑ9MÑÜT—]]×'¨$¯)©)×*<Ñ*<×*AÑ*AÑAÀDÇLÁLÑPÐTX×T`ÑT`ÑaˆÜT—]]×'¨$¯,©,Ñ6¸¿¹ÈÑ9MÑôyŠy˜§¡×!3Ñ!3×!8Ñ!8¸$¿,¹,ÌbÏhÉhÑ IŠIfŸi™i׿ ¹ °}ÌBÏHÉHÑ Vð Vrcóò^SnURRmU4SjnSSKJn SSKn/n[ U5HVupx/n [ U5H/up«U S:waU R
S5 MU R
S5 M1 UR
U 5 MX //////S.n [R"U5n
U"U
5upïSn[SUS-5GH
n[R"UU:H5unn[R"USS9unn[R"UU45nSnUunn[U5H nU SR
U5 U S R
U5 U S
R
UUUUS5 U S R
U5 U S R
UU5 U S
R
UUUUS5 US-
nUS-
n GM UR"U 5nU"U5 U$)Nrc óœ>^^SSKnSSKJn /nURR 5R 5GH nXSU:HnUSR 5GnUR USU:HnUSR 5SnUSR 5Sn URRS- n
[R"U 5n U =RU
-
sl [R"U 5n U =RU
-sl [R"X¼5R5n
URU
T[R"SSS55Sn[!5n[!5n[!5nUHTnUR#UR$5 UR#UR5 UR#UR&5 MV UR("UU5ummnnnUU4S jn[![+UUSUS
/55n[!5nUR#[R"USUSUS55 UR#[R"US
US
US55 UR#U5 [R,"5nUSUS-S- Ul[R0"[R"S
SS5USUS-
5n[R0"UR35SUR35SS5UlUUR4US-
S4'G GM X0S 'g) Nr©ÚstatsÚcolumnÚIDr‰rˆércó>TU-T-$rr ©ÚxÚ interceptÚslopes €€r
ÚmyfuncÚW_PVPlantPlacementTaskPanel_old.adjustToTerrain_old.<locals>.placeRegion.<locals>.myfunc 󸀨$ q™y¨9Ñ4rr&Ú
regression©ÚMeshPartÚscipyrñÚuniquer˜ÚlocÚLengthrGr4r5ÚyrµÚ LineSegmentÚtoShapeÚprojectShapeOnMeshÚlistrÚ
linregressÚmaprœÚBaseÚRotationÚtoEulerÚat©ÚdfÚmprñÚ
linregressionÚcolnumÚdftmpÚidÚdataÚ frametypeÚbaseÚylÚptopÚpbotÚlineÚ
profilepointsÚxxÚyyÚzzÚptsÚstd_errrúÚnewzzÚpoints3DÚplÚrotrøÚterrains @@€r
Ú placeRegionÚG_PVPlantPlacementTaskPanel_old.adjustToTerrain_old.<locals>.placeRegionéóÎú€Û ˆMØŸ)™)×3×5ؘh™<¨6Ñ2Ø ™+×,×.Ÿ6™6 " T¡(¨b¡.Ñ1DØ $  × 3Ñ 3Ó 5°aÑ 8   Ñ,×5°aÑ8"×)×/°!Ñ3"Ÿ>š>¨$Ó/—FF˜bL•FÜ"Ÿ>š>¨$Ó/—FF˜bL•FÜ×+¨DÓ7×ADØ$&×$9Ñ$9¸ÌÏÊÐXYÐ[\Ð^_ÓI`Ó$aÐbcÑ$dOôØŸ ™  #§%¡%ÔŸ ™  #§%¡%ÔŸ ™  #§%¡%Ö7<×6FÒ6FÀrÈ2Ó6NÑ3E˜9 ¨Gö V¨b°©e°R¸±V¨_Ó!=Ó>#v—OO¤G§N¢N°2°a±5¸"¸Q¹%ÀÀqÁÓ$JÔ—O‘O¤G§N¢N°2°b±6¸2¸b¹6À5ÈÁ8Ó$LÔÔ!×,™{¨X°a©[Ñ8¸=B”GÜ!×*¬7¯>ª>¸"¸Ó+CÀXÈaÁ[ÐS[Ð\]ÑS^ÑE^Ó_CÜ")×"2Ò"2°3·;±;³=ÀÑ3CÀSÇ[Á[Ã]ÐSTÑEUÐWXÓ"YB”KØ13B—EE˜"˜q™& .ôU6ðZ -ˆ rr©Úlabel©Úregionr‰ÚrowrˆÚ
return_countsrór1r‰r2rˆ©r,ÚMeshÚ
scipy.ndimager/ÚpandasÚ enumeraterÚarrayr™ÚwhererÚ column_stackÚ DataFrame©rQÚ coordinatesÚmoder+ÚsclabelÚpdÚtmpÚcolÚtmpcolÚnrrÚarrÚ
labeled_arrayÚ num_featuresrr/ÚcolsÚrowsrÚcountsÚresultÚcntÚvalÚcountrr*s @r
ÚadjustToTerrain_oldÚ2_PVPlantPlacementTaskPanel_old.adjustToTerrain_oldåóòø€ØˆØ—,‘,×õ1 -õh؈ܠ Ö,‰FˆA؈FÜ# Cž.‘ؘ!“8Ø—M‘M !Ö—MM 
J‰J ñØØØØØñ ôhŠhsmˆÙ&-¨c£lÑ#ˆ
Ø
ˆÜ˜1˜l¨QÑ/ˆŸš -°5Ñ"8Ó9‰JˆDŸYšY t¸@‰NˆF—__ f¨fÐ%5Ó6ˆˆ$
˜už˜‘J×% bÔ˜‘N×)¨%Ô˜L× °CÑ(8¸¸Ñ(CÀAÑ(FÔ˜‘N×)¨#Ô˜K×& t¨C¡yÔ˜Ñ%×,¨[¸Ñ-=¸dÀ3¹iÑ-HÈÑ-KÔ˜1H˜!G \Š\˜
ˆÙ؈ rcó SSKnSSKJn URRnUR
"UR Vs/sHoDRPM sn5nURRnUVs/sHYnURUSs=::aUR::dM)O M-URUSs=::aUR::dMSO MWUPM[ nnU(dgUR
"U5nU"USS2SS24USS2S45$s snfs snf©u4Prepara interpolador del terreno para ajuste rápidorÚLinearNDInterpolatorr©ÚnumpyÚscipy.interpolaterXr,r6r:ÚPointsr5r/© rQrXÚmeshr$ÚpointsÚbboxÚin_bboxÚcoordss r
Ú_setup_terrain_interpolatorÚ:_PVPlantPlacementTaskPanel_old._setup_terrain_interpolatorFóòãÝ|‰|× Ñ ˆØ¨T¯[ª[Ó9ª[¨Ÿ8œ8©[ÑØy‰y×ñó
Úy‰y˜A˜a™DÕ- D§I¡IÑ
Ù
ày‰y˜A˜a™DÕ- D§I¡IÑ
á
 ð
ö Øà˜"ˆÙ# Fª1¨b¨q¨b¨5¡M°6º!¸Q¸$±<Ó@ùò:ùò
ó#»DÁ1(D ÂD Â!"D ÃD Ã D c ó.SSKJn SSKnSSKnSSKJn SSKnUR"UVVs/sHowVs/sH oˆS:waSOSPM snPM snn5n U"U 5up«/n UR5n
[SU S-5HjnUR"X®:H5unn[[UU55H7ununnXUunnU R[U 5S-UUUUUS.5 M9 Ml UR"U 5nUR!5GunnUSnUSR"R$S- n[&R("UR*UR,U-S5n[&R("UR*UR,U-
S5nU
(UR."UR,UR,S 5nUR0"S UR*5nU
"UU5nUR2"U5R55(d;UR6"UU5tnnnUUR,-U-n UUR,-U-n!OðS=n n!Oë[8R:"UU5R=5n"UR?U"UR@RB[&R("SSS55Sn#[U#5SasU#V$s/sHn$U$R,PM nn$U#V$s/sHn$U$RDPM nn$UR6"UU5tnnnUUR,-U-n UUR,-U-n!OS=n n![&R("UR*UR,U 5n%[&R("UR*UR,U!5n&[&RF"5n'U%U&-S- U'l$[&RJ"[&R("S
SS5U%U&-
5U'l%U'URLUS4'G U$s snfs snnfs sn$fs sn$f© Nrr.rr0rˆr‰é
r&©'r7r/r8rZrrÿr:rcr™r;r9Úziprr\r=ÚiterrowsrrGr4r5rÚlinspaceÚfullÚisnanÚallr
rrrr,r6r r r
r©(rQr?rArBrÿrErrHrIrJrÚterrain_interpr/rKrLr2Ú
frame_typerˆrr(rÚ top_pointÚ bot_pointr rr!Úz_topÚz_botrÚ projectedr$Únew_topÚnew_botÚnew_pls( r
ÚadjustToTerrainÚ._PVPlantPlacementTaskPanel_old.adjustToTerrain\óÝÛÝÛðhŠhÉÔÀ#¸Ó°# Q›h™¨AÒÔÒVˆÙ&-¨c£lÑ#ˆ
ðˆØ×ä˜1˜l¨QÑ/ˆEØŸš -Ñ"8Ó9‰JˆD$Ü#,¬S°°t«_Ö#=Zc˜3Ø(3Ñ(8¸Ñ(=Ñ%
˜IØ Ü˜d›) a™-ØØ!*ñ
öó$>ñ\Š\˜
ˆðŸ Ÿ
‰HˆCØ!ˆBØV‘×)¨AÑ-ˆBô Ÿš r§t¡t¨R¯T©T°B©Y¸Ó:ˆIÜŸš r§t¡t¨R¯T©T°B©Y¸Ó:ˆIöØ—[’[ §¡¨i¯k©k¸2Ó>Ø—WW˜R §¡Ó&Ù# Ó+à—xx “|×'×)Ø+0×+;Ò+;¸Ó+CÐ(E˜9 ! I§K¡KÑ/°)Ñ;! I§K¡KÑ/°)Ñ;Eà$%Ð%E™Eô×'¨ °9Ó=×GØ$×7¸¸d¿l¹l×>OÑ>OÔQX×Q_ÒQ_Ð`aÐcdÐfgÓQhÓiÐjkÑl Üy“> &Ù'0Ó1¢y !˜!Ÿ#œ#¡y1Ù'0Ó1¢y !˜!Ÿ#œ#¡y1Ø+0×+;Ò+;¸Ó+CÐ(E˜9 ! I§K¡KÑ/°)Ñ;! I§K¡KÑ/°)Ñ;Eà$%Ð%E˜—nn Y§[¡[°)·+±+¸Eˆ—n’n Y§[¡[°)·+±+¸Eˆ×(ˆ" Ñ1ˆFŒKÜ%טr 1 ˜ˆFŒOð'-ˆBE‰E# #ñW&ðZˆ ùòI>ùÓUùò`2ùÚ1ó"ª P
³PÁP
ËP
Ë$PÐP
cóÔURRUSS5(aFX!RlUR UR/5n[ UR 5S:Xagg©NriTrr/ÚisInsiderœr r\ÚVertexes©rQrRÚpointrÌs r
r„Ú'_PVPlantPlacementTaskPanel_old.isInsideªóPØ 9‰9× Ñ ˜e R¨× .Ø#(O‰OÔ Ø—))˜TŸY™Y˜(ˆ3—<  Ørc óŽSSKnUR5up#/nURGH nURRnUR
RnUS- nUS- n [ R"UR"U*U *S5UR"X‰*S5UR"X‰S5UR"U*U S5UR"U*U *S5/5n
UR"UR"SSS5UR"SSS55U
Rl URXZ/5 GM URS5n U SRRnU SR
RnUS- nUS- n Sn Sn
SnSnURRURR R#55RUR$U-
-
n/nUGn/nUGH!nSnUR"UU -U-UU-
U-S5nUR'U SU5(aURU SU/5 SnMZUn[)U SRUSR-
S- 5n[+S5H`nUR"U5nUR,U-UlUR'USU5(aURUSU/5 Sn OU*nMb U(d O U(aGMURS5 GM$ URU5 URR.R15(dGMkURR2R55S:”dGMU S-
n XÀRR2R55:XdGUU-
nSn G UR7U5$©NrrFr%r4r-rrGrFÚ makePolygonr5r
rÚpopÚUnitsÚQuantityr?Ú
editColGapÚtextr0r„r™rÚ
groupCorridorr•Ú editColCountrur}©rQr4ÚpointsxÚpointsyÚ
footprintsrRrr Úxx_medÚyy_medÚrecÚrefÚ countcolsÚ countrowsÚ
offsetcolsÚ
offsetrowsÚvalcolsrKrErÚfoundr‡Ú footprintÚpoint1s r
ÚcalculateAlignedArrayÚ4_PVPlantPlacementTaskPanel_old.calculateAlignedArray²ó^ÛØ×ˆàˆ
Ø×%ˆEØ×#ˆBØ×"ˆ˜!Vˆ˜!Vˆ×" G§N¢N°F°7¸V¸GÀQÓ$GØ$+§N¢N°6¸7ÀAÓ$FØ$+§N¢N°6À1Ó$EØ$+§N¢N°F°7¸FÀAÓ$FØ$+§N¢N°F°7¸V¸GÀQÓ$Gð $IóJˆ
&-×%5Ò%5°g·n²nÀQÈÈ1Ó6MÈwÏ~Ê~Ð^_ÐabÐdeÓOfÓ%gˆCM‰MÔ × Ñ ˜u˜l× n‰n˜ˆØ
‰V]‰]×
Ñ
ˆØ
‰V\‰\×
Ñ
ˆØa‘ˆØa‘ˆðˆ ؈ ؈
؈
Ø—-‘-ׯ©×)=Ñ)=×)BÑ)BÓ)DÓE×KÈtÏ|É|Ð^`ÑO`ÑàˆÜˆA؈CÜØØŸš q¨6¡z°JÑ'>ÀÀFÁ
ÈZÑ@WÐY\Ó]Ø—=‘=  Q¡¨×—J‘J  A¡¨˜Ô ã%/˜ Ü  Q¡§¡°¸1±×1DÑ1DÑ!DÈÑ IÓJ˜Ü!& ˜AØ%,§^¢^°EÓ%:˜FØ'-§x¡x°!¡|˜FœHØ#Ÿ}™}¨Y°q©\¸6×BØ #§
¡
¨I°a©L¸&Ð+AÔ BØ(, Ù %Ø!" šAñ"*÷!˜&0÷—JJ˜q—Mñ+ð,
K‰K˜Ô ðy‰y×&×0×—91°AÖ N §I¡I×$:Ñ$:×$@Ñ$@Ó$BÖ" -˜
Ø$% ñCðF×# )rc ó" UR5up[U5S:Xa![RR S5 /$/nUR
GH+nUR RnURRnUS- nUS- n[R"[R"U*U*S5[R"Xx*S5[R"XxS5[R"U*US5[R"U*U*S5/5n [R"[R"SSS5[R"SSS55U Rl URXI/5 GM. URR R#5n
Sn Sn /n
UGH¿n/nXë-
n[R"XàR$R&R(S5n[R"XàR$R&R*S5n[R"UU/5nUR$R-U/5nUR.Vs/sHnUR0PM nn[3USSS9n[5S[U5S5GnUUnUUS-nUR7U5US SR&R8:”dMBUR:US SR&R8S- -
nUS SR=5n[R"XãS SR&R>S- -US5URl URCUR$/5nUR.Vs/sHnUR0PM nnUR:n[U5S:wa[EUS
S 9R:n[GUUR:-
UVs/sHnUSR&R8PM snS S
5nUSnUUUSR&R8S- -n[R"XãUSR&R>S- -US5n UUSR=5nURIUU 5(dMURUUSU /5 UUUSR&R8S- S --n[RJ"U5 U
(dGMq[U5S:”dGU S-
n XÀRRLRO5:XdGU S-
n Sn G U
RU
5 G URQU
5$s snfs snfs snf)Nrú"No se encontraron alineaciones X.
rr%cóUR$r©r©r$s r
Ú<lambda>ÚI_PVPlantPlacementTaskPanel_old.calculateNonAlignedArray.<locals>.<lambda>ó¨A¯CªCrÚkeyÚreverser&cóUR$rr­s r
#ó°Q·S²Sr©éôÚgreedyéà.©)rër\r4ÚConsoleÚ PrintWarningr-rrGrFrr5r
rr?r“r•r/Úsectionr…ÚPointÚsortedr™ÚdistanceToPointrÜrÚcopyrÛr ÚminÚ
optimized_cutr„Úshowr”rur}©!rQrr—r˜rRÚl_medÚw_medrÚcorridorÚcorridor_offsetrQrKrEÚp1Úp2rÚinterÚverr"ÚtopÚbootomÚy1ÚcpÚvtxÚmodÚftprCÚoptr(s! r
ÚcalculateNonAlignedArrayÚ7_PVPlantPlacementTaskPanel_old.calculateNonAlignedArrayös¸Ø×ˆÜ ˆw‹<˜1Ó Ü O‰O× (Ð)NÔ ˆIàˆ
Ø×%ˆ ×"ˆ ×!ˆAؘ‘EˆEؘEˆ×"¤G§N¢N°E°6¸E¸6À1Ó$EÜ$+§N¢N°E¸6À1Ó$EÜ$+§N¢N°EÀ1Ó$EÜ$+§N¢N°E°6¸EÀ1Ó$EÜ$+§N¢N°E°6¸E¸6À1Ó$Eð $GóHˆ
&-×%5Ò%5´g·n²nÀQÈÈ1Ó6MÌwÏ~Ê~Ð^_ÐabÐdeÓOfÓ%gˆCM‰MÔ × Ñ ˜u˜l× —99רˆØˆàˆÜˆA؈CØ
Ñ ˆAÜ §9¡9×#5Ñ#5×#:Ñ#:¸CÓ@ˆ §9¡9×#5Ñ#5×#:Ñ#:¸@ˆ×# R¨ HÓ-ˆDØ—II×% t fÓ-ˆEØ(-¯ªÓ 3—9”9©ˆCИ¡-¸Ñ>ˆCܘ1œc #›h¨×*ؘ!‘fؘQ ™U™Ø×& ¸ÀÑ1B×1KÑ1K×1SÑ1SÕŸ *¨R¡.°Ñ"3×"<Ñ"<×"DÑ"DÀqÑ"HÑI# B™¨Ñ*×1BÜ(/¯ª°qÀb¹>È!Ñ;L×;UÑ;U×;]Ñ;]Ð`aÑ;aÑ7aÐceÐgjÓ(kB—LŸF™F D§I¡I ;Ó/EØ05·²Ó¨˜3Ÿ9œ9±Ÿ%™%˜3“x 1“}Ü! #©=Ñô¨f¯h©h©Ñ\fÓ8gÒ\fÐUX¸¸¿¹×9PÔ9PÑ\fÑ8gÐilÐnvÓw" 1œv˜Ø 
¨3¡°Ñ 2× ;Ñ ;× CÑ CÀaÑ GÑÜ$Ÿ^š^¨A¸ÀÑ0B×0KÑ0K×0SÑ0SÐVWÑ0WÑ,WÐY\Ð^aÓb˜Ø™_¨QÑØŸ=™=¨¨RןJ™J¨
°3©¸Ñ(:¸BÐ'?Ô ¡_°QÑ%7×%@Ñ%@×%HÑ%HÈ1Ñ%LÐPSÑ$SÑT˜ ŸIšI bžMñ x¤C¨£H¨q¦LØ 
˜Ø §I¡I×$:Ñ$:×$@Ñ$@Ó$BÖ+¨uÑ4˜OØ$%Eñ9+ð<
K‰K˜× ñOðP×# DÓ)ùòC8ùò@ùò 9hóÉ#VÎVÏ0#V cóÄSSKJn UR5n[R"S5nUR S5nUR SS5 S[R l[URRR55Vs/snURRRU5=nR5[RR :XdMV[R R#UR%55PM… nnUVs0sHoˆR&R(U_M n n[+[-U R/55SSS9Ul[R2R5URR6R%55R(Ul[R2R5URR:R%55R(UR0SR&R(-Ul[R2R5URR>R%55R(Ul [R2R5URRBR%55R(Ul"[R RGS 5 URI5 URRJRM5(aURO5n
OURQ5n
URSU
5 SSK*J+n SSK,n U R[U 5 U R]S
UR<UR0SR&R(-5 [R R_5 S[R lUR SU5 UR5U-
n
[aS U
5 [bRdRg5 [R Ri5 gs snfs snf) Nr©Údatetimeú+User parameter:BaseApp/Preferences/DocumentÚAutoSaveEnabledFTcóUR$r©r©Úracks r
Ú7_PVPlantPlacementTaskPanel_old.accept.<locals>.<lambda>Ió ÐQU×Q\ÒQ\rúCreate Placementé@KLú -- Tiempo tardado:©5rÝÚnowr4ÚParamGetÚGetBoolÚSetBoolrÚRecomputesFrozenr™r?rfrQÚitemÚ
checkStaterrhrirrrrGrÚvaluesr-rrrMr0Ú editGapRowsr1ÚeditOffsetHorizontalr2ÚeditOffsetVerticalr3ÚopenTransactionrÑÚ
cbAlignFramesr•ÚElectrical.groupr¥Ú importlibÚreloadÚgroupTrackersToTransformersÚcommitTransactionrr7ÚControlÚ closeDialogÚ recompute©rQÚ starttimeÚparamsÚauto_save_enabledr¥ÚitemsrRÚ
unique_framesr¡ÚegrouprøÚ
total_times r
ÚacceptÚ%_PVPlantPlacementTaskPanel_old.accept9óÝ—LL“Nˆ ä×!Ð"OÓPˆØ"ŸN™NÐ+<ÓØÐ(¨%Ô0Ø26Œ×ÑÔ˜4Ÿ9™9×4×
â=ØŸ ™ ×6°qÓ9×GÌ6Ï9É9×K\ÑK\Ñ
:ŒG× "× ,¨T¯Y©Y«[Ö  ð
ñ AFÓ°uŸ×+¨UÒˆ
Ð!¤$ }×';Ñ';Ó'=Ó">ÑD\ÐfjÑkˆÔä—}}×-¨d¯i©i×.CÑ.C×.HÑ.HÓ.JÓK×QˆŒ Ü—}-¨d¯i©i×.CÑ.C×.HÑ.HÓ.JÓK×QÐTX×TdÑTdÐefÑTg×TnÑTn×TtÑTtÑtˆŒ Ü—}}×-¨d¯i©i×.LÑ.L×.QÑ.QÓ.SÓT×ZˆŒ Ü—}-¨d¯i©i×.JÑ.J×.OÑ.OÓ.QÓŒ ä×Ñ×.Ð/AÔ × 9‰9× "× ,× ×4‰Ià×7ˆ ×" Ø×Ñ˜Ô Ø×*¨7°D·L±LÀ4×CSÑCSÐTUÑCV×C]ÑC]×CcÑCcÑ4cÔ ×Ñ×2Ø27Œ×ÑÔÐ(Ð*;Ô—\\“^ /ˆ
Ü
Ð# ×Ñ××Ñ×*ùòM
ùò GóÂAQÃ-1QÄ$ Q© r/r6r-r.r,r?r0r1rHr2r3r+r©Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__Ú__doc__rSrLrCrOrRrcr}r„rÚ__static_attributes__r rr
r r >s_Ù$ò. 
VòE(òNXò
 VòD_òBAò,Lò\òB*òHA*õF/+rr cóv\rSrSrSrSSjrSrSrSrSr S r
S
r S r S r
S
rSrSrSrSrSrSrg)Ú_PVPlantPlacementTaskPanel_new1ikr"Ncó[R"5UlURRUlSUlSUlSUlSUlSUlSUl SUl
[R"SSS5Ul
[RR!["R$R'[(R*S55UlUR,R/[0R2"["R$R'[(R4S555 UR75 [9URR:Vs/sHo"R<R>PM sn5Ul UR,RBRDRGURH5 UR,RJRLRGURN5 URO5 gs snfr$r(rPs r
rSÚ(_PVPlantPlacementTaskPanel_new1.__init__nrUrVcóæ[RR5n[U5S:”aDUSUlUR
R RURR5 ggrXrYr`s r
rLÚ)_PVPlantPlacementTaskPanel_new1.addPVArea…rbrcóäURRHVn[URURR
5nUR
[RR5 MX grrdrjs r
rCÚ)_PVPlantPlacementTaskPanel_new1.addFramesrnrcóÐURRRSRURRR 5UR S- -
55 grprrrvs r
rOÚ4_PVPlantPlacementTaskPanel_new1.update_inner_spacingrxrcó’^
SSKJn [RnSnUR U5nU(dDUR SU5nXEl[US5(aURR U5 UnURRR5(alSURR 3m
[U
4SjUR5S5nU(d*UR ST
5nT
UlUR U5 UnUSR5nUS R5n /n
[![#U55HMn UR%XS
9n S U lS U lXU lUR U 5 U
R+U 5 MO URR0R3S5(aX Rlgg! USn/n
UH^n [-U 5 UR%U SS
9n S U lS U lU S
U l[.R U 5 U
R+U 5 M` N«=f)NrrzrEr|r}r~c3óJ># UHoRT:XdMUv M g7frr€rs €r
r„ÚH_PVPlantPlacementTaskPanel_new1.createFrameFromPoints.<locals>.<genexpr>¨r†r‡rˆr‰Frrr s @r
Ú5_PVPlantPlacementTaskPanel_new1.createFrameFromPoints”s ø€Ý×ðØ—]‘] ?Ó
ÞØŸÐ'AÀ?ÓSˆJØ ä×-¨jÔˆØ 9‰9× +× % d§k¡k×&7Ñ&7Ð%8Ð9ˆÔZ¨J×,<Ò,<ÓZÐ\`ÓaˆØŸ=™=Ð)CÀ]ÓSØ!.Ø×$ ˆ" /×8ˆ˜fÑ.ˆE؈FÜœS -Ø&×2¸¹ÐDØ )
Ø%*Ô"Ø$.¡OÔ Ô
˜
.ð& ;‰;× Ñ × & {× 3Ø!'K‰KÕ ð 4øð
" 1™ˆˆ!Üc”
Ø&×2¸¸Ð@Ø )
Ø%*Ô"Ø$'¨¡FÔ× Ñ  Ô
˜"úsÄB
GÇA-IcóˆURRS:Xa4[R"[R"UR
55$SSKJn URURU55nUR5(a$[R"UR55$[R"U5$s r
Ú,_PVPlantPlacementTaskPanel_new1.getProjectedÊrcó˜URURR5Ul[R
R
SS9nU(a|/nUHSnURURRS5nUR5(dMBURU5 MU URRU5Ulggs r
Ú4_PVPlantPlacementTaskPanel_new1.calculateWorkingAreaÓrcó,[RR5SnSnSn[UR5S:Xag[UR5S:XaURS=p#Oç[UR5S:”URSR
R URSR
R :”aURSnOURSnURSR
RURSR
R:”aURSnOURSn[UR
RURR
R-
UR-UR- 5n[UR
RUR-URU--
5n[UR
RURR
R-
UR -UR"- 5n[UR
RUR -UR"U--5n[$R&"XPRR
RUR[$R(S9[$R&"X`RR
RUR"*[$R(S94$s r
Ú,_PVPlantPlacementTaskPanel_new1.getAligmentsßrcóò^SnURRmU4SjnSSKJn SSKn/n[ U5HVupx/n [ U5H/up«U S:waU R
S5 MU R
S5 M1 UR
U 5 MX //////S.n [R"U5n
U"U
5upïSn[SUS-5GH
n[R"UU:H5unn[R"USS9unn[R"UU45nSnUunn[U5H nU SR
U5 U S R
U5 U S
R
UUUUS5 U S R
U5 U S R
UU5 U S
R
UUUUS5 US-
nUS-
n GM UR"U 5nU"U5 U$)Nrc óœ>^^SSKnSSKJn /nURR 5R 5GH nXSU:HnUSR 5GnUR USU:HnUSR 5SnUSR 5Sn URRS- n
[R"U 5n U =RU
-
sl [R"U 5n U =RU
-sl [R"X¼5R5n
URU
T[R"SSS55Sn[!5n[!5n[!5nUHTnUR#UR$5 UR#UR5 UR#UR&5 MV UR("UU5ummnnnUU4S jn[![+UUSUS
/55n[!5nUR#[R"USUSUS55 UR#[R"US
US
US55 UR#U5 [R,"5nUSUS-S- Ul[R0"[R"S
SS5USUS-
5n[R0"UR35SUR35SS5UlUUR4US-
S4'G GM X0S 'g) Nrr‰rˆrcó>TU-T-$rr s €€r
ÚX_PVPlantPlacementTaskPanel_new1.adjustToTerrain_old.<locals>.placeRegion.<locals>.myfunc'rr&rs @@€r
r+ÚH_PVPlantPlacementTaskPanel_new1.adjustToTerrain_old.<locals>.placeRegionr-rrr.r0Tr3r1r‰r2rˆr5r>s @r
rRÚ3_PVPlantPlacementTaskPanel_new1.adjustToTerrain_oldrTrcó SSKnSSKJn URRnUR
"UR Vs/sHoDRPM sn5nURRnUVs/sHYnURUSs=::aUR::dM)O M-URUSs=::aUR::dMSO MWUPM[ nnU(dgUR
"U5nU"USS2SS24USS2S45$s snfs snfrVrYr]s r
rcÚ;_PVPlantPlacementTaskPanel_new1._setup_terrain_interpolatorbrerfc ó.SSKJn SSKnSSKnSSKJn SSKnUR"UVVs/sHowVs/sH oˆS:waSOSPM snPM snn5n U"U 5up«/n UR5n
[SU S-5HjnUR"X®:H5unn[[UU55H7ununnXUunnU R[U 5S-UUUUUS.5 M9 Ml UR"U 5nUR!5GunnUSnUSR"R$S- n[&R("UR*UR,U-S5n[&R("UR*UR,U-
S5nU
(UR."UR,UR,S 5nUR0"S UR*5nU
"UU5nUR2"U5R55(d;UR6"UU5tnnnUUR,-U-n UUR,-U-n!OðS=n n!Oë[8R:"UU5R=5n"UR?U"UR@RB[&R("SSS55Sn#[U#5SasU#V$s/sHn$U$R,PM nn$U#V$s/sHn$U$RDPM nn$UR6"UU5tnnnUUR,-U-n UUR,-U-n!OS=n n![&R("UR*UR,U 5n%[&R("UR*UR,U!5n&[&RF"5n'U%U&-S- U'l$[&RJ"[&R("S
SS5U%U&-
5U'l%U'URLUS4'G U$s snfs snnfs sn$fs sn$frhrjrqs( r
r}Ú/_PVPlantPlacementTaskPanel_new1.adjustToTerrainxrr€cóÔURRUSS5(aFX!RlUR UR/5n[ UR 5S:Xaggrr†s r
r„Ú(_PVPlantPlacementTaskPanel_new1.isInsideÆr‰rc óŽSSKnUR5up#/nURGH nURRnUR
RnUS- nUS- n [ R"UR"U*U *S5UR"X‰*S5UR"X‰S5UR"U*U S5UR"U*U *S5/5n
UR"UR"SSS5UR"SSS55U
Rl URXZ/5 GM URS5n U SRRnU SR
RnUS- nUS- n Sn Sn
SnSnURRURR R#55RUR$U-
-
n/nUGn/nUGH!nSnUR"UU -U-UU-
U-S5nUR'U SU5(aURU SU/5 SnMZUn[)U SRUSR-
S- 5n[+S5H`nUR"U5nUR,U-UlUR'USU5(aURUSU/5 Sn OU*nMb U(d O U(aGMURS5 GM$ URU5 URR.R15(dGMkURR2R55S:”dGMU S-
n XÀRR2R55:XdGUU-
nSn G UR7U5$rr•s r
Ú5_PVPlantPlacementTaskPanel_new1.calculateAlignedArrayÎrc ó" UR5up[U5S:Xa![RR S5 /$/nUR
GH+nUR RnURRnUS- nUS- n[R"[R"U*U*S5[R"Xx*S5[R"XxS5[R"U*US5[R"U*U*S5/5n [R"[R"SSS5[R"SSS55U Rl URXI/5 GM. URR R#5n
Sn Sn /n
UGH¿n/nXë-
n[R"XàR$R&R(S5n[R"XàR$R&R*S5n[R"UU/5nUR$R-U/5nUR.Vs/sHnUR0PM nn[3USSS9n[5S[U5S5GnUUnUUS-nUR7U5US SR&R8:”dMBUR:US SR&R8S- -
nUS SR=5n[R"XãS SR&R>S- -US5URl URCUR$/5nUR.Vs/sHnUR0PM nnUR:n[U5S:wa[EUS
S 9R:n[GUUR:-
UVs/sHnUSR&R8PM snS S
5nUSnUUUSR&R8S- -n[R"XãUSR&R>S- -US5n UUSR=5nURIUU 5(dMURUUSU /5 UUUSR&R8S- S --n[RJ"U5 U
(dGMq[U5S:”dGU S-
n XÀRRLRO5:XdGU S-
n Sn G U
RU5 G URQU
5$s snfs snfs snf)Nrrr%cóUR$rr­s r
ÚJ_PVPlantPlacementTaskPanel_new1.calculateNonAlignedArray.<locals>.<lambda>3rTr²r&cóUR$rr­s r
r7?rr¸s! r
Ú8_PVPlantPlacementTaskPanel_new1.calculateNonAlignedArrays¸Ø×ˆÜ ˆw‹<˜1Ó Ü O‰O× (Ð)NÔ ˆIàˆ
Ø×%ˆ ×"ˆ ×!ˆAؘ‘EˆEؘEˆ×"¤G§N¢N°E°6¸E¸6À1Ó$EÜ$+§N¢N°E¸6À1Ó$EÜ$+§N¢N°EÀ1Ó$EÜ$+§N¢N°E°6¸EÀ1Ó$EÜ$+§N¢N°E°6¸E¸6À1Ó$Eð $GóHˆ
&-×%5Ò%5´g·n²nÀQÈÈ1Ó6MÌwÏ~Ê~Ð^_ÐabÐdeÓOfÓ%gˆCM‰MÔ × Ñ ˜u˜l× —99רˆØˆàˆÜˆA؈CØ
Ñ ˆAÜ §9¡9×#5Ñ#5×#:Ñ#:¸CÓ@ˆ §9¡9×#5Ñ#5×#:Ñ#:¸@ˆ×# R¨ HÓ-ˆDØ—II×% t fÓ-ˆEØ(-¯ªÓ 3—9”9©ˆCИ¡-¸Ñ>ˆCܘ1œc #›h¨×*ؘ!‘fؘQ ™U™Ø×& ¸ÀÑ1B×1KÑ1K×1SÑ1SÕŸ *¨R¡.°Ñ"3×"<Ñ"<×"DÑ"DÀqÑ"HÑI# B™¨Ñ*×1BÜ(/¯ª°qÀb¹>È!Ñ;L×;UÑ;U×;]Ñ;]Ð`aÑ;aÑ7aÐceÐgjÓ(kB—LŸF™F D§I¡I ;Ó/EØ05·²Ó¨˜3Ÿ9œ9±Ÿ%™%˜3“x 1“}Ü! #©=Ñô¨f¯h©h©Ñ\fÓ8gÒ\fÐUX¸¸¿¹×9PÔ9PÑ\fÑ8gÐilÐnvÓw" 1œv˜Ø 
¨3¡°Ñ 2× ;Ñ ;× CÑ CÀaÑ GÑÜ$Ÿ^š^¨A¸ÀÑ0B×0KÑ0K×0SÑ0SÐVWÑ0WÑ,WÐY\Ð^aÓb˜Ø™_¨QÑØŸ=™=¨¨RןJ™J¨
°3©¸Ñ(:¸BÐ'?Ô ¡_°QÑ%7×%@Ñ%@×%HÑ%HÈ1Ñ%LÐPSÑ$SÑT˜ ŸIšI bžMñ x¤C¨£H¨q¦LØ 
˜Ø §I¡I×$:Ñ$:×$@Ñ$@Ó$BÖ+¨uÑ4˜OØ$%Eñ9+ð<
K‰K˜× ñOðP×# DÓ)ùòC8ùò@ùò 9hcóÄSSKJn UR5n[R"S5nUR S5nUR SS5 S[R l[URRR55Vs/snURRRU5=nR5[RR :XdMV[R R#UR%55PM… nnUVs0sHoˆR&R(U_M n n[+[-U R/55SSS9Ul[R2R5URR6R%55R(Ul[R2R5URR:R%55R(UR0SR&R(-Ul[R2R5URR>R%55R(Ul [R2R5URRBR%55R(Ul"[R RGS 5 URI5 URRJRM5(aURO5n
OURQ5n
URSU
5 SSK*J+n SSK,n U R[U 5 U R]S
UR<UR0SR&R(-5 [R R_5 S[R lUR SU5 UR5U-
n
[aS U
5 [bRdRg5 [R Ri5 gs snfs snf) NrFTcóUR$rs r
Ú8_PVPlantPlacementTaskPanel_new1.accept.<locals>.<lambda>errÿs r
rÚ&_PVPlantPlacementTaskPanel_new1.acceptUr r
r rr r rr
rrks^Ù$ò. 
Vò4(òlXò
 VòD_òBAò,Lò\òB*òHA*õF/+rrr.rWcóˆ\rSrSrSrSSjrSrSrSrSr S r
S
r S r S r
S
rSrSrSrSrSrSrSrSrSrg)Ú_PVPlantPlacementTaskPaneli•r"Ncó:[R"5UlURRUlSUlSUlSUlSUlSUlSUl SUl
[R"SSS5Ul
SUl0Ul[ R"R%[&R(R+[,R.S55UlUR0R3[4R6"[&R(R+[,R8S555 UR;5 [=URR>Vs/sHo"R@RBPM sn5Ul"UR0RFRHRKURL5 UR0RNRPRKURR5 URS5 gs snfr$)*r)r*r+r,r-r.r/r0r1r2r3r4r5r6Ú_terrain_interpolatorÚ_frame_footprints_cacher7r8r9r:r;r<r=r>r?r@rrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPs r
rSÚ#_PVPlantPlacementTaskPanel.__init__˜skÜ—O’OÓŒ Ø—y‘y׌ ØˆÔØˆŒ ؈Œ ؈Œ ؈Œ ؈Œ ؈Œ Ü—>’> ! Ó+ˆŒØ%)ˆÔ"Ø')ˆÔ×·±· ± Ô=M×=UÑ=UÐWlÓ0mÓŒ Ø ‰ ×Ѥ§ ¢ ¬B¯G©G¯L©LÔ9I×9RÑ9RÐT]Ó,^Ó _Ô ÔܸD¿I¹I×<LÒ<LÓMÒ<L°5Ÿ[™[×.Ñ<LÑNˆŒ
à ×Ñ×&×.¨t¯~©~Ô ×Ñ×2°4×3LÑ3LÔ ×#ùò NsÅ*HcóÖ[RR5nU(aDUSUlURR
R
URR5 ggrX)r7rZr[r.r?r]r^r_r`s r
rLÚ$_PVPlantPlacementTaskPanel.addPVArea±sKÜ×"×1ˆÞ ؘa™&ˆDŒKØ I‰I× Ñ × ¯©×):Ñ):Õ  rcóäURRHVn[URURR
5nUR
[RR5 MX grrdrjs r
rCÚ$_PVPlantPlacementTaskPanel.addFrames·rnrcó¸URRRURRR 5UR
S- -
S35 g)Nrqz m)r?rsr^rMrurHrvs r
rOÚ/_PVPlantPlacementTaskPanel.update_inner_spacing¼sEØ ×"×*¨d¯i©i×.CÑ.C×.IÑ.IÓ.KÈdÏmÉmÐ^bÑNbÑ.bÐ-cÐceÐ+fÕgrcóœ^[RnURS5=(d URSS5nURS:XdSUl[ US5(dB[ US5(a1URS5(aUR RU5 URRR5(a}UR(alSURR3m[U4SjUR5S5nU(d*URST5nTUlURU5 U$U$)z'Optimized group creation and managementrEr|r}rr~c3óJ># UHoRT:XdMUv M g7frr€rs €r
r„ÚH_PVPlantPlacementTaskPanel._get_or_create_frame_group.<locals>.<genexpr>Ïr†r‡N)
r4rrr“r_rr}r?r”r•r.rr—)rQs @r
Ú_get_or_create_frame_groupÚ5_PVPlantPlacementTaskPanel._get_or_create_frame_group¿s
ø€ä×ð—]‘] 8Ó·