Обозначение ценра отверсий

Автор injener, 04.04.16, 23:01:07

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

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

dimak222

Уже думал как сделать (время надо и не уверен нужно ли это кому-то):

1. Сортируем диаметры отв. по возрастанию/убыванию (опция).
2. Из списка удаляем отв. если их количество меньше чем "n" (опция).
3. Ставим "n-й" знак для отв. из списка пока не будет другое значение размера отв., для другого размера "n-й + 1",
4. Доходим max до 10-го знака (по количеству усл. знаков в библиотеке).
5. Если не дошли до 10 - всё ок, если дошли выдать сообщение "Закончились усл. знаки"

dimak222

Цитата: FR347 от 23.11.22, 11:41:55Как понял знак не привязывается к отверстию.

Да, там в настройках, в пояснении, написано "Опция не работает!"=)

Пробовал совпадением центров окружностей, дуг, эллипсов и точек (ksConstraintTypeEnum) - не работает.

Сейчас сделано совпадением двух точек (т.к. вручную так работает), в макросе прописано, но оно всё равно не срабатывает...

IgorT

Цитата: dimak222 от 23.11.22, 11:35:48...
А это можно и сейчас сделать (Рис. 3)
То есть для простановки нужного вида знак отверстия надо каждый раз править конфигурацию?
......

dimak222

Цитата: IgorT от 23.11.22, 11:56:50То есть для простановки нужного вида знак отверстия надо каждый раз править конфигурацию?

Угу. Всё было сделано для точек, а потом (в одной теме был разговор про УЗ) добавил УЗ, но они не полноценно работают...

dimak222

Цитата: IgorT от 23.11.22, 11:56:50Что-то я перезабыл как вставлять знаки врукопашную.

=))) (Рис. 1 и Рис. 2)
+ Благодарностей: 1

Михаил88

Цитата: dimak222 от 23.11.22, 11:44:345. Если не дошли до 10 - всё ок, если дошли выдать сообщение "Закончились усл. знаки"
можно же свои знаки добавить в библиотеку

dimak222

Цитата: Михаил88 от 23.11.22, 12:04:14можно же свои знаки добавить в библиотеку

В макросе есть список УЗ (Conditional_sign_list_name), его нужно будет пополнить. Название (путь к УЗ) и их количество берётся с этого списка.

IgorT

А можно сделать макрос, который использовал бы свои знаки отверстий. Так что они были параметрическими и был выбор знака не посредством правки файла, а посредством выбора в меню?

vasurnik

появились обозначения центров, но только после запуска Run Module (Простановка обозначений центров, точек и условных знаков v0.6.1.2):

dimak222

Цитата: IgorT от 23.11.22, 12:12:07свои знаки отверстий
В теории сделать свой фрагмент и вставлять его, но это пробовать надо. Ещё не факт что он не будет таким же (т.к. в библиотеке это тоже фрагмент (если нажать редактировать источник)).

Цитата: IgorT от 23.11.22, 12:12:07а посредством выбора в меню?
Да, можно.

dimak222

Цитата: vasurnik от 23.11.22, 12:26:30но только после запуска Run Module
По идее должно и так запачкаться...

Я не работал в Prthon 2.X, но похоже что там надо добавлять "u" перед строками, пример:
FileName = iLibsFiles + u"\Shapes_and_signs.kle|" + Conditional_sign_name + u".frw" # имя файла фрагмента (имя файла библиотеки|разделы, подразделы внутри библиотеки|имя фрагмента)

Вират Лакх

Чтобы второй питон работал с третьим без u, нужно в начале поставить:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
+ Благодарностей: 2

FR347

А центра отверстий можно сделать выступающими за окружность?

dimak222

Цитата: FR347 от 23.11.22, 14:12:59А центра отверстий можно сделать выступающими за окружность?
Типа такого (Рис. 1)?

Михаил88

Так можно задавать размер условного знака вставленного из библиотеки фигур и условных знаков.

# -*- coding: utf-8 -*-
import pythoncom
from win32com.client import Dispatch, gencache

#  Получи константы
kompas6_constants = gencache.EnsureModule("{75C9F5D0-B5B8-4526-8681-9903C567D2ED}", 0, 1, 0).constants
#  Подключим описание интерфейсов 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))

kompas_document = application.ActiveDocument
kompas_document_2d = kompas_api7_module.IKompasDocument2D(kompas_document)
kompas_document_2d_1 = kompas_api7_module.IKompasDocument2D1(kompas_document_2d)

iInsertionsManager = kompas_api7_module.IInsertionsManager(kompas_document)

iViewsAndLayersManager = kompas_document_2d.ViewsAndLayersManager
iViews = iViewsAndLayersManager.Views
view = iViews.ActiveView
iDrawingContainer = kompas_api7_module.IDrawingContainer(view)
insertionObjects = iDrawingContainer.InsertionObjects
'''
# ksTUnknown -1 Неизвестный
# ksTBodyFragment 0 Вставка внешнего фрагмента. Взять в документ
# ksTReferenceFragment 1 Вставка внешнего фрагмента. Внешней ссылкой
# ksTLocalFragment 3 Вставка локального фрагмента
# ksTBodyView 4 Вставка вида другого чертежа. Взять в документ
# ksTReferenceView 5 Вставка вида другого чертежа. Внешней ссылкой
'''
iInsertionDefinition = iInsertionsManager.AddDefinition(kompas6_constants.ksTBodyFragment, 'Условный знак 1_1',
                                                        r'C:\Program Files\ASCON\KOMPAS-3D '
                                                        r'v18\Libs\Shapes_and_signs.kle|Условный знак 1_1.frw')
iInsertionObject = insertionObjects.Add(iInsertionDefinition)
iInsertionObject.SetPlacement(300, 200.0, 0.0, False)
insertionDefinition = iInsertionObject.InsertionDefinition
insertionDefinition.FileName = r'C:\Program Files\ASCON\KOMPAS-3D v18\Libs\Shapes_and_signs.kle|Условный знак 1_1.frw'
iInsertionFragment = kompas_api7_module.IInsertionFragment(iInsertionObject)

ivariable7 = iInsertionFragment.Variable('D')
name = ivariable7.Name
ivariable7.Value = 148
iInsertionObject.Update()
kompas_document_2d_1.RebuildDocument()
изображение_2022-11-23_175335345.png

FR347

Цитата: dimak222 от 23.11.22, 15:48:09Типа такого (Рис. 1)?

Да только, что бы поменьше выступало. Ну как стандартный центр Компаса

dimak222

Цитата: Михаил88 от 23.11.22, 15:50:55Так можно задавать размер условного знака вставленного из библиотеки фигур и условных знаков.
Хз, как так, но у меня не работает=/ (Рис. 1)
Я доходил до ivariable7, но у меня ничего...

dimak222

Цитата: FR347 от 23.11.22, 16:10:26Да только, что бы поменьше выступало. Ну как стандартный центр Компаса

Могу сделать опцией, сейчас у меня и так стандартная длина 5 мм.

Михаил88

Цитата: dimak222 от 23.11.22, 16:20:14Хз, как так, но у меня не работает=/ (Рис. 1)
Я доходил до ivariable7, но у меня ничего...
а что тут может не получаться? Я вам скинул полный код. Вы его запустите и все получится.

dimak222

Цитата: Михаил88 от 23.11.22, 16:24:19а что тут может не получаться? Я вам скинул полный код. Вы его запустите и все получится.
Я запустил, и приложил картинку, создался УЗ положение 300 на 200 размером 10. Ваш макрос не правил (должно быть 148)