コード例 #1
0
 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
コード例 #2
0
 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 = [] # Список таблиц в базе
コード例 #3
0
 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
コード例 #4
0
def _k3files():
    '''Возвращает значение системной переменной k3files'''
    return k3.mpathexpand("<k3files>")
コード例 #5
0
class Mpathexpand(Singleton):
    PROTOPATH = k3.mpathexpand("<Proto>")
    PROJECTS = k3.mpathexpand("<PROJECTS>")
    APPDATA = k3.mpathexpand("<AppData>")
    REPORTS = k3.mpathexpand("<reports>")
    K3FILESPATH = k3.mpathexpand("<k3files>")
コード例 #6
0
#
# 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()
コード例 #7
0
# -------------------------------------------------------------------------------
# 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',
コード例 #8
0
 def __init__(self):
     self.geti()
     self.id_order = k3.sysvar(2).split('\\')[-2]
     self.path_order = k3.mpathexpand("<PROJECTS>")
コード例 #9
0
            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
コード例 #10
0
    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