def adbCon(self, tab_place): '''Создает подключение к базе данных MS ACCESS tab_place - полный путь к базе данных или 2 <NGuides.mdb>, 3<M73Main.mdb> index - внутренний индекс соединения ''' try: if str(tab_place).isdigit(): if tab_place in [2, 3]: szSrc = int(tab_place) if tab_place == 2: ind = k3.adbcon(3) sqlstr = """SELECT CorePaths.Path FROM CorePaths WHERE (((CorePaths.Name)='Proto'));""" indrs = k3.adbopen(ind, sqlstr) self.tab_place = k3.adbgetvalue(indrs, 0, '0') indrs = k3.adbclose(indrs) result = k3.adbdiscon(ind) elif tab_place == 3: self.tab_place = k3.mpathexpand('<commonappdata>') + '\\M73Main.mdb' else: szSrc="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+tab_place self.tab_place = tab_place self.index = k3.adbcon(szSrc) except : if (k3.fileexist(str(tab_place))==0): k3.putmsg("База по адресу "+str(tab_place)+" не обнаружена",0) return self.index
def __init__(self): self.tab_place = None # Положение на диске (полный путь к файлу) self.index = None # Индекс соединения self.list_recordset = [] # Список наборов записей self.system_base = {2: 'Proto.mdb', 3: 'App.mdb',} self.app_base_path = k3.mpathexpand('<app>') self.table = [] # Список таблиц в базе
def getListFreeName(self): '''Возвращает список имен слоев, которые нельзя удалять, даже если они свободные. Файл состоит из строк ''' file_name = k3.mpathexpand("<proto>")+"\\freelname.txt" resFFile = int(k3.fileexist(file_name)) # проверяем есть ли файл с результатом res = ['0'] if resFFile==1: # Значит файл найден nStr= int(k3.getcount(file_name)) for i in range(1, nStr+1): s = k3.getstr(file_name,i).strip() if s not in ['', '0']: res.append(s) return res
def _k3files(): '''Возвращает значение системной переменной k3files''' return k3.mpathexpand("<k3files>")
class Mpathexpand(Singleton): PROTOPATH = k3.mpathexpand("<Proto>") PROJECTS = k3.mpathexpand("<PROJECTS>") APPDATA = k3.mpathexpand("<AppData>") REPORTS = k3.mpathexpand("<reports>") K3FILESPATH = k3.mpathexpand("<k3files>")
# # Created: 25.12.2012-07.05.2013 # Copyright: (c) GEOS 2012-13 http://k3info.ru/ # Licence: FREE #------------------------------------------------------------------------------- #!/usr/bin/env python import pickle #import wingdbstub import os, fnmatch, zipfile, base64, datetime, time, k3 from winreg_l import * import subprocess as SubS from SingletonMetaClass import Singleton # Dynalog #------------------------------------------------------------------------------ #ProtoPath = k3.mpathexpand('<proto>') CadDataPath = k3.mpathexpand('<K3Files>') APPDATA = k3.mpathexpand('<appdata>') class Dynalog(Singleton): '''Класс для работы с программами BLUM''' def __init__(self): self.path = None self.version = None self.caddata = [] self.USERPROFILE = None self.rootNameFile = None self.set_files_and_pathes() def __call__(self): self.set_files_and_pathes()
# ------------------------------------------------------------------------------- # Name: addFolderToSysPath # Purpose: Модуль добавляет в SysPAth пути # # Author: Aleksandr Dragunkin # # Created: 08.10.2014 # Copyright: (c) GEOS 2012 http://k3info.ru/ # Licence: FREE # ------------------------------------------------------------------------------- import wingdbstub import k3 import sys import os protopath = k3.mpathexpand("<proto>") + '\\' dvsyspath = [ protopath + a for a in [ 'drawprof', 'dynaplansupport', 'ProjectsUtilites', 'Dbaccess', 'CNC', 'complexlabeldraw', '_OpenCode_\script', 'site-packages', 'site-packages\\win32', 'site-packages\\win32\\lib', 'site-packages\\win32com', 'site-packages\\win32comext',
def __init__(self): self.geti() self.id_order = k3.sysvar(2).split('\\')[-2] self.path_order = k3.mpathexpand("<PROJECTS>")
1, k3.k_text, k3.k_left, "В процессе создания отчета произошла ошибка", "Отчет '{0}' не создан!".format(rep_name), k3.k_done, " OK ", k3.k_done, ) if __name__ == "__main__": import k3 pic_dir = k3.mpathexpand("<Pictures>") cnt_scrap = k3.Var() scrap_rate = k3.Var() margin = k3.Var() block_res = k3.Var() client = k3.Var() joiners = k3.Var() cnt_scrap.value = 50 scrap_rate.value = 2 margin.value = 3.0 block_res.value = False client.value = False joiners.value = False over_percent = 10
def Draw(self, Side="F", PathIn=1, IsOBJDXF=True, LAYERTODXF=False, OBJ_DXF=None): '''Изображение отверстия''' userproperty = Userproperty() cir = k3.Var() list_objs = [] g_upr = k3.GlobalVar('g_upr') gupr = g_upr.value #-- Нормируем вектор направления #self.getNormal() result = False issign = lambda S: 1 if S == 'A' else -1 if self.Side == Side or self.Through == True: holesPath = k3.mpathexpand("<k3files>") + '\Holes\\' nm = holesPath + str(self.Diameter) + ( '_' + str(self.Hohe) if not self.Through else '') + '.k3' cir = k3.circle(self.Xc, self.Yc, 0., k3.k_normal, (0., 0., 1.), self.Diameter / 2.0)[0] ct = cir # ставим особый символ для идентификации отверстий try: if IsOBJDXF: if LAYERTODXF: self.Change(cir, self.set_name_layer_drill()) OBJ_DXF.addCounterHandle(cir) if gupr != 1.0: print(gupr) ct = k3.scale(k3.k_copy, cir, k3.k_done, self.Xc, self.Yc, 0., gupr) else: if gupr != 1.0: print(gupr) k3.scale(k3.k_nocopy, cir, k3.k_done, self.Xc, self.Yc, 0., gupr) if k3.fileexist(nm) > 0: tt = k3.append(nm, self.Xc, self.Yc, 0.) if len(tt) > 0: tt = k3.group(tt) if gupr != 1.0: k3.scale(k3.k_nocopy, tt[0], k3.k_done, self.Xc, self.Yc, 0., gupr) self.objs.append(tt[0]) except: pass result = True self.objs.append(cir) #k3.objident(k3.k_last,1,cir) k3.chprop(k3.k_lwidth, cir, k3.k_done, userproperty.DrawLineS) if self.Through: dss = '' else: dss = "x" + str(self.Hohe) elif self.Side in ['B', 'C', 'D', 'E', 'X']: # Торцевые отверстия #-- Внутренняя линия отверстия chkn = 0 xc1 = self.Xc yc1 = self.Yc xc2, yc2 = self.getEndPointTHole() colcen = 60 lineCen = Central(xc1, yc1, 0, xc2, yc2, 0) #k3.chprop(k3.k_grfcoeff,k3.k_last,1,k3.k_done,1) k3.setucs(xc1, yc1, 0, xc2, yc2, 0, xc2 * 1.5, yc2 * 1.5, 0) recObj = k3.rectangle(k3.k_3points, 0, self.Diameter / 2.0, 0, self.Hohe, self.Diameter / 2.0, 0, 0, -self.Diameter / 2.0)[0] k3.setucs(k3.k_previous) self.objs.extend([lineCen, recObj]) if IsOBJDXF: if LAYERTODXF: self.Change(recObj, self.set_name_layer_drill()) OBJ_DXF.addCounterHandle(recObj) OBJ_DXF.addCounterHandle(lineCen) result = True return result