Python и К3

Модераторы: Лабутин Сергей Евгеньевич, Алек(андр

Re: Python и К3

Сообщение Алек(андр » 02 мар 2015 15:05

alter писал(а):Приветствую. Помогите, не получается прочесть Scratch атрибут у объекта. Функция возвращает единицу при выполнении, а переменная пустая.
Код: Выделить всё
import k3
k3.getsnap()
xm = k3.VarArray(100)
NULLOUT=k3.initarray(xm,0)
panel = k3.Var()
k3.objident(k3.k_interact, panel)
Namescr="SumCost"
FT=0
if k3.isassign(Namescr,panel):
  Scratch=k3.readscratch(Namescr, panel)
  k3.putmsg(Scratch)
  err=k3.getscratch(Scratch, "CalcSum", "SumCost", FT, "")
  print(err)
  k3.putmsg(FT)

Какого вида должна быть строка StrAttr условия <Filter> в функции k3.selbyattr(StrAttr,k3.k_prompt,str('object'),k3.k_interact)
Взятые из макросов К3 примеры фильтра: выбора по атрибутам, не работают: "Ошибка при выполнении команды selbyattr"
Как правильно передать строку, например, такого вида:
StrAttr='left(FurnType,1)!=//"0//"&&left(FurnType,1)!=//"1//"&&left(FurnType,1)!=//"8//"&&Furntype!=//"310000//'


FT это переменная К3 значит k3.Var()
ваш вариант FT=0 ошибочный
Код: Выделить всё
FT=k3.Var()
FT.value=0
err=k3.getscratch(Scratch, "CalcSum", "SumCost", FT, "")
print('FT= ',FT.value)


вот так скорее всего надо

А это StrAttr='left(FurnType,1)!=//"0//"&&left(FurnType,1)!=//"1//"&&left(FurnType,1)!=//"8//"&&Furntype!=//"310000//
Кажись слеши наоборот стоят.
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение alter » 02 мар 2015 15:57

Благодарю, Александр.
FT это переменная К3 значит k3.Var()

Потихоньку начинаю въезжать. Может кому пригодится пример обращения к функции npgetbywhere:
xm=k3.VarArray(10, "ArrID")
NULLOUT=k3.initarray(xm,0)
err=k3.npgetbywhere(1, "строка условия", "ArrID", 0)
ID=xm[0].value

Кажись слеши наоборот стоят.

Антислеши пробовал - не помогает.
Не пойму формат строки.
Такой запрос работает StrAttr='IsAssign("FurnType")',
а такой нет StrAttr='FurnType==010000'.
alter
 
Сообщения: 36
Зарегистрирован: 10 окт 2012 10:47

Re: Python и К3

Сообщение Алек(андр » 02 мар 2015 16:23

alter писал(а):Благодарю, Александр.
FT это переменная К3 значит k3.Var()

Потихоньку начинаю въезжать. Может кому пригодится пример обращения к функции npgetbywhere:
xm=k3.VarArray(10, "ArrID")
NULLOUT=k3.initarray(xm,0)
err=k3.npgetbywhere(1, "строка условия", "ArrID", 0)
ID=xm[0].value

Кажись слеши наоборот стоят.

Антислеши пробовал - не помогает.
Не пойму формат строки.
Такой запрос работает StrAttr='IsAssign("FurnType")',
а такой нет StrAttr='FurnType==010000'.

NULLOUT=k3.initarray(xm,0) <- это не обязательно! нули там по умолчанию появляются вот если например 1 заполнить или чемто кроме 0

npgetbywhere - что нет в описании?! Примеры есть в PROTO

....а такой нет StrAttr='FurnType==010000'
и не будет Furntype строковый атрибут поэтому надо сравнивать со строкой в к3 в макросе мы вынуждены использовать экранирующие символы \ что бы получить строку из кавычки "\""
значит StrAttr="FurnType==\"010000\""
вот такой вариант StrAttr="FurnType=="010000"" приведет к ошибке синтаксиса
Дело в том , что в макроязыке нам для определения строки предоставлен только символ " -кавычки.
В питоне таких символов 3 апостроф ' . кавычки " и тройной апостроф '''

Поэтому в случае с питоном можно по разному, но можно и с экранирующим символом \

Код: Выделить всё
n = k3.selbyattr("Left(FurnType,2)==\"01\"||Left(FurnType,2)==\"04\"||Left(FurnType,2)==\"80\"||Left(FurnType,2)==\"23\"", k3.k_wholly, k3.k_all, k3.k_done)


Код: Выделить всё
k3.selbyattr ( 'FurnType==\"010000\"', 
k3.k_prompt, "Укажите панели",  k3.k_partly, k3.k_interact,)
nselect=k3.sysvar(61)

такой вариант тоже работает
Код: Выделить всё
k3.selbyattr ( 'FurnType=="010000"', 
k3.k_prompt, "Укажите панели",  k3.k_partly, k3.k_interact)


Ваш вариант тоже сработал
Код: Выделить всё
StrAttr='left(FurnType,1)!="0"&&left(FurnType,1)!="1"&&left(FurnType,1)!="8"&&Furntype!="310000"'
k3.selbyattr (StrAttr , 
k3.k_prompt, "Укажите панели",  k3.k_partly, k3.k_interact)
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение bonduran » 05 мар 2015 15:28

Подскажите пожалуйста, как в питоне записать 3D аналог ловушки - символ ^. Например выбрать объект по точке ^0 0 0.
Юрий С. Интен-центр
bonduran
 
Сообщения: 64
Зарегистрирован: 14 фев 2013 15:23

Re: Python и К3

Сообщение Алек(андр » 05 мар 2015 15:55

bonduran писал(а):Подскажите пожалуйста, как в питоне записать 3D аналог ловушки - символ ^. Например выбрать объект по точке ^0 0 0.

Никак
В питоне никак.
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Алек(андр » 13 мар 2015 10:38

PEP 8 - руководство по написанию кода на Python

http://pythonworld.ru/osnovy/pep-8-ruko ... ython.html
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Moroz » 12 май 2015 16:19

Как устанавливать в К3шный питон дополнительные библиотеки? Что и где нужно прописать кроме вставки библиотеки в proto?
Пытаюсь установить PyQt библиотеку!
Аватара пользователя
Moroz
 
Сообщения: 33
Зарегистрирован: 23 сен 2014 14:17

Re: Python и К3

Сообщение Алек(андр » 12 май 2015 17:08

Moroz писал(а):Как устанавливать в К3шный питон дополнительные библиотеки? Что и где нужно прописать кроме вставки библиотеки в proto?
Пытаюсь установить PyQt библиотеку!

Что такое К3шный питон :) ?

Это Геос просто расширил слегонца возможности штатного 3-го питона внедрив свою библиотеку k3.pyd для работы с командами к3.
Python остался питоном с Гвидо ван Россум у основания.

Надо расширить sys.path
Как и везде вообщем то.

Код: Выделить всё
import k3
import sys

protopath=k3.mpathexpand("<proto>")+'\\'

dvsyspath=[protopath+a for a in ['drawprof','dynaplansupport', 'ProjectsUtilites']]

for tpath in dvsyspath:
    if tpath not in sys.path:
        sys.path.insert(0, tpath)


Это как один из вариантов.
Другой вариант- просто дописать нужные пути в PYTHONPATH в переменных окружения WINDOWS.


А вы собственно зачем в PyQt лезете?
Обратитесь к Ручью он там в PyQt тоже что то нарыть пытается.
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Moroz » 13 май 2015 10:33

Лезу потому что в наличии имеется книжка http://img.boffo.ru/img/p/2/2/3/2/8/9/1/0/22328910.jpg/ и еще у него есть qtdesigner который позволяет строить окошки перетаскиванием элементов как C# Develop.
Ну а так до этого я работал с tkinter.
Аватара пользователя
Moroz
 
Сообщения: 33
Зарегистрирован: 23 сен 2014 14:17

Re: Python и К3

Сообщение Алек(андр » 13 май 2015 10:42

Moroz писал(а):Лезу потому что в наличии имеется книжка http://img.boffo.ru/img/p/2/2/3/2/8/9/1/0/22328910.jpg/ и еще у него есть qtdesigner который позволяет строить окошки перетаскиванием элементов как C# Develop.
Ну а так до этого я работал с tkinter.

Ссылка не открывется.
Если не затруднит заведите тему и пишите о своих достижениях в интеграции PyQT или PySide. Интересно поучавствовать. У самого руки и мозг не дошли довести до ума этот вопрос по использованию pyQt в интерфейсе пользовательских задач.
А что в Ткинтер понаделали? Скрины выложите. может видео...
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Moroz » 13 май 2015 10:50

В tkinter сделал программу “ Каталог дополнительных товаров и услуг ” которая позволяет вести собственную базу товаров и услуг, и добавлять их в дополнительную базу (собственную) проекта К3 без необходимости их прописывания в номенклатуре К3. http://clip2net.com/s/3hASz9q http://clip2net.com/s/3hASVzU
После чего эти товары попадают в отчеты. Которые тоже полностью свои.

На счет PyQt у меня почему то выходит сообщение об ошибке "cannot import name "QtGui", получается что библиотеку он вроде видит а его элементы нет чтоль?

protopath=k3.mpathexpand("<proto>")+'\\'
dvsyspath=[protopath+a for a in ['PyQt4']]
for tpath in dvsyspath:
if tpath not in sys.path:
sys.path.insert(0, tpath)
from PyQt4 import QtGui

ERROR "Error return without exeption set"

Что я не так делаю? Папку с библиотекой я скопировал из C:\Python33\ , а туда устанавливалась через инсталлятор? Может быть не достаточно просто скопировать библиотеку в прото?
Аватара пользователя
Moroz
 
Сообщения: 33
Зарегистрирован: 23 сен 2014 14:17

Re: Python и К3

Сообщение Алек(андр » 13 май 2015 11:12

Moroz писал(а):В tkinter сделал программу “ Каталог дополнительных товаров и услуг ” которая позволяет вести собственную базу товаров и услуг, и добавлять их в дополнительную базу (собственную) проекта К3 без необходимости их прописывания в номенклатуре К3. http://clip2net.com/s/3hASz9q http://clip2net.com/s/3hASVzU
После чего эти товары попадают в отчеты. Которые тоже полностью свои.

На счет PyQt у меня почему то выходит сообщение об ошибке "cannot import name "QtGui", получается что библиотеку он вроде видит а его элементы нет чтоль?

protopath=k3.mpathexpand("<proto>")+'\\'
dvsyspath=[protopath+a for a in ['PyQt4']]
for tpath in dvsyspath:
if tpath not in sys.path:
sys.path.insert(0, tpath)
from PyQt4 import QtGui

ERROR "Error return without exeption set"

Что я не так делаю? Папку с библиотекой я скопировал из C:\Python33\ , а туда устанавливалась через инсталлятор? Может быть не достаточно просто скопировать библиотеку в прото?


Во истину не знаешь что творишь!!!
Конечно недостаточно! И зачем было копировать. дай ссылку статически на питонью куда ставил.
При вызове из питона какого нибудь примера выведи в консоль

Код: Выделить всё
import sys
print(sys.path)


посмотри список системных путей, сравни со своими

На счет Ткинтера...

Симпатишно сделал.. Вот http://page.sourceforge.net/html/interface.html Gui для ткинер
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Moroz » 13 май 2015 13:11

Спасибо, модуль вроде подключился но появилась новая критическая ошибка при попытке запуска окна на pyqt и к3 вылетает сразу http://clip2net.com/s/3hBtmMK! :( :(
Аватара пользователя
Moroz
 
Сообщения: 33
Зарегистрирован: 23 сен 2014 14:17

Re: Python и К3

Сообщение Алек(андр » 13 май 2015 13:46

Moroz писал(а):Спасибо, модуль вроде подключился но появилась новая критическая ошибка при попытке запуска окна на pyqt и к3 вылетает сразу http://clip2net.com/s/3hBtmMK! :( :(


Скорее всего просит Win32api

Вообщем я в свое время также поковырялся и как представил, что это все мне потом у клиентов расшаривать с их 7-ками 8-ками ХРшками и всяким палевом с вирусняком. И сказал себе:"И зачем мне это надо?!... "

p/s/ только вот не надо таких же выводов делать!
Возможно я не прав! Все таки -> "... PyQt4 это тулкит для разработки GUI приложений. Он представляет из себя смесь языка программирование Пайтон (Питон) и библиотеки Qt. Qt – одна из наиболее мощных библиотек на этой планете. Если не самая мощная....

Она содержит более 300 классов и почти 6000 функций и методов. Это мультиплатформенный тулкит. Он работает на всех основных операционных системах, включая Unix, Windows и MacOS.
Начиная с версии PyQt4 GPL доступна для всех поддерживаемых платформ.

Так как тулкит содержит большое количество классов, они распределены в несколько модулей."

Правда возникает вопрос, а зачем такая мощь? Да еще кроссплатформенная? Что бы написать маленькую формочку для вывода сообщеница или заполнения пары полей? Да еще для К3, которая работат только под Windows?

Похоже из пушки по воробьям! Но все же, а почему бы и нет?! Если там все так красиво и удобно!

Так что дерзайте!
Аватара пользователя
Алек(андр
 
Сообщения: 1165
Зарегистрирован: 17 ноя 2008 10:16
Откуда: Московская область

Re: Python и К3

Сообщение Moroz » 13 май 2015 17:03

Это больше для собственного развития и для завтрашнего дня, чем для решения сегодняшних задач!

win32api говорите? У меня окно работает если запустить с командной строки винды, не работает только если с к3 запустить!
Аватара пользователя
Moroz
 
Сообщения: 33
Зарегистрирован: 23 сен 2014 14:17

Пред.След.

Вернуться в К3-Мебель. Программа для производства и продажи мебели.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron