Генератор спецификаций

Автор pr0100, 18.05.18, 17:02:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

pr0100

Это все совсем ни то.
Как только дойдёт дело до изменений, начинаются проблемы. И проще изменить одну строку. Чем все строки полученные из ос

ТрындецЪ

18.05.18, 17:20:07 #1 Последнее редактирование: 18.05.18, 17:44:42 от ТрындецЪ
Предлагаю в этой теме обсудить и попробовать "всем миром" создать прикладную библиотеку (утилиту, макрос, программу, называйте как угодно), которая будет создавать спецификацию удовлетворяющую потребностям пользователей.
+ Благодарностей: 4

СВ

 Сначала всем миром прикинуть техзадание?

Да, техзадание прикиньте - мы в работе тоже учтём  :-)))
+ Благодарностей: 1

СВ

18.05.18, 19:44:20 #4 Последнее редактирование: 18.05.18, 20:00:10 от СВ
  Первое,  что сходу приходит: "настоящая" спецификация (о которой В.В.Никонов отзовётся, думаю, так -  :)))))) должна интегрироваться во все продукты Аскона (про Лоцман упоминалось, про остальное не знаю конкретно). "Наша" же, живущая только совместно с чертежами, может быть примитивной автоматически-ручной: автоматически передавать информацию с моделей и позволять вносить вручную всё, что захочешь.
Главный залог успеха - не делать того, что сделали программисты одной всем известной компании.
"Наша" - сверх интуитивно понятная, осваивается даже без Справки.
Ручная работа - почти как в таблице: заходишь в ячейку и пишешь всё что хочешь; но ежели есть что-то, что можно просто "механизировать", сделать это обязательно; например (как ранее упоминал), если есть чертёж, то Обозначение и Наименование должно переноситься из штампа в СП "одним кликом".
Возможно, есть резон ориентироваться на всем известный Excel - в самых подходящих и незаумненных его подходах.
В таком вот духе, в таком разрезе...


pr0100

18.05.18, 22:04:12 #6 Последнее редактирование: 18.05.18, 22:53:28 от pr0100
Хотел за основу взять файл спецификации редуктора, который лежит в сэмле компаса v18. Я думал там файл спецификации создан по идеологии компаса, то есть со всеми строками. Да не тут то было. Сама спецификация привязана к чертежу. И количество деталей и крепежа указано вручную. Как будто ее вручную перенабивали. И чертеж разрушен.

Вот набросал код на python 3, который проходит по активной спецификации и получает строки. Дальше нужно взять выполнить сложение, удаление и запись заново.


# -*- coding: utf-8 -*-
#|Получить данные спецификации


import pythoncom
import win32com.client
from win32com.client import Dispatch, gencache
import LDefin2D
import MiscellaneousHelpers as MH
#  Подключим константы API Компас
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
kompas6_constants_3d = gencache.EnsureModule("{2CAF168C-7961-4B90-9DA2-701419BEEFE3}", 0, 1, 0).constants
#  Подключим описание интерфейсов API5
kompas6_api5_module = gencache.EnsureModule("{0422828C-F174-495E-AC5D-D31014DBBE87}", 0, 1, 0)
kompas_object = kompas6_api5_module.KompasObject(Dispatch("Kompas.Application.5")._oleobj_.QueryInterface(kompas6_api5_module.KompasObject.CLSID, pythoncom.IID_IDispatch))
MH.iKompasObject  = kompas_object


#  Подключим описание интерфейсов API7
kompas_api7_module = gencache.EnsureModule("{69AC2981-37C0-4379-84FD-5DD2F3C0A520}", 0, 1, 0)
application = kompas_api7_module.IApplication(Dispatch("Kompas.Application.7")._oleobj_.QueryInterface(kompas_api7_module.IApplication.CLSID, pythoncom.IID_IDispatch))
MH.iApplication  = application




Documents = application.Documents
#  Получим активный документ
kompas_document = application.ActiveDocument
kompas_document_spc = kompas_api7_module.ISpecificationDocument(kompas_document)
iDocumentSpc = kompas_object.SpcActiveDocument()
#kompas6_api5_module.Iterator# Интерфейс ksIterator
iIter=kompas_object.GetIterator() # Получить интерфейс итератора
iIter.ksCreateSpcIterator (0, 0, 0) #Создать итератор по объектам спецификации
#iIter.reference
obj = iIter.ksMoveIterator("F") # чтение первой строки
#Цикл для чтения строки
#обозначение, наименование, количество
for i in range(999): # Здесь в цикл нужно что то задать, чтобы узнать какие строки заполнены.
    obj = iIter.ksMoveIterator("N") # новигация
    iSpc = iDocumentSpc.GetSpecification()
    #obj = iSpc.ksGetCurrentSpcObject() #Получаем текущий выделенный объект
    формат = iSpc.ksGetSpcObjectColumnText (obj, 1,  1, 0)
    обозначение = iSpc.ksGetSpcObjectColumnText (obj, 4,  1, 0)
    наименование = iSpc.ksGetSpcObjectColumnText (obj, 5,  1, 0)
    количество = iSpc.ksGetSpcObjectColumnText (obj, 6,  1, 0)
    примечание = iSpc.ksGetSpcObjectColumnText (obj, 7,  1, 0)
    print (обозначение, наименование, количество)

    if обозначение=='' and наименование==''  and количество=='':
        break
+ Благодарностей: 1

Дим

Цитата: СВ от 18.05.18, 17:44:35
Сначала всем миром прикинуть техзадание?
Ну а что тут прикидывать?

1. никаких ОС!
2. никаких ОС в сборке и детали!
3. в свойствах деталей/сборок только их свойства - Обозначения, Наименование, Материал, Масса, Примечание.
4. ОБЯЗАТЕЛЬНО!!!! добавить возможность вставлять ссылки на размеры(габариты) деталей, прямо из 3Д модели - в ячейки наименование и примечание, для адекватного создания деталей БЧ... Ну и соответственно, чтобы эти ссылки на размеры ВСЕГДА перестраивались, при изменении размеров деталей!!!!!!!!!!!!
5. обозначение, наименование - брать из свойства детали/сборки.
6. расстановка позиций! - всегда при расстановке поз. при клике на дет./сборку автоматически привязывать поз. к спецификации.  БЕЗ ТАНЦЕВ С БУБНОМ!.
7. Автоматическая расстановка поз. - ставить поз. ни куда придется, а в максимально видимый центр (мах площадь) детали/сборки...


Надеюсь понятно расписал))
Это основное!

IgorT

Цитата: Дим от 19.05.18, 18:14:05
...

1. никаких ОС!
2. никаких ОС в сборке и детали!
3. в свойствах деталей/сборок только их свойства - Обозначения, Наименование, Материал, Масса, Примечание.
4. ОБЯЗАТЕЛЬНО!!!! добавить возможность вставлять ссылки на размеры(габариты) деталей, прямо из 3Д модели - в ячейки наименование и примечание, для адекватного создания деталей БЧ... Ну и соответственно, чтобы эти ссылки на размеры ВСЕГДА перестраивались, при изменении размеров деталей!!!!!!!!!!!!
5. обозначение, наименование - брать из свойства детали/сборки.
6. расстановка позиций! - всегда при расстановке поз. при клике на дет./сборку автоматически привязывать поз. к спецификации.  ...
7. Автоматическая расстановка поз. - ставить поз. ни куда придется, а в максимально видимый центр (мах площадь) детали/сборки...
...
Ну да. Как-то так.

Только может быть в п.3 добавить "Раздел спецификации"?

Огорчает, что по всей видимости не получится добиться отслеживания знаком позиции изменения положения и/или геометрии компонента сборки в чертеже.
ТрындецЪ уже сказал о проблемах при отслеживании изменений сборки... А хотелось бы, что бы СП работала в реальном времени как Cпеция от Leona в SW.

Не плохо бы видеть на чертеже для каких компонентов проставлены знаки позиций, дабы не приходилось отслеживать их в рукопашную.

Для Авторасстановки имхо желательно иметь возможность редактировать, какие позиции желаем проставить на выбранном виде. То есть проставлять/убирать в окне команды Авторасстановки галки управления видимостью позиций. Да и что бы позиции рисовались с  учетом ЛСК .вида.

Ещё редактировать "Наименование" и "Обозначение" детали непосредственно из редактор СП, прописывая их в свойства компонента сборки..
Естественно, что бы при наличии чертежа компонента в СП приезжал его формат. Ну и зона знак позиции, как это сейчас сделано.

ТрындецЪ!  Как дела с фантомом позиции? Получится?


VLaD-Sh

Цитата: IgorT от 19.05.18, 20:42:13
Огорчает, что по всей видимости не получится добиться отслеживания знаком позиции изменения положения и/или геометрии компонента сборки в чертеже.
Извините, но четно не понимаю чем вы хотите донести ?  8-)
О каком отслеживании идет речь?

Если деталь + позиция (из 3D в чертеж), то в Компасе V17 это реализовано и работает корректно    :)

VLaD-Sh

Цитата: IgorT от 19.05.18, 20:42:13
Не плохо бы видеть на чертеже для каких компонентов проставлены знаки позиций, дабы не приходилось отслеживать их в рукопашную.
В старых версия это работало. Но V17 почему-то (страно) не могу добиться  8-)
Надо будет глянуть в V18

VLaD-Sh

Цитата: IgorT от 19.05.18, 20:42:13
Для Авторасстановки имхо желательно иметь возможность редактировать, какие позиции желаем проставить на выбранном виде..
А о кой версии идет речь? О старых ? Если да ,то зачем?

Никто наверно старые версии править не будет, если это в V17 (и V18 надеемся) - реализовано :o:

Дим

Цитата: IgorT от 19.05.18, 20:42:13
Ну да. Как-то так.

Не плохо бы видеть на чертеже для каких компонентов проставлены знаки позиций, дабы не приходилось отслеживать их в рукопашную.

И кстати! Я бы добавил еще и обратную связь..

8. Организовать видимость из СП -  что строки с деталями/сборками, имеют привязки к расставленным поз. на чертеже. т.е. каким то образом ставить "виртуальную" метку в строку СП, о том что на данную деталь/сборку, в чертеже имеет поз. Возможно так же, чтоб привязанная поз. подсвечивалась цветом в СП.

Это намного упростит поиск деталей/сборок, на которые еще не проставлены поз.

СВ

20.05.18, 12:56:37 #13 Последнее редактирование: 20.05.18, 13:16:05 от СВ
Цитата: ТрындецЪ от 18.05.18, 17:20:07
Предлагаю ... создать прикладную библиотеку (утилиту, макрос, программу, называйте как угодно), которая будет создавать спецификацию...
Может быть спросим у автора, что именно он лично может и что предполагает получить от других в плане создания чего там именно. Если собственную спецификацию - это одно, если макрос, т.е. набор правильных действий, гарантированно дающих на выходе безглючную Компасовскую спецификацию - это другое.


СВ

 Ну, если Вам точно известно, о чём идёт речь - просветите.

Я, так, понимаю, реализация от СВ или ?

СВ

 Знаете, не понимаю, Борис Николаевич,  Ваш мутный поток сознания.
Давайте как-нибудь..., да что там, Вы же здесь не причём, разговор идёт между  Трындецом и его "гостями".  Вопрос к Вам снимается, естественно.
- - - - - -
Вопрос кТрындецу, если не понятно, обусловлен тем, что он не сказал о сути работы: "спецификация,  удовлетворяющуя потребностям пользователей" - это  предлагаемая им новая разработка или как бы доработка Компасовской - как понимают это некоторые откликнувшиеся товарищи.


СВ

 Борис Николаевич, Вы, часом, не имеете отношения к Компасовской спецификации? Уж больно агрессивны Вы в теме, при этом ничего, из того что попросил Трындец, не предлагаете. Может быть, предложение Трындеца для Вас как бы детский лепет? А может быть, Вы, как настоящий мужчина (как, например, делал Никита Шаньгин в передаче "Что? Где? Когда?") возьмёте да и выложите в конце супер решение?