|
Работа Предложения о работе и резюме соискателей.
(Допустимы только объявления связанные с геймдевом) |
11.03.2016, 21:32
|
#1
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Работа в стартапе
Интересно, а остались еще люди, готовые работать на энтузиазме? Есть парочка нишевых стартапов.
1) Первый проект уже был доведен до релиза и зарабатывал деньги. Но потом рынок изменился, проект стал неактуален и теперь либо каждые пол года писать такую программу, либо взять выше и писать систему для быстрой генерации таких программ. Склоняюсь ко второму варианту. Не откажусь от помощи, естественно, не за еду, а за процент.
Вкратце это экспертная система для автоматизации работы проектировщика - генерит чертежи AutoCAD и документацию к ним. Чертежи генерит скрипт на питоне, который надо допиливать. Документацию генерят скрипты AutoIT (тут проблем нет). Расчетный движок на блиц3д.
Самое простое для меня - это формулировать задание следующим образом: нужна функция, у которой на входе такие-то данные, на выходе должны быть такие-то данные. Без объяснения, для чего это надо и как оно будет интегрировано в проект. Грубо говоря, библиотека из функций, которые я мог бы самостоятельно собирать. И без разницы, на чем они, в принципе, написаны. В виде dll или в виде скриптов пайтон.
2) Второй проект более массовый, попроще и пока на стадии идеи. Тут не отказался бы от помощи по дизайну приложения (концепции, картинок и т.д.). То есть нужны свободные художники.
Последний раз редактировалось DarkInside, 12.03.2016 в 16:42.
|
(Offline)
|
|
11.03.2016, 22:33
|
#2
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
Забудь про Блитз, нужно хотя бы на тот же питон переписать.
На питон кстати можно все переписать, досканально, коль уже на нем есть генератор.
Я бы смог на питон переписать блитзовский проект, если он за собой не тянет 3d (Хотя есть же Coccos на этот случай)
Хотя кстати и генератор документации на питон не так сложно переписать с AutoIt.
Если это так востребовано, то можно поднять потом сервер, с питоном это не сложно будет
|
(Offline)
|
|
11.03.2016, 22:57
|
#3
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Работа в стартапе
Сообщение от RegIon
Забудь про Блитз, нужно хотя бы на тот же питон переписать.
На питон кстати можно все переписать, досканально, коль уже на нем есть генератор.
Я бы смог на питон переписать блитзовский проект, если он за собой не тянет 3d (Хотя есть же Coccos на этот случай)
Хотя кстати и генератор документации на питон не так сложно переписать с AutoIt.
Если это так востребовано, то можно поднять потом сервер, с питоном это не сложно будет
|
Я то это понимаю. Но в питоне я слишком слаб, только начал изучать. Просто нашел готовую библиотеку на питоне для экспорта в автокад и разобрался, как генерить описание чертежей для этой библиотеки. Но с ней есть проблемы, отсутствуют типы линий (основная, тонкая, штрих-пунктирная и т.д.), у меня сейчас генерится всё тонкими линиями, нужно разобраться в структуре DXF-файла и добавить основную линию. Хотя, может она и есть уже в этой библиотеке, просто я чего-то не понимаю.
Блиц я знаю очень давно, мне в нем проще по-быстрому изложить всю логику, питон еще учить и учить. В AutoIT там совсем немного кода - функции для работы с вордом скомпилированы в экзешники и вызываются из блица. Вот по поводу перевода кода на питон, там логика довольно сложная...переводить, думаю, куча времени уйдет...вот пример нескольких функций на блице (примерно в таком стиле 20 тыс. строк):
В принципе я только за, если весь код будет на питоне, но как-то это надо организовать...
Function perebor()
For i = 1 To kol_objects_mode
If kat_mode$(i) = "III" And Float(s_p_mode$ (i)) <= 660 Then
If Float(s_p_mode$ (i)) <= 330 Then
rp_kol = rp_kol + 1
rp_ini (rp_kol) = i
p_p_rp$ (rp_kol) = p_p_mode$ (i)
q_p_rp$ (rp_kol) = q_p_mode$ (i)
s_p_rp$ (rp_kol) = s_p_mode$ (i)
Else
rp_kol = rp_kol + 1
rp_ini (rp_kol) = i
p_p_rp$ (rp_kol) = Str(Float (p_p_mode$ (i)) / 2)
q_p_rp$ (rp_kol) = Str(Float (q_p_mode$ (i)) / 2)
s_p_rp$ (rp_kol) = Str(Float (s_p_mode$ (i)) / 2)
rp_kol = rp_kol + 1
rp_ini (rp_kol) = i
p_p_rp$ (rp_kol) = Str(Float (p_p_mode$ (i)) / 2)
q_p_rp$ (rp_kol) = Str(Float (q_p_mode$ (i)) / 2)
s_p_rp$ (rp_kol) = Str(Float (s_p_mode$ (i)) / 2)
EndIf
EndIf
Next
For tp_1 = 1 To kol_objects_mode
If kat_mode$(tp_1) <> "III" Then
For tp_2 = 0 To kol_objects_mode
If (kat_mode$(tp_2) = "II" And tp_2 <> tp_1) Or tp_2 = 0 Then
n% = rp_kol
end_str$ = ""
str_t$ = ""
a_dec = 0
For i = 1 To n%
end_str$ = end_str$ + "1"
Next
While str_t$ <> end_str$
str_t$ = Bin$(a_dec)
If Len(str_t$) > n% Then
str_t$ = Right (str_t$, n%)
ElseIf Len(str_t$) < n%
While Len(str_t$) < n%
str_t$ = "0" + str_t$
Wend
EndIf
rp_str$ = ""
add_kol = 0
For i = 1 To n%
add_ini$ = Mid$ (str_t$, i, 1)
If add_ini$ = 1 Then
add_kol = add_kol + 1
If add_kol > 4 Then
Exit
Else
rp_str$ = rp_str$ + Str(i) + "+"
EndIf
EndIf
Next
If add_kol <= 4 Then
If rp_str$ <> "" Then
rp_str$ = Left (rp_str$, Len(rp_str$) - 1)
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_1 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_1 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_2 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_2 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_3 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_3 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_4 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_4 = Int(rp_str$)
rp_str$ = ""
EndIf
calc_k (tp_1, tp_2, rp_1, rp_2, rp_3, rp_4)
tp_rep_kol = tp_rep_kol + 1
EndIf
a_dec = a_dec + 1
Wend
EndIf
Next
ElseIf kat_mode$(tp_1) = "III" Then
n% = rp_kol
end_str$ = ""
str_t$ = ""
a_dec = 0
For i = 1 To n%
end_str$ = end_str$ + "1"
Next
While str_t$ <> end_str$
str_t$ = Bin$(a_dec)
If Len(str_t$) > n% Then
str_t$ = Right (str_t$, n%)
ElseIf Len(str_t$) < n%
While Len(str_t$) < n%
str_t$ = "0" + str_t$
Wend
EndIf
rp_str$ = ""
add_kol = 0
For i = 1 To n%
add_ini$ = Mid$ (str_t$, i, 1)
If add_ini$ = 1 Then
add_kol = add_kol + 1
If add_kol > 4 Then
Exit
Else
rp_str$ = rp_str$ + Str(i) + "+"
EndIf
EndIf
Next
If add_kol <= 4 Then
If rp_str$ <> "" Then
rp_str$ = Left (rp_str$, Len(rp_str$) - 1)
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_1 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_1 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_2 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_2 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_3 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_3 = Int(rp_str$)
rp_str$ = ""
EndIf
If Instr(rp_str$, "+") <> 0 Then
rp_4 = Int(Left (rp_str$, Instr(rp_str$, "+") - 1))
rp_str$ = Right (rp_str$, Len(rp_str$) - Instr(rp_str$, "+"))
Else
rp_4 = Int(rp_str$)
rp_str$ = ""
EndIf
If rp_ini(rp_1) <> tp_1 And rp_ini(rp_2) <> tp_1 And rp_ini(rp_3) <> tp_1 And rp_ini(rp_4) <> tp_1 Then
calc_k (tp_1, 0, rp_1, rp_2, rp_3, rp_4)
tp_rep_kol = tp_rep_kol + 1
EndIf
EndIf
a_dec = a_dec + 1
Wend
EndIf
Next
End Function
Function calc_k(tp_1, tp_2 = 0, rp_1 = 0, rp_2 = 0, rp_3 = 0, rp_4 = 0)
; tp_2 ТОЛЬКО II категории
; К одному цеху I, II или III(с ТП -выше 660 кВА) категории подключаем от 0 до 4 РП и резервируемый цех II категории
If kat_mode$(tp_1) = "I" Then
For n_tr_1 = 2 To 2; Step 2
s_nom_tr = kz_TP_ini (tp_1, tp_2, rp_1, rp_2, rp_3, rp_4, n_tr_1, 0.7, 0.75)
If s_nom_tr > 0 Then
If tp_2 > 0 Then
kol_var_II = kz_TP_2_ini (tp_1, n_tr_1, tp_2, rp_1, rp_2, rp_3, rp_4, 0.75, 0.8)
If kol_var_II > 0 Then
For i = 1 To kol_var_II
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
rp_1_t = 0
rp_2_t = 0
rp_3_t = 0
rp_4_t = 0
If rp_1 > 0 And rp_1 <> rp_1_kz_TP_2_ADD_return (i) And rp_1 <> rp_2_kz_TP_2_ADD_return (i) And rp_1 <> rp_3_kz_TP_2_ADD_return (i) And rp_1 <> rp_4_kz_TP_2_ADD_return (i) And rp_1 <> rp_1_kz_TP_2_ini_return (i) And rp_1 <> rp_2_kz_TP_2_ini_return (i) And rp_1 <> rp_3_kz_TP_2_ini_return (i) And rp_1 <> rp_4_kz_TP_2_ini_return (i) Then rp_1_ini = 0
If rp_2 > 0 And rp_2 <> rp_1_kz_TP_2_ADD_return (i) And rp_2 <> rp_2_kz_TP_2_ADD_return (i) And rp_2 <> rp_3_kz_TP_2_ADD_return (i) And rp_2 <> rp_4_kz_TP_2_ADD_return (i) And rp_2 <> rp_1_kz_TP_2_ini_return (i) And rp_2 <> rp_2_kz_TP_2_ini_return (i) And rp_2 <> rp_3_kz_TP_2_ini_return (i) And rp_2 <> rp_4_kz_TP_2_ini_return (i) Then rp_2_ini = 0
If rp_3 > 0 And rp_3 <> rp_1_kz_TP_2_ADD_return (i) And rp_3 <> rp_2_kz_TP_2_ADD_return (i) And rp_3 <> rp_3_kz_TP_2_ADD_return (i) And rp_3 <> rp_4_kz_TP_2_ADD_return (i) And rp_3 <> rp_1_kz_TP_2_ini_return (i) And rp_3 <> rp_2_kz_TP_2_ini_return (i) And rp_3 <> rp_3_kz_TP_2_ini_return (i) And rp_3 <> rp_4_kz_TP_2_ini_return (i) Then rp_3_ini = 0
If rp_4 > 0 And rp_4 <> rp_1_kz_TP_2_ADD_return (i) And rp_4 <> rp_2_kz_TP_2_ADD_return (i) And rp_4 <> rp_3_kz_TP_2_ADD_return (i) And rp_4 <> rp_4_kz_TP_2_ADD_return (i) And rp_4 <> rp_1_kz_TP_2_ini_return (i) And rp_4 <> rp_2_kz_TP_2_ini_return (i) And rp_4 <> rp_3_kz_TP_2_ini_return (i) And rp_4 <> rp_4_kz_TP_2_ini_return (i) Then rp_4_ini = 0
If rp_1_ini = 0 Then
If rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 1 Then
rp_1_ini = 1
rp_1_t = rp_1
EndIf
EndIf
If rp_2_ini = 0 Then
If rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 1 Then
rp_2_ini = 1
rp_2_t = rp_2
EndIf
EndIf
If rp_3_ini = 0 Then
If rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 1 Then
rp_3_ini = 1
rp_3_t = rp_3
EndIf
EndIf
If rp_4_ini = 0 Then
If rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 1 Then
rp_4_ini = 1
rp_4_t = rp_4
EndIf
EndIf
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_nom_tr
tp_2_rep(w_add) = tp_2
n = step_over (rp_1_t, rp_2_t, rp_3_t, rp_4_t)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_kz_TP_2_ini_return(i), rp_2_kz_TP_2_ini_return(i), rp_3_kz_TP_2_ini_return(i), rp_4_kz_TP_2_ini_return(i))
For z = 1 To n
If z = 1 Then rp_1_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_2(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_kz_TP_2_ADD_return(i), rp_2_kz_TP_2_ADD_return(i), rp_3_kz_TP_2_ADD_return(i), rp_4_kz_TP_2_ADD_return(i))
For z = 1 To n
If z = 1 Then rp_1_addable_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_added_rep_2(w_add) = rp_add_hz_III(z)
Next
EndIf
TP_1_over_write (tp_1, n_tr_1, s_nom_tr, rp_1_t, rp_2_t, rp_3_t, rp_4_t, tp_2, rp_1_kz_TP_2_ini_return (i), rp_2_kz_TP_2_ini_return (i), rp_3_kz_TP_2_ini_return (i), rp_4_kz_TP_2_ini_return (i), rp_1_kz_TP_2_ADD_return (i), rp_2_kz_TP_2_ADD_return (i), rp_3_kz_TP_2_ADD_return (i), rp_4_kz_TP_2_ADD_return (i))
Next
EndIf
ElseIf tp_2 = 0 Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
If rp_1 > 0 And rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 0 Then rp_1_ini = 0
If rp_2 > 0 And rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 0 Then rp_2_ini = 0
If rp_3 > 0 And rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 0 Then rp_3_ini = 0
If rp_4 > 0 And rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 0 Then rp_4_ini = 0
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_nom_tr
n = step_over (rp_1, rp_2, rp_3, rp_4)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
EndIf
TP_1_over_write (tp_1, n_tr_1, s_nom_tr, rp_1, rp_2, rp_3, rp_4)
EndIf
EndIf
Next
ElseIf kat_mode$(tp_1) = "II" Then
If tp_2 > 0 Then
For n_tr_1 = 1 To 2
s_nom_tr = kz_TP_ini (tp_1, tp_2, rp_1, rp_2, rp_3, rp_4, n_tr_1, 0.75, 0.8)
If s_nom_tr > 0 Then
kol_var_II = kz_TP_2_ini (tp_1, n_tr_1, tp_2, rp_1, rp_2, rp_3, rp_4, 0.75, 0.8)
If kol_var_II > 0 Then
For i = 1 To kol_var_II
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
rp_1_t = 0
rp_2_t = 0
rp_3_t = 0
rp_4_t = 0
If rp_1 > 0 And rp_1 <> rp_1_kz_TP_2_ADD_return (i) And rp_1 <> rp_2_kz_TP_2_ADD_return (i) And rp_1 <> rp_3_kz_TP_2_ADD_return (i) And rp_1 <> rp_4_kz_TP_2_ADD_return (i) And rp_1 <> rp_1_kz_TP_2_ini_return (i) And rp_1 <> rp_2_kz_TP_2_ini_return (i) And rp_1 <> rp_3_kz_TP_2_ini_return (i) And rp_1 <> rp_4_kz_TP_2_ini_return (i) Then rp_1_ini = 0
If rp_2 > 0 And rp_2 <> rp_1_kz_TP_2_ADD_return (i) And rp_2 <> rp_2_kz_TP_2_ADD_return (i) And rp_2 <> rp_3_kz_TP_2_ADD_return (i) And rp_2 <> rp_4_kz_TP_2_ADD_return (i) And rp_2 <> rp_1_kz_TP_2_ini_return (i) And rp_2 <> rp_2_kz_TP_2_ini_return (i) And rp_2 <> rp_3_kz_TP_2_ini_return (i) And rp_2 <> rp_4_kz_TP_2_ini_return (i) Then rp_2_ini = 0
If rp_3 > 0 And rp_3 <> rp_1_kz_TP_2_ADD_return (i) And rp_3 <> rp_2_kz_TP_2_ADD_return (i) And rp_3 <> rp_3_kz_TP_2_ADD_return (i) And rp_3 <> rp_4_kz_TP_2_ADD_return (i) And rp_3 <> rp_1_kz_TP_2_ini_return (i) And rp_3 <> rp_2_kz_TP_2_ini_return (i) And rp_3 <> rp_3_kz_TP_2_ini_return (i) And rp_3 <> rp_4_kz_TP_2_ini_return (i) Then rp_3_ini = 0
If rp_4 > 0 And rp_4 <> rp_1_kz_TP_2_ADD_return (i) And rp_4 <> rp_2_kz_TP_2_ADD_return (i) And rp_4 <> rp_3_kz_TP_2_ADD_return (i) And rp_4 <> rp_4_kz_TP_2_ADD_return (i) And rp_4 <> rp_1_kz_TP_2_ini_return (i) And rp_4 <> rp_2_kz_TP_2_ini_return (i) And rp_4 <> rp_3_kz_TP_2_ini_return (i) And rp_4 <> rp_4_kz_TP_2_ini_return (i) Then rp_4_ini = 0
If rp_1_ini = 0 Then
If rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 1 Then
rp_1_ini = 1
rp_1_t = rp_1
EndIf
EndIf
If rp_2_ini = 0 Then
If rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 1 Then
rp_2_ini = 1
rp_2_t = rp_2
EndIf
EndIf
If rp_3_ini = 0 Then
If rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 1 Then
rp_3_ini = 1
rp_3_t = rp_3
EndIf
EndIf
If rp_4_ini = 0 Then
If rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 1 Then
rp_4_ini = 1
rp_4_t = rp_4
EndIf
EndIf
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_nom_tr
tp_2_rep(w_add) = tp_2
n = step_over (rp_1_t, rp_2_t, rp_3_t, rp_4_t)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_kz_TP_2_ini_return(i), rp_2_kz_TP_2_ini_return(i), rp_3_kz_TP_2_ini_return(i), rp_4_kz_TP_2_ini_return(i))
For z = 1 To n
If z = 1 Then rp_1_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_2(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_kz_TP_2_ADD_return(i), rp_2_kz_TP_2_ADD_return(i), rp_3_kz_TP_2_ADD_return(i), rp_4_kz_TP_2_ADD_return(i))
For z = 1 To n
If z = 1 Then rp_1_addable_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_added_rep_2(w_add) = rp_add_hz_III(z)
Next
EndIf
TP_1_over_write (tp_1, n_tr_1, s_nom_tr, rp_1_t, rp_2_t, rp_3_t, rp_4_t, tp_2, rp_1_kz_TP_2_ini_return (i), rp_2_kz_TP_2_ini_return (i), rp_3_kz_TP_2_ini_return (i), rp_4_kz_TP_2_ini_return (i), rp_1_kz_TP_2_ADD_return (i), rp_2_kz_TP_2_ADD_return (i), rp_3_kz_TP_2_ADD_return (i), rp_4_kz_TP_2_ADD_return (i))
Next
EndIf
EndIf
Next
ElseIf tp_2 = 0 Then
For n_tr_1 = 2 To 2; Step 2
s_nom_tr = kz_TP_ini (tp_1, tp_2, rp_1, rp_2, rp_3, rp_4, n_tr_1, 0.75, 0.8)
If s_nom_tr > 0 Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
If rp_1 > 0 And rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 0 Then rp_1_ini = 0
If rp_2 > 0 And rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 0 Then rp_2_ini = 0
If rp_3 > 0 And rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 0 Then rp_3_ini = 0
If rp_4 > 0 And rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 0 Then rp_4_ini = 0
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_nom_tr
n = step_over (rp_1, rp_2, rp_3, rp_4)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
EndIf
TP_1_over_write (tp_1, n_tr_1, s_nom_tr, rp_1, rp_2, rp_3, rp_4)
EndIf
Next
EndIf
ElseIf kat_mode$(tp_1) = "III" Then
For n_tr_1 = 1 To 2
s_nom_tr = kz_TP_ini (tp_1, tp_2, rp_1, rp_2, rp_3, rp_4, n_tr_1, 0.8, 0.9)
If s_nom_tr > 0 Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
If rp_1 > 0 And rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 0 Then rp_1_ini = 0
If rp_2 > 0 And rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 0 Then rp_2_ini = 0
If rp_3 > 0 And rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 0 Then rp_3_ini = 0
If rp_4 > 0 And rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 0 Then rp_4_ini = 0
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_nom_tr
n = step_over (rp_1, rp_2, rp_3, rp_4)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
EndIf
TP_1_over_write (tp_1, n_tr_1, s_nom_tr, rp_1, rp_2, rp_3, rp_4)
EndIf
Next
EndIf
End Function
Function step_over(rp_1, rp_2, rp_3, rp_4)
Dim rp_add_hz_III (5)
n = 0
If rp_1 > 0 Then
n = n + 1
rp_add_hz_III (n) = rp_1
EndIf
If rp_2 > 0 Then
n = n + 1
rp_add_hz_III (n) = rp_2
EndIf
If rp_3 > 0 Then
n = n + 1
rp_add_hz_III (n) = rp_3
EndIf
If rp_4 > 0 Then
n = n + 1
rp_add_hz_III (n) = rp_4
EndIf
Return n
End Function
Function TP_1_over_write(tp_1, n_tr_1, s_tr_1, rp_1 = 0, rp_2 = 0, rp_3 = 0, rp_4 = 0, tp_2 = 0, rp_1_II = 0, rp_2_II = 0, rp_3_II = 0, rp_4_II = 0, rp_1_II_addble = 0, rp_2_II_add = 0, rp_3_II_add = 0, rp_4_II_add = 0)
kol_var = rp_add_rp(tp_1, rp_1, rp_2, rp_3, rp_4)
If kol_var > 0 Then
For i = 1 To kol_var
If rp_to_TP(tp_1, rp_add_rp_return_rp_1 (i), Float(s_p_rp$(rp_add_rp_return_rp_1(i))) + Float(s_p_rp$(rp_add_rp_return_rp_2(i))) + Float(s_p_rp$(rp_add_rp_return_rp_3(i))) + Float(s_p_rp$(rp_add_rp_return_rp_4(i)))) > 0 Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
rp_1_t = 0
rp_2_t = 0
rp_3_t = 0
rp_4_t = 0
If rp_1 > 0 And rp_add_rp_return_rp_1(i) <> rp_1 And rp_add_rp_return_rp_2(i) <> rp_1 And rp_add_rp_return_rp_3(i) <> rp_1 And rp_add_rp_return_rp_4(i) <> rp_1 Then rp_1_ini = 0
If rp_2 > 0 And rp_add_rp_return_rp_1(i) <> rp_2 And rp_add_rp_return_rp_2(i) <> rp_2 And rp_add_rp_return_rp_3(i) <> rp_2 And rp_add_rp_return_rp_4(i) <> rp_2 Then rp_2_ini = 0
If rp_3 > 0 And rp_add_rp_return_rp_1(i) <> rp_3 And rp_add_rp_return_rp_2(i) <> rp_3 And rp_add_rp_return_rp_3(i) <> rp_3 And rp_add_rp_return_rp_4(i) <> rp_3 Then rp_3_ini = 0
If rp_4 > 0 And rp_add_rp_return_rp_1(i) <> rp_4 And rp_add_rp_return_rp_2(i) <> rp_4 And rp_add_rp_return_rp_3(i) <> rp_4 And rp_add_rp_return_rp_4(i) <> rp_4 Then rp_4_ini = 0
If rp_1_ini = 0 Then
If rp_to_TP (tp_1, rp_1, Float(s_p_rp$(rp_1))) = 1 Then
rp_1_ini = 1
rp_1_t = rp_1
EndIf
EndIf
If rp_2_ini = 0 Then
If rp_to_TP (tp_1, rp_2, Float(s_p_rp$(rp_2))) = 1 Then
rp_2_ini = 1
rp_2_t = rp_2
EndIf
EndIf
If rp_3_ini = 0 Then
If rp_to_TP (tp_1, rp_3, Float(s_p_rp$(rp_3))) = 1 Then
rp_3_ini = 1
rp_3_t = rp_3
EndIf
EndIf
If rp_4_ini = 0 Then
If rp_to_TP (tp_1, rp_4, Float(s_p_rp$(rp_4))) = 1 Then
rp_4_ini = 1
rp_4_t = rp_4
EndIf
EndIf
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
w_add = w_add + 1
tp_1_rep(w_add) = tp_1
n_tr_rep_1 (w_add) = n_tr_1
s_tr_rep_1 (w_add) = s_tr_1
tp_2_rep(w_add) = tp_2
n = step_over (rp_1_t, rp_2_t, rp_3_t, rp_4_t)
For z = 1 To n
If z = 1 Then rp_1_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_1(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_add_rp_return_rp_1(i), rp_add_rp_return_rp_2(i), rp_add_rp_return_rp_3(i), rp_add_rp_return_rp_4(i))
For z = 1 To n
If z = 1 Then rp_1_addable_rep_1(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_added_rep_1(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_added_rep_1(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_added_rep_1(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_II, rp_2_II, rp_3_II, rp_4_II)
For z = 1 To n
If z = 1 Then rp_1_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_rep_2(w_add) = rp_add_hz_III(z)
Next
n = step_over (rp_1_II_addble, rp_2_II_add, rp_3_II_add, rp_4_II_add)
For z = 1 To n
If z = 1 Then rp_1_addable_rep_2(w_add) = rp_add_hz_III(z)
If z = 2 Then rp_2_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 3 Then rp_3_added_rep_2(w_add) = rp_add_hz_III(z)
If z = 4 Then rp_4_added_rep_2(w_add) = rp_add_hz_III(z)
Next
EndIf
EndIf
Next
EndIf
End Function
Function kz_TP_ini(tp_1, tp_2, rp_1, rp_2, rp_3, rp_4, n_tr, k_z_1#, k_z_2#)
ras_nagr# = Float(p_p_mode$(tp_2))
ras_q# = Float(q_p_mode$(tp_2))
For ku = 1 To 32
If Int(ku_nom%(ku)) >= ((ras_nagr# * (ras_q#/ras_nagr# - 0.33)) * 0.97) Then
q_qu_2 = ku_nom%(ku)
Exit
EndIf
If ku = 32 Then q_qu_2 = ku_nom%(32)
Next
P_sum# = Float(p_p_mode$(tp_1)) + Float(p_p_mode$(tp_2)) + Float(p_p_rp$(rp_1)) + Float(p_p_rp$(rp_2)) + Float(p_p_rp$(rp_3)) + Float(p_p_rp$(rp_4))
Q_sum# = Float(q_p_mode$(tp_1)) + Float(q_p_mode$(tp_2)) - q_qu_2 + Float(q_p_rp$(rp_1)) + Float(q_p_rp$(rp_2)) + Float(q_p_rp$(rp_3)) + Float(q_p_rp$(rp_4))
tg# = Q_sum# / P_sum#
Qqu# = P_sum# * (tg# - 0.33)
For ku = 1 To 32
If Int(ku_nom%(ku)) * n_tr >= (Qqu# * 0.97) Then
Qqu_2# = ku_nom%(ku)
Exit
EndIf
If ku = 32 Then Qqu_2# = ku_nom%(32)
Next
S_sum# = Sqr(P_sum#^2 + (Q_sum# - (Qqu_2# * n_tr))^2)
For e = 1 To 8
k_z# = S_sum# / (n_tr * trans%(e))
If k_z# >= (k_z_1# - delta_kz#) And k_z# <= (k_z_2# + delta_kz#) Then
Return trans%(e)
Exit
EndIf
Next
End Function
Function kz_TP_2_ini(tp_1, n_tr_1, tp_2, rp_1, rp_2, rp_3, rp_4, k_z_1#, k_z_2#); ТП-1 и ТП-2 > 0, РП: 0 - 4
If tp_1 > 0 And tp_2 > 0 And k_z_1# > 0 And k_z_2# > 0 Then
Dim rp_1_kz_TP_2_ini_return (900000)
Dim rp_2_kz_TP_2_ini_return (900000)
Dim rp_3_kz_TP_2_ini_return (900000)
Dim rp_4_kz_TP_2_ini_return (900000)
Dim rp_1_kz_TP_2_ADD_return (900000)
Dim rp_2_kz_TP_2_ADD_return (900000)
Dim rp_3_kz_TP_2_ADD_return (900000)
Dim rp_4_kz_TP_2_ADD_return (900000)
Dim rp_add_hz_II (5)
If rp_1 > 0 Then
n = n + 1
rp_add_hz_II (n) = rp_1
EndIf
If rp_2 > 0 Then
n = n + 1
rp_add_hz_II (n) = rp_2
EndIf
If rp_3 > 0 Then
n = n + 1
rp_add_hz_II (n) = rp_3
EndIf
If rp_4 > 0 Then
n = n + 1
rp_add_hz_II (n) = rp_4
EndIf
If n = 0 Then
P_sum_II# = Float(p_p_mode$(tp_2))
Q_sum_II# = Float(q_p_mode$(tp_2))
If n_tr_1 = 1 Then
P_sum_II# = P_sum_II# + Float(p_p_mode$(tp_1))
Q_sum_II# = Q_sum_II# + Float(q_p_mode$(tp_1))
EndIf
tg_II# = Q_sum_II# / P_sum_II#
Qqu_II# = P_sum_II# * (tg_II# - 0.33)
For ku = 1 To 32
If Int (ku_nom%(ku)) >= (Qqu_II# * 0.97) Then
Qqu_2_II# = ku_nom%(ku)
Exit
EndIf
If ku = 32 Then Qqu_2_II# = ku_nom%(32)
Next
S_sum_II# = Sqr(P_sum_II#^2 + (Q_sum_II# - Qqu_2_II#)^2)
For e_II = 1 To 8
k_z_II# = S_sum_II# / trans%(e_II)
If k_z_II# >= (k_z_1# - delta_kz#) And k_z_II# <= (k_z_2# + delta_kz#) Then
If TP_to_TP (tp_1, tp_2, k_z_II#, trans%(e_II), 0, 0) > 0 Then i_add = i_add + 1
Exit
EndIf
Next
ElseIf n > 0 Then
For i = 1 To n
end_str$ = end_str$ + "1"
Next
While str_t$ <> end_str$
str_t$ = Bin$(a_dec)
If Len(str_t$) > n% Then
str_t$ = Right (str_t$, n%)
ElseIf Len(str_t$) < n%
While Len(str_t$) < n%
str_t$ = "0" + str_t$
Wend
EndIf
rp_1_II = rp_add_hz_II (1)
rp_2_II = rp_add_hz_II (2)
rp_3_II = rp_add_hz_II (3)
rp_4_II = rp_add_hz_II (4)
For i = 1 To n%
add_ini$ = Mid$ (str_t$, i, 1)
If i = 1 And add_ini$ = "0" Then rp_1_II = 0
If i = 2 And add_ini$ = "0" Then rp_2_II = 0
If i = 3 And add_ini$ = "0" Then rp_3_II = 0
If i = 4 And add_ini$ = "0" Then rp_4_II = 0
Next
p_en_II = 0
If rp_1_II > 0 Then p_en_II = p_en_II + 1
If rp_2_II > 0 Then p_en_II = p_en_II + 1
If rp_3_II > 0 Then p_en_II = p_en_II + 1
If rp_4_II > 0 Then p_en_II = p_en_II + 1
P_sum_II# = Float(p_p_mode$(tp_2)) + Float(p_p_rp$(rp_1_II)) + Float(p_p_rp$(rp_2_II)) + Float(p_p_rp$(rp_3_II)) + Float(p_p_rp$(rp_4_II))
Q_sum_II# = Float(q_p_mode$(tp_2)) + Float(q_p_rp$(rp_1_II)) + Float(q_p_rp$(rp_2_II)) + Float(q_p_rp$(rp_3_II)) + Float(q_p_rp$(rp_4_II))
If n_tr_1 = 1 Then
P_sum_II# = P_sum_II# + Float(p_p_mode$(tp_1))
Q_sum_II# = Q_sum_II# + Float(q_p_mode$(tp_1))
EndIf
tg_II# = Q_sum_II# / P_sum_II#
Qqu_II# = P_sum_II# * (tg_II# - 0.33)
For ku = 1 To 32
If Int (ku_nom%(ku)) >= (Qqu_II# * 0.97) Then
Qqu_2_II# = ku_nom%(ku)
Exit
EndIf
If ku = 32 Then Qqu_2_II# = ku_nom%(32)
Next
S_sum_II# = Sqr(P_sum_II#^2 + (Q_sum_II# - Qqu_2_II#)^2)
For e_II = 1 To 8
k_z_II# = S_sum_II# / trans%(e_II)
If k_z_II# >= (k_z_1# - delta_kz#) And k_z_II# <= (k_z_2# + delta_kz#) Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
If rp_1_II > 0 And rp_to_TP (tp_2, rp_1_II, Float(s_p_rp$(rp_1_II))) = 0 Then rp_1_ini = 0
If rp_2_II > 0 And rp_to_TP (tp_2, rp_2_II, Float(s_p_rp$(rp_2_II))) = 0 Then rp_2_ini = 0
If rp_3_II > 0 And rp_to_TP (tp_2, rp_3_II, Float(s_p_rp$(rp_3_II))) = 0 Then rp_3_ini = 0
If rp_4_II > 0 And rp_to_TP (tp_2, rp_4_II, Float(s_p_rp$(rp_4_II))) = 0 Then rp_4_ini = 0
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
P_dop_tp_2# = Float(p_p_rp$(rp_1_II)) + Float(p_p_rp$(rp_2_II)) + Float(p_p_rp$(rp_3_II)) + Float(p_p_rp$(rp_4_II))
Q_dop_tp_2# = Float(q_p_rp$(rp_1_II)) + Float(q_p_rp$(rp_2_II)) + Float(q_p_rp$(rp_3_II)) + Float(q_p_rp$(rp_4_II))
If TP_to_TP (tp_1, tp_2, k_z_II#, trans%(e_II), P_dop_tp_2#, Q_dop_tp_2#) > 0 Then
i_add = i_add + 1
rp_1_kz_TP_2_ini_return (i_add) = rp_1_II
rp_2_kz_TP_2_ini_return (i_add) = rp_2_II
rp_3_kz_TP_2_ini_return (i_add) = rp_3_II
rp_4_kz_TP_2_ini_return (i_add) = rp_4_II
EndIf
EndIf
If p_en_II >= 2 Then
kol_var = rp_add_rp (tp_2, rp_1_II, rp_2_II, rp_3_II, rp_4_II)
If kol_var > 0 Then
For i = 1 To kol_var
If rp_to_TP (tp_2, rp_add_rp_return_rp_1 (i), Float(s_p_rp$(rp_1_II))) > 0 Then
rp_1_ini = 1
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
rp_1_t = 0
rp_2_t = 0
rp_3_t = 0
rp_4_t = 0
If rp_1_II > 0 And rp_add_rp_return_rp_1(i) <> rp_1_II And rp_add_rp_return_rp_2(i) <> rp_1_II And rp_add_rp_return_rp_3(i) <> rp_1_II And rp_add_rp_return_rp_4(i) <> rp_1_II Then rp_1_ini = 0
If rp_2_II > 0 And rp_add_rp_return_rp_1(i) <> rp_2_II And rp_add_rp_return_rp_2(i) <> rp_2_II And rp_add_rp_return_rp_3(i) <> rp_2_II And rp_add_rp_return_rp_4(i) <> rp_2_II Then rp_2_ini = 0
If rp_3_II > 0 And rp_add_rp_return_rp_1(i) <> rp_3_II And rp_add_rp_return_rp_2(i) <> rp_3_II And rp_add_rp_return_rp_3(i) <> rp_3_II And rp_add_rp_return_rp_4(i) <> rp_3_II Then rp_3_ini = 0
If rp_4_II > 0 And rp_add_rp_return_rp_1(i) <> rp_4_II And rp_add_rp_return_rp_2(i) <> rp_4_II And rp_add_rp_return_rp_3(i) <> rp_4_II And rp_add_rp_return_rp_4(i) <> rp_4_II Then rp_4_ini = 0
If rp_1_ini = 0 Then
If rp_to_TP (tp_2, rp_1_II, Float(s_p_rp$(rp_1_II))) = 1 Then
rp_1_ini = 1
rp_1_t = rp_1_II
EndIf
EndIf
If rp_2_ini = 0 Then
If rp_to_TP (tp_2, rp_2_II, Float(s_p_rp$(rp_2_II))) = 1 Then
rp_2_ini = 1
rp_2_t = rp_2_II
EndIf
EndIf
If rp_3_ini = 0 Then
If rp_to_TP (tp_2, rp_3_II, Float(s_p_rp$(rp_3_II))) = 1 Then
rp_3_ini = 1
rp_3_t = rp_3_II
EndIf
EndIf
If rp_4_ini = 0 Then
If rp_to_TP (tp_2, rp_4_II, Float(s_p_rp$(rp_4_II))) = 1 Then
rp_4_ini = 1
rp_4_t = rp_4_II
EndIf
EndIf
If rp_1_ini = 1 And rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
P_dop_tp_2# = Float(p_p_rp$(rp_add_rp_return_rp_1(i))) + Float(p_p_rp$(rp_add_rp_return_rp_2(i))) + Float(p_p_rp$(rp_add_rp_return_rp_3(i))) + Float(p_p_rp$(rp_add_rp_return_rp_4(i))) + Float(p_p_rp$(rp_1_t)) + Float(p_p_rp$(rp_2_t)) + Float(p_p_rp$(rp_3_t)) + Float(p_p_rp$(rp_4_t))
Q_dop_tp_2# = Float(q_p_rp$(rp_add_rp_return_rp_1(i))) + Float(q_p_rp$(rp_add_rp_return_rp_2(i))) + Float(q_p_rp$(rp_add_rp_return_rp_3(i))) + Float(q_p_rp$(rp_add_rp_return_rp_4(i))) + Float(q_p_rp$(rp_1_t)) + Float(q_p_rp$(rp_2_t)) + Float(q_p_rp$(rp_3_t)) + Float(q_p_rp$(rp_4_t))
If n_tr_1 = 1 Then
P_dop_tp_2# = P_dop_tp_2# + Float(p_p_mode$(tp_1))
Q_dop_tp_2# = Q_dop_tp_2# + Float(q_p_mode$(tp_1))
EndIf
If TP_to_TP (tp_1, tp_2, k_z_II#, trans%(e_II), P_dop_tp_2#, Q_dop_tp_2#) > 0 Then
i_add = i_add + 1
rp_1_kz_TP_2_ADD_return (i_add) = rp_add_rp_return_rp_1(i)
rp_2_kz_TP_2_ADD_return (i_add) = rp_add_rp_return_rp_2(i)
rp_3_kz_TP_2_ADD_return (i_add) = rp_add_rp_return_rp_3(i)
rp_4_kz_TP_2_ADD_return (i_add) = rp_add_rp_return_rp_4(i)
If rp_1_t > 0 Then rp_1_kz_TP_2_ini_return (i_add) = rp_1_t
If rp_2_t > 0 Then rp_2_kz_TP_2_ini_return (i_add) = rp_2_t
If rp_3_t > 0 Then rp_3_kz_TP_2_ini_return (i_add) = rp_3_t
If rp_4_t > 0 Then rp_4_kz_TP_2_ini_return (i_add) = rp_4_t
EndIf
EndIf
EndIf
Next
EndIf
EndIf
Exit
EndIf
Next
a_dec = a_dec + 1
Wend
EndIf
Return i_add
EndIf
End Function
Function TP_to_TP(tp_1, tp_2, k_z_2#, s_nom_tr_tp_2, P_dop_tp_2#, Q_dop_tp_2#)
; только если ТП-1 > 0 и ТП-2 > 0 и Кз > 0 и Sном > 0
; проверка возможности резервирования одной ТП II категории к другой ТП
; k_z_2# - расчетный коэффициент загрузки резервируемой ТП-2
; s_nom_tr_tp_2 - номинальная мощность трансформаторов резервируемой ТП-2
;P_dop_tp_2# - суммарная активная мощность РП, подключенных к резервируемой ТП-2
;Q_dop_tp_2# - суммарная реактивная мощность РП, подключенных к резервируемой ТП-2
If tp_1 > 0 And tp_2 > 0 And k_z_2# > 0 And s_nom_tr_tp_2 > 0 Then
For i = 1 To 8
If trans (i) = s_nom_tr_tp_2 Then
i_add = i
Exit
EndIf
Next
If trans (i_add) = 0 Then Return 0
ras_nagr# = Float(p_p_mode$(tp_2)) + P_dop_tp_2#
ras_q# = Float(q_p_mode$(tp_2)) + Q_dop_tp_2#
For ku = 1 To 32
If Int(ku_nom%(ku)) >= ((ras_nagr# * (ras_q#/ras_nagr# - 0.33)) * 0.97) Then
q_qu_2 = ku_nom%(ku)
Exit
EndIf
If ku = 32 Then q_qu_2 = ku_nom%(32)
Next
If tp_type$(tp_2) = "ТСЗ" Then
delta_p_tp# = delta_p_xx_tsz#(i_add) + (delta_p_kz_tsz#(i_add) * (k_z_2#^2))
delta_q_xx# = (t_xx_tsz# (i_add) * s_nom_tr_tp_2) / 100
delta_q_kz# = (u_kz_tsz# (i_add) * s_nom_tr_tp_2) / 100
delta_q_tp# = delta_q_xx# + (delta_q_kz# * (k_z_2#^2))
Else
delta_p_tp# = delta_p_xx_tm#(i_add) + (delta_p_kz_tm#(i_add) * (k_z_2#^2))
delta_q_xx# = (t_xx_tm# (i_add) * s_nom_tr_tp_2) / 100
delta_q_kz# = (u_kz_tm# (i_add) * s_nom_tr_tp_2) / 100
delta_q_tp# = delta_q_xx# + (delta_q_kz# * (k_z_2#^2))
EndIf
While kl_ini = 0
n_line = n_line + 1
If n_line > 4 Then Return 0
s_nom_tp# = Sqr((ras_nagr# / n_line + delta_p_tp#)^2 + ((ras_q# - q_qu_2) / n_line + delta_q_tp#)^2)
i_r_nom# = s_nom_tp# / (Sqr(3) * 0.4)
i_r_nom_dop# = i_r_nom# / k_1_koef#(n_line)
If kl_04_ini(tp_1, tp_2, i_r_nom_dop#) > 0 Then Return 1
Wend
EndIf
End Function
Function rp_to_TP(tp, rp, S_sum_rp#)
; только если ТП и РП больше 0
; проверка возможности подключения одной РП (или связки) к ТП
; S_sum_rp# - суммарная мощность связки РП
If tp > 0 And rp > 0 And S_sum_rp# <= 330 Then
While kl_ini = 0
n_line = n_line + 1
If n_line > 2 Then Return 0
i_r# = S_sum_rp# / (n_line * Sqr(3) * 0.4)
If kl_04_ini(tp, rp_ini(rp), i_r#) > 0 Then Return 1
Wend
EndIf
End Function
Function kl_04_ini(obj_1, obj_2, i_r#)
l_kl_tp# = min_dist_ceh_to_ceh# (obj_1, obj_2)
For acb = 4 To 12
If Float(tok_acb_04$ (acb)) >= (i_r# * 1.05) Then
L_dop# = Float(d_p_acb_04$(acb)) * 5 * (Float(tok_acb_04$(acb)) / i_r#)
If l_kl_tp# < L_dop# Then Return s_acb_04$(acb)
EndIf
If acb = 12 Then
Return 0
EndIf
Next
End Function
Function kl_vv_ini(obj_1, obj_2, i_r#)
;If Int(u_raspred$) = 6 Then
;For acb = 4 To 12
;If Float(tok_aasv_6$ (acb)) >= (i_r#*1.05) And Float(s_aasv_6$(acb)) >= (I_r_n# / 1.4) * 1.1 Then
;acb_tp = acb
;L_dop# = Float(L_dp_aasv_6$(acb_tp)) * 10 * (Float(tok_aasv_6$ (acb)) / i_r#)
;Exit
;EndIf
;Next
;ElseIf Int(u_raspred$) = 10 Then
;For acb = 3 To 11
;If Float(tok_aasv_10$ (acb)) >= (i_r#*1.05) And Float(s_aasv_10$(acb)) >= (I_r_n# / 1.4) * 1.1 Then
;acb_tp = acb
;L_dop# = Float(L_dp_aasv_10$(acb_tp)) * 10 * (Float(tok_aasv_10$ (acb)) / i_r#)
;Exit
;EndIf
;Next
;EndIf
End Function
Function rp_to_rp(rp_1, rp_2, S_sum_rp#)
; только если РП-1 и РП-2 больше 0
; проверка возможности подключения одной РП (или связки) к РП [addable]
; S_sum_rp# - суммарная мощность связки РП
If rp_1 > 0 And rp_2 > 0 And S_sum_rp# <= 330 And (rp_ini(rp_1) <> rp_ini(rp_2)) Then
While kl_ini = 0
n_line = n_line + 1
If n_line > 2 Then Return 0
i_r# = S_sum_rp# / (n_line * Sqr(3) * 0.4)
If kl_04_ini(rp_ini(rp_1), rp_ini(rp_2), i_r#) > 0 Then Return 1
Wend
EndIf
End Function
Function rp_add_rp(tp, rp_1, rp_2, rp_3, rp_4)
; учитывает варианты, в которых ТП > 0 и количество РП - 2 и более
; перебор всех возможных связок из РП (взаимоподключаемых по магистрали и без)
If tp > 0 Then
p_en = 0
Dim rp_add_hz (5)
If rp_1 > 0 Then
p_en = p_en + 1
rp_add_hz (p_en) = rp_1
EndIf
If rp_2 > 0 Then
p_en = p_en + 1
rp_add_hz (p_en) = rp_2
EndIf
If rp_3 > 0 Then
p_en = p_en + 1
rp_add_hz (p_en) = rp_3
EndIf
If rp_4 > 0 Then
p_en = p_en + 1
rp_add_hz (p_en) = rp_4
EndIf
EndIf
If p_en >= 2 Then
For q = 1 To p_en
If q = 1 Then
n_III = p_en - 1
end_str_III$ = ""
str_t_III$ = ""
a_dec_III = 0
For i = 1 To n_III
end_str_III$ = end_str_III$ + "1"
Next
While str_t_III$ <> end_str_III$
str_t_III$ = Bin$(a_dec_III)
If Len(str_t_III$) > n_III Then
str_t_III$ = Right (str_t_III$, n_III)
ElseIf Len(str_t_III$) < n_III
While Len(str_t_III$) < n_III
str_t_III$ = "0" + str_t_III$
Wend
EndIf
rp_2_III = 0
rp_3_III = 0
rp_4_III = 0
rp_1_III = rp_add_hz (q)
For i = 2 To p_en
add_ini_III$ = Mid$ (str_t_III$, (i - 1), 1)
If i = 2 And add_ini_III$ = "1" Then rp_2_III = rp_add_hz(2)
If i = 3 And add_ini_III$ = "1" Then rp_3_III = rp_add_hz(3)
If i = 4 And add_ini_III$ = "1" Then rp_4_III = rp_add_hz(4)
Next
S_sum_rp# = rp_add_ini (tp, rp_1_III, rp_2_III, rp_3_III, rp_4_III)
If S_sum_rp# > 0 Then
rp_add_rp_ini = rp_add_rp_ini + 1
rp_add_rp_return_rp_1 (rp_add_rp_ini) = rp_1_III
rp_add_rp_return_rp_2 (rp_add_rp_ini) = rp_2_III
rp_add_rp_return_rp_3 (rp_add_rp_ini) = rp_3_III
rp_add_rp_return_rp_4 (rp_add_rp_ini) = rp_4_III
EndIf
a_dec_III = a_dec_III + 1
Wend
ElseIf q = 2 Then
n_III = p_en - 1
end_str_III$ = ""
str_t_III$ = ""
a_dec_III = 0
For i = 1 To n_III
end_str_III$ = end_str_III$ + "1"
Next
While str_t_III$ <> end_str_III$
str_t_III$ = Bin$(a_dec_III)
If Len(str_t_III$) > n_III Then
str_t_III$ = Right (str_t_III$, n_III)
ElseIf Len(str_t_III$) < n_III
While Len(str_t_III$) < n_III
str_t_III$ = "0" + str_t_III$
Wend
EndIf
rp_2_III = 0
rp_3_III = 0
rp_4_III = 0
rp_1_III = rp_add_hz (q)
For i = 2 To p_en
add_ini_III$ = Mid$ (str_t_III$, (i - 1), 1)
If i = 2 And add_ini_III$ = "1" Then rp_2_III = rp_add_hz(1)
If i = 3 And add_ini_III$ = "1" Then rp_3_III = rp_add_hz(3)
If i = 4 And add_ini_III$ = "1" Then rp_4_III = rp_add_hz(4)
Next
S_sum_rp# = rp_add_ini (tp, rp_1_III, rp_2_III, rp_3_III, rp_4_III)
If S_sum_rp# > 0 Then
rp_add_rp_ini = rp_add_rp_ini + 1
rp_add_rp_return_rp_1 (rp_add_rp_ini) = rp_1_III
rp_add_rp_return_rp_2 (rp_add_rp_ini) = rp_2_III
rp_add_rp_return_rp_3 (rp_add_rp_ini) = rp_3_III
rp_add_rp_return_rp_4 (rp_add_rp_ini) = rp_4_III
EndIf
a_dec_III = a_dec_III + 1
Wend
ElseIf q = 3 Then
n_III = p_en - 1
end_str_III$ = ""
str_t_III$ = ""
a_dec_III = 0
For i = 1 To n_III
end_str_III$ = end_str_III$ + "1"
Next
While str_t_III$ <> end_str_III$
str_t_III$ = Bin$(a_dec_III)
If Len(str_t_III$) > n_III Then
str_t_III$ = Right (str_t_III$, n_III)
ElseIf Len(str_t_III$) < n_III
While Len(str_t_III$) < n_III
str_t_III$ = "0" + str_t_III$
Wend
EndIf
rp_2_III = 0
rp_3_III = 0
rp_4_III = 0
rp_1_III = rp_add_hz (q)
For i = 2 To p_en
add_ini_III$ = Mid$ (str_t_III$, (i - 1), 1)
If i = 2 And add_ini_III$ = "1" Then rp_2_III = rp_add_hz(1)
If i = 3 And add_ini_III$ = "1" Then rp_3_III = rp_add_hz(2)
If i = 4 And add_ini_III$ = "1" Then rp_4_III = rp_add_hz(4)
Next
S_sum_rp# = rp_add_ini (tp, rp_1_III, rp_2_III, rp_3_III, rp_4_III)
If S_sum_rp# > 0 Then
rp_add_rp_ini = rp_add_rp_ini + 1
rp_add_rp_return_rp_1 (rp_add_rp_ini) = rp_1_III
rp_add_rp_return_rp_2 (rp_add_rp_ini) = rp_2_III
rp_add_rp_return_rp_3 (rp_add_rp_ini) = rp_3_III
rp_add_rp_return_rp_4 (rp_add_rp_ini) = rp_4_III
EndIf
a_dec_III = a_dec_III + 1
Wend
ElseIf q = 4 Then
n_III = p_en - 1
end_str_III$ = ""
str_t_III$ = ""
a_dec_III = 0
For i = 1 To n_III
end_str_III$ = end_str_III$ + "1"
Next
While str_t_III$ <> end_str_III$
str_t_III$ = Bin$(a_dec_III)
If Len(str_t_III$) > n_III Then
str_t_III$ = Right (str_t_III$, n_III)
ElseIf Len(str_t_III$) < n_III
While Len(str_t_III$) < n_III
str_t_III$ = "0" + str_t_III$
Wend
EndIf
rp_2_III = 0
rp_3_III = 0
rp_4_III = 0
rp_1_III = rp_add_hz (q)
For i = 2 To p_en
add_ini_III$ = Mid$ (str_t_III$, (i - 1), 1)
If i = 2 And add_ini_III$ = "1" Then rp_2_III = rp_add_hz(1)
If i = 3 And add_ini_III$ = "1" Then rp_3_III = rp_add_hz(2)
If i = 4 And add_ini_III$ = "1" Then rp_4_III = rp_add_hz(3)
Next
S_sum_rp# = rp_add_ini (tp, rp_1_III, rp_2_III, rp_3_III, rp_4_III)
If S_sum_rp# > 0 Then
rp_add_rp_ini = rp_add_rp_ini + 1
rp_add_rp_return_rp_1 (rp_add_rp_ini) = rp_1_III
rp_add_rp_return_rp_2 (rp_add_rp_ini) = rp_2_III
rp_add_rp_return_rp_3 (rp_add_rp_ini) = rp_3_III
rp_add_rp_return_rp_4 (rp_add_rp_ini) = rp_4_III
EndIf
a_dec_III = a_dec_III + 1
Wend
EndIf
Next
EndIf
Return rp_add_rp_ini
End Function
Function rp_add_ini#(tp = 0, rp_1, rp_2 = 0, rp_3 = 0, rp_4 = 0)
; только если количество подключаемых РП 2 и более, иначе возвращает 0
; проверка возможности создания магистралей(связок) из РП, подключенных к ТП
If rp_1 > 0 And (rp_2 > 0 Or rp_3 > 0 Or rp_4 > 0) And (rp_ini(rp_1) <> rp_ini(rp_2)) And (rp_ini(rp_1) <> rp_ini(rp_3)) And (rp_ini(rp_1) <> rp_ini(rp_4)) Then
S_sum_rp# = Float(s_p_rp$(rp_1))
If rp_2 > 0 Then S_sum_rp# = S_sum_rp# + Float(s_p_rp$(rp_2))
If rp_3 > 0 Then S_sum_rp# = S_sum_rp# + Float(s_p_rp$(rp_3))
If rp_4 > 0 Then S_sum_rp# = S_sum_rp# + Float(s_p_rp$(rp_4))
If rp_to_TP (tp, rp_1, S_sum_rp#) = 1 Or (tp = 0 And S_sum_rp# <= 330) Then
rp_2_ini = 1
rp_3_ini = 1
rp_4_ini = 1
If rp_2 > 0 And rp_to_rp (rp_1, rp_2, Float(s_p_rp$(rp_2))) = 0 Then rp_2_ini = 0
If rp_3 > 0 And rp_to_rp (rp_1, rp_3, Float(s_p_rp$(rp_3))) = 0 Then rp_3_ini = 0
If rp_4 > 0 And rp_to_rp (rp_1, rp_4, Float(s_p_rp$(rp_4))) = 0 Then rp_4_ini = 0
If rp_2_ini = 1 And rp_3_ini = 1 And rp_4_ini = 1 Then
Return S_sum_rp#
Else
Return 0
EndIf
Else
Return -1
EndIf
Else
Return -1
EndIf
End Function
Function min_dist_ceh_to_ceh#(ceh_1, ceh_2, mode = 0)
; mode = 0 - сумма катетов; 1 - гипотенуза
kol_line_do = 0
kol_line_do_2 = 0
If kol_objects_mode <> kol_objects Then
ceh_1 = obj_st_2_ini(ceh_1)
ceh_2 = obj_st_2_ini(ceh_2)
EndIf
For k = 1 To (ceh_1 - 1)
kol_line_do = kol_line_do + kol_line (k)
Next
For k = 1 To (ceh_2 - 1)
kol_line_do_2 = kol_line_do_2 + kol_line (k)
Next
Dim l_point#(kol_objects + 1, kol_objects + 1, kol_line (ceh_1) + 1, kol_line (ceh_2) + 1)
For k = 1 To kol_line (ceh_1)
For kt = 1 To kol_line (ceh_2)
l_point# (ceh_1, ceh_2, k, kt) = Float(mashtab$) * (Sqr(((x1(kol_line_do + k) - x1(kol_line_do_2 + kt))^2) + ((y1(kol_line_do + k) - y1(kol_line_do_2 + kt))^2)))
If l_point# (ceh_1, ceh_2, k, kt) = 0 Then l_point# (ceh_1, ceh_2, k, kt) = 20
Next
Next
min_dist_c_2_c# = l_point#(ceh_1, ceh_2, 1, 1)
For k = 1 To kol_line (ceh_1)
For kt = 1 To kol_line (ceh_2)
If l_point#(ceh_1, ceh_2, k, kt) < min_dist_c_2_c# Then
min_dist_c_2_c# = l_point#(ceh_1, ceh_2, k, kt)
min_dist_c_2_c_x_1 = x1(kol_line_do + k)
min_dist_c_2_c_y_1 = y1(kol_line_do + k)
min_dist_c_2_c_x_2 = x1(kol_line_do_2 + kt)
min_dist_c_2_c_y_2 = y1(kol_line_do_2 + kt)
ElseIf l_point#(ceh_1, ceh_2, k, kt) = min_dist_c_2_c# Then
min_dist_c_2_c_2# = l_point#(ceh_1, ceh_2, k, kt)
min_dist_c_2_c_x_1_2 = x1(kol_line_do + k)
min_dist_c_2_c_y_1_2 = y1(kol_line_do + k)
min_dist_c_2_c_x_2_2 = x1(kol_line_do_2 + kt)
min_dist_c_2_c_y_2_2 = y1(kol_line_do_2 + kt)
EndIf
Next
Next
If min_dist_c_2_c_2# <> min_dist_c_2_c#
min_dist_c_2_c_x_1_2 = 0
min_dist_c_2_c_y_1_2 = 0
min_dist_c_2_c_x_2_2 = 0
min_dist_c_2_c_y_2_2 = 0
EndIf
;Color 255, 255, 255
;Line min_dist_c_2_c_x_1(ceh_1, ceh_2), min_dist_c_2_c_y_1(ceh_1, ceh_2), min_dist_c_2_c_x_2(ceh_1, ceh_2), min_dist_c_2_c_y_2(ceh_1, ceh_2)
;Line min_dist_c_2_c_x_1_2(ceh_1, ceh_2), min_dist_c_2_c_y_1_2(ceh_1, ceh_2), min_dist_c_2_c_x_2_2(ceh_1, ceh_2), min_dist_c_2_c_y_2_2(ceh_1, ceh_2)
If mode = 1 Then
Return min_dist_c_2_c#
ElseIf mode = 0 Then
If min_dist_c_2_c_x_1 > min_dist_c_2_c_x_2 Then
d_x = min_dist_c_2_c_x_1 - min_dist_c_2_c_x_2
Else
d_x = min_dist_c_2_c_x_2 - min_dist_c_2_c_x_1
EndIf
If min_dist_c_2_c_y_1 > min_dist_c_2_c_y_2 Then
d_y = min_dist_c_2_c_y_1 - min_dist_c_2_c_y_2
Else
d_y = min_dist_c_2_c_y_2 - min_dist_c_2_c_y_1
EndIf
min_dist_c_2_c# = 1.06 * Float(mashtab$) * (d_x + d_y)
If min_dist_c_2_c# = 0 Then min_dist_c_2_c# = 20
Return min_dist_c_2_c#
EndIf
End Function
|
(Offline)
|
|
11.03.2016, 23:26
|
#4
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
If rp_1 > 0 And rp_1 <> rp_1_kz_TP_2_ADD_return (i) And rp_1 <> rp_2_kz_TP_2_ADD_return (i) And rp_1 <> rp_3_kz_TP_2_ADD_return (i) And rp_1 <> rp_4_kz_TP_2_ADD_return (i) And rp_1 <> rp_1_kz_TP_2_ini_return (i) And rp_1 <> rp_2_kz_TP_2_ini_return (i) And rp_1 <> rp_3_kz_TP_2_ini_return (i) And rp_1 <> rp_4_kz_TP_2_ini_return (i) Then rp_1_ini = 0 If rp_2 > 0 And rp_2 <> rp_1_kz_TP_2_ADD_return (i) And rp_2 <> rp_2_kz_TP_2_ADD_return (i) And rp_2 <> rp_3_kz_TP_2_ADD_return (i) And rp_2 <> rp_4_kz_TP_2_ADD_return (i) And rp_2 <> rp_1_kz_TP_2_ini_return (i) And rp_2 <> rp_2_kz_TP_2_ini_return (i) And rp_2 <> rp_3_kz_TP_2_ini_return (i) And rp_2 <> rp_4_kz_TP_2_ini_return (i) Then rp_2_ini = 0 If rp_3 > 0 And rp_3 <> rp_1_kz_TP_2_ADD_return (i) And rp_3 <> rp_2_kz_TP_2_ADD_return (i) And rp_3 <> rp_3_kz_TP_2_ADD_return (i) And rp_3 <> rp_4_kz_TP_2_ADD_return (i) And rp_3 <> rp_1_kz_TP_2_ini_return (i) And rp_3 <> rp_2_kz_TP_2_ini_return (i) And rp_3 <> rp_3_kz_TP_2_ini_return (i) And rp_3 <> rp_4_kz_TP_2_ini_return (i) Then rp_3_ini = 0 If rp_4 > 0 And rp_4 <> rp_1_kz_TP_2_ADD_return (i) And rp_4 <> rp_2_kz_TP_2_ADD_return (i) And rp_4 <> rp_3_kz_TP_2_ADD_return (i) And rp_4 <> rp_4_kz_TP_2_ADD_return (i) And rp_4 <> rp_1_kz_TP_2_ini_return (i) And rp_4 <> rp_2_kz_TP_2_ini_return (i) And rp_4 <> rp_3_kz_TP_2_ini_return (i) And rp_4 <> rp_4_kz_TP_2_ini_return (i) Then rp_4_ini = 0
Капец наркомания....проще будет заново написать наверное, с учетом фишек и финтефлюшек питона.
|
(Offline)
|
|
11.03.2016, 23:28
|
#5
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
Сообщение от DarkInside
Вот один из чертежей, которые генерит программа
|
Чет типо такого просил чувак на Unity написать за 300р
|
(Offline)
|
|
11.03.2016, 23:35
|
#6
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Работа в стартапе
Сообщение от RegIon
Капец наркомания....проще будет заново написать наверное, с учетом фишек и финтефлюшек питона.
|
Да, там есть такие моменты
Чет типо такого просил чувак на Unity написать за 300р
|
Чтоб генерило такие чертежи? тут по-хорошему месяца 3 работы, и то если прижмет и писать по ночам...
Так вот...суть в том, что это единичная программа, которая генерит 9 чертежей и файл ворд на 60 страниц. А сейчас нужно писать программу, которая будет генерить такие программы для автоматического проектирования. То есть гораздо всё сложнее. Я неплохо ориентируюсь во всём этом проектировании, могу расписать логику, как проще сделать и что от чего зависит. Могу даже на блице это всё написать, но в питоне я слаб...
Тут так просто не въехать, это надо часа 1,5, чтобы объяснить, в чем заключается идея и как это должно выглядеть... Можно в мессенджере каком-нибудь или скайпе, если есть интерес...
|
(Offline)
|
|
11.03.2016, 23:46
|
#7
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
Сообщение от DarkInside
Так вот...суть в том, что это единичная программа, которая генерит 9 чертежей и файл ворд на 60 страниц.
|
А зачем такая программа нужна, когда она генерирует однотипные чертежи всегда?
Не проще вручную написать?
А сейчас нужно писать программу, которая будет генерить такие программы для автоматического проектирования. То есть гораздо всё сложнее. Я неплохо ориентируюсь во всём этом проектировании, могу расписать логику, как проще сделать и что от чего зависит. Могу даже на блице это всё написать, но в питоне я слаб...
|
Что-то тут не так. Программа для генерации программы?
Не, так не пойдет. Нужна программа, которая на определенные входные данные выдаст определенный чертеж и документацию.
Иначе вообще геморой.
Что-то для меня все это слишком сложным кажется
Вот блин напасть: то никого, то сразу толпа предложений поработать.
За 3 дня уже 4: - Одногруппник ищет напарника для продаж
- Чувак, который торгует медиавизуализацией, ищет программиста
- Дарксинсйдеру нужен напарник
- С HH.ru написали о наличии вакансии и хотят рассмотреть меня
А у меня дипломная практика и учеба парралельно.
|
(Offline)
|
|
11.03.2016, 23:59
|
#8
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Работа в стартапе
В том то и проблема, что чертежи не однотипные и файлы ворд не однотипные, то есть они постоянно изменяются кардинально. И пришлось бы каждый раз переписывать полностью программу каждые 3 месяца (это слишком долго и трудозатратно). Суть в том, грубо говоря, чтобы создать некий API (с графическим интерфейсом), который позволит без программирования создавать такие программы. То есть "пользователь" открывает пример документации в файле ворд, открывает параллельно нашу программу, выделяет цифровые значения в документации, нажимает кнопочку в программе - эти значения заносятся в базу, далее прописываются все связи этих значений, формулы, условия. Затем то же самое проделывает с чертежами (в большинстве случаев чертежи состоят из повторяющихся блоков, нужно лишь эти блоки занести в базу и назначить, что от чего зависит). Таким образом создается алгоритм проектирования. Далее пользователь использует получившийся алгоритм для автоматизации таких же по типу расчетов.
Ну потому и прибыльно, потому что сложно На самом деле не так уж всё и сложно, просто надо въехать в концепцию, понять смысл...может я слишком сложно объясняю
|
(Offline)
|
|
12.03.2016, 00:07
|
#9
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
Сообщение от DarkInside
В том то и проблема, что чертежи не однотипные и файлы ворд не однотипные, то есть они постоянно изменяются кардинально. И пришлось бы каждый раз переписывать полностью программу каждые 3 месяца (это слишком долго и трудозатратно). Суть в том, грубо говоря, чтобы создать некий API (с графическим интерфейсом), который позволит без программирования создавать такие программы. То есть "пользователь" открывает пример документации в файле ворд, открывает параллельно нашу программу, выделяет цифровые значения в документации, нажимает кнопочку в программе - эти значения заносятся в базу, далее прописываются все связи этих значений, формулы, условия. Затем то же самое проделывает с чертежами (в большинстве случаев чертежи состоят из повторяющихся блоков, нужно лишь эти блоки занести в базу и назначить, что от чего зависит). Таким образом создается алгоритм проектирования. Далее пользователь использует получившийся алгоритм для автоматизации таких же по типу расчетов.
Ну потому и прибыльно, потому что сложно На самом деле не так уж всё и сложно, просто надо въехать в концепцию, понять смысл...может я слишком сложно объясняю
|
Тогда тебе нужно познать ДЗЕН написания техзадания, так какесли ты не один пишешь софт, то это минимально что нужно сделать.
В любом случае, как бы ты не объяснял человеку, который не владеет этой областью, то он не поймет всего что ты имел ввиду, пока сам не столкнется.
Да и с ТЗ тебе будет проще во много раз самому, так как нужно будет разрозненно модули писать, а не все в одной программе, а в голове все не удержишь.
И да, нужно продумать архитектуру такому проекту очень хорошо, что бы не было как у тебя сейчас в коде. А то даже не стырить, так как без грибов каких не разобраться
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.03.2016, 00:17
|
#10
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Работа в стартапе
Сообщение от RegIon
Тогда тебе нужно познать ДЗЕН написания техзадания, так какесли ты не один пишешь софт, то это минимально что нужно сделать.
В любом случае, как бы ты не объяснял человеку, который не владеет этой областью, то он не поймет всего что ты имел ввиду, пока сам не столкнется.
|
Согласен. Самое простое для меня - это формулировать задание следующим образом: нужна функция, у которой на входе такие-то данные, на выходе должны быть такие-то данные. Без объяснения, для чего это надо и как оно будет интегрировано в проект. Грубо говоря, библиотека из функций, которые я мог бы самостоятельно собирать. И без разницы, на чем они, в принципе, написаны. В виде dll или в виде скриптов пайтон. А чтобы понять концепцию, просто нужно знать историю, как эта вся каша заварилась и для чего она нужна, но это слишком личное и так сразу раскрывать не хотелось бы.
И да, нужно продумать архитектуру такому проекту очень хорошо, что бы не было как у тебя сейчас в коде. А то даже не стырить, так как без грибов каких не разобраться
|
Потому и выкладываю спокойно, не боюсь, что стырят тк только я могу разобраться, что там понаписано. Но в этом и не нужно никому больше разбираться. Логику я сам напишу, нужно писать библиотеки. Например, нужна функция, которая добавляет стандартную рамку А1 в готовый чертеж DXF.
|
(Offline)
|
|
12.03.2016, 12:07
|
#11
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Работа в стартапе
https://pypi.python.org/pypi/dxfwrite/
Эту библиотеку используешь?
Гугление вывело на эту штуку, ток она под .Net
https://netdxf.codeplex.com
Обновилась в декабре, а та аж в 2011
|
(Offline)
|
|
12.03.2016, 12:12
|
#12
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Работа в стартапе
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:18.
|