Перейти к публикации

Помогите разобраться с API


Рекомендованные сообщения

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

Позвольте встрять - насколько знаю, позиция это не свойство, а именно позиция детали в дереве сборки....

А вообще тема интересная и если у _Lion_a получится - ДС вздрогнет....

Ссылка на сообщение
Поделиться на других сайтах


ssv22

Shvg

...

В вашем же случае, поскольку спецификация у вас генерится в вордовский файл, то, как я понимаю, ничего вышеперичисленного нет.

И все завязано на ваш софт, без которого, в случае изменений в свойствах отдельных деталей или узлов, никаких автообновлений не происходит.

...

Вот здесь Вы меня не так поняли: генерация "в вордовский файл" - это своего рода лишь отчет(распечатка), с этим файлом, конечно никакой связи нет! В случае изменений я просто обновляю свою "таблицу соответствий" и опять вывожу в Word и печатаю.

Вот здесь наши с Shvg пути и разошлись - он генерирует СП в документе чертежа SW. Мне, в то время, почему-то больше понравилось вывод делать в Word. Ну это не катастрофа, все исправимо: можно объединить эти методы и параметризированную СП генерировать в документе чертежа SW и предусмотреть возможность вывода в Word/Excel.

Хотя в случае нашего с Shvg подхода фраза: "генерировать СП в документе чертежа", неверна - у нас происходит только вывод информации,

а СП, вернее вся инфо, генерируется в сборке(модели)!

А то, что завязано на софт, это да, есть такое, а как же иначе?

У Вас разве ничего не завязано на Ваш софт?

Если бы не было такой "завязки", не стоило-бы и делать что-то на API SW, а это, в свою очередь, означало-бы, что все наши идеи уже реализованы и ни какого улучшения не требуют!

И мы бы с Вами остались без работы :smile:

PS. последнее время все думаю как объединить/совместить наши с Shvg подходы с Вашими...

Ссылка на сообщение
Поделиться на других сайтах

Позвольте встрять - насколько знаю, позиция это не свойство, а именно позиция детали в дереве сборки....

Тут речь идет о номере позиции на сборочном чертеже.

А позиция детали в дереве сборки - величина переменная... И вообще, кто и где ее использует? :blink:

А вообще тема интересная и если у _Lion_a получится - ДС вздрогнет....

А если у нас получится - кто вздрогнет? :smile:

Ссылка на сообщение
Поделиться на других сайтах

Вот здесь Вы меня не так поняли: генерация "в вордовский файл" - это своего рода лишь отчет(распечатка), с этим файлом, конечно никакой связи нет! В случае изменений я просто обновляю свою "таблицу соответствий" и опять вывожу в Word и печатаю.

Почему же, я так и понял. И меня это как раз и не устраивает. При таком подходе с учетом человеческого фактора неизбежно будут возникать несоответствия СБ и спецификации.

У меня есть NewToler Shvg. К сожалению пока у меня установлен 2005 мне не посмотреть его подробно. Но это дело поправимое. Там, видимо, в шаблонах основной надписи спецификации есть ссылки на свойства сборки. Но нет связи с позициями и со свойствами деталей. Вообще масштаб работы поражает.

Ваша разработка, как я понимаю, это SWTools SCA, что лежит на Погрузке. К, сожалению, пока тоже толком не смотрел.

У Вас разве ничего не завязано на Ваш софт?

Я старался все делать с использованием свойств и родных объектов СВ. Поэтому все это спокойно редактируется и без макросов.

И мы бы с Вами остались без работы

Ну, как раз работе можно было бы уделять все свое внимание. А не отвлекаться на изготовление инструментов. :smile:

PS. последнее время все думаю как объединить/совместить наши с Shvg подходы с Вашими...

Да у мнея пока одни разговоры. Вот будет некое законченное решение, как у вас, тогда можно совмещать :smile:
Ссылка на сообщение
Поделиться на других сайтах

Почему же, я так и понял. И меня

это как раз и не устраивает. При таком подходе с учетом человеческого фактора неизбежно будут возникать несоответствия СБ и спецификации.

У меня есть NewToler Shvg. К сожалению пока у меня установлен 2005 мне не посмотреть его подробно. Но это дело поправимое. Там, видимо, в шаблонах основной надписи спецификации есть ссылки на свойства сборки. Но нет связи с позициями и со свойствами деталей. Вообще масштаб работы поражает.

Ваша разработка, как я понимаю, это SWTools SCA, что лежит на Погрузке. К, сожалению, пока тоже толком не смотрел.

Я старался все делать с использованием свойств и родных объектов СВ. Поэтому все это спокойно редактируется и без макросов.

Ну, как раз работе можно было бы уделять все свое внимание. А не отвлекаться на изготовление инструментов. :smile:

Да у мнея пока одни разговоры. Вот будет некое законченное решение, как у вас, тогда можно совмещать :smile:

Лично у меня "При таком подходе" никаких несоответствий не возникало, ну может раз в год...

И нет у меня законченного решения! Это все пробы. Проработка идей.

Но, вообще-то, разговор не о том зашел: куда выводить СП - в чертеж SW или Word.

При желании можно связь и с Word`oм осуществить: зачитать обратно СП, сравнить с изменениями, но я посчитал это излишним.

Вы хотите, чтобы это делалось автоматически? Тут тоже проблем не вижу.

Но зачем? У меня есть же "таблица соответствий". Это, так сказать "образ" СП, "ядро". Там все заложено: наименование, обозначение, кол-во и тп.

И все это формируется на этапе сканирования 3D-сборки: например, если компонент - подсборка, он заносится в группу "Сборочные единицы" и т.д.

Как я писал выше, для меня обновить "таблицу соответствий" и вывести СП в Word - дело нескольких минут(1-2).

Меня вот совершенно не устраивает принцип, заложенный в SW : делать СП в чертеже. Ну никак не могу согласиться с такой идеологией!

Когда в начале работы еще с SW99 я так делал, неизбезно возникали проблемы: то компонент нужно переименовать, то его обозначение, то потребуется его подредактировать, удалить, добавить новый и т.п.

Как это все сделать по Вашей схеме? Постоянно переключаться между чертежом и сборкой и деталями - меня это не устраивает.

У меня есть мое окно, в котором я могу выбрать компонент, открыть его, закрыть, переименовать компонент или группу компонентов и тп.

Я уже повторяюсь, наверное...

Т.е. мое понятие "создателя СП" гораздо шире, чем имеющееся в SW.

И создавать СП по такой схеме можно почти одновременно с работой над проектом, не отвлекаясь на чертежи.

Вы не подумайте, что я уцепился за свою идею и защищаю ее всеми способами. Я просто высказываю свои мысли, на основании которых выбрал

такой метод. Причем эти мысли возникли не на пустом месте - жизнь заставляет.

PS. на "погрузке" еще кое-что мое есть:

<noindex>http://www.pogruzka.com/julio/swprog/multi...lerance/faq.php</noindex>

<noindex>http://www.pogruzka.com/julio/swprog/multi...wtools2/faq.php</noindex>

<noindex>http://www.pogruzka.com/julio/swprog/assem...oolssca/faq.php</noindex> - это "SWTools SCA"

<noindex>http://www.pogruzka.com/julio/swprog/sw_win/prevsw/faq.php</noindex> - это не совсем мое - некобольшая модификация известного макроса.

Вообще-то все это старье. Было начато еще при работе в SW99.

Так, кое-что иногда подправляю...

А обновлять на сайте забываю :-(

Времени катастрофически не хватает!

Ссылка на сообщение
Поделиться на других сайтах

Тут речь идет о номере позиции на сборочном чертеже.

А позиция детали в дереве сборки - величина переменная... И вообще, кто и где ее использует? :blink:

Об это и речь - на мой взгляд "номер позиции на сборочном чертеже" напрямую зависит от позиции детали в дереве сборки, и эта же позиция отображается, при простановке позиций, в сборке (меняя положение детали в сборке, меняем её № позиции на СБ) - или нет???

А если у нас получится - кто вздрогнет? :smile:

Если получится хоть у одного - вздрогут ВСЕ (за Ваше здоровье)!!! :drinks_drunk::rolleyes:
Ссылка на сообщение
Поделиться на других сайтах

Об это и речь - на мой взгляд "номер позиции на сборочном чертеже" напрямую зависит от позиции детали в дереве сборки, и эта же позиция отображается, при простановке позиций, в сборке (меняя положение детали в сборке, меняем её № позиции на СБ) - или нет???

Если получится хоть у одного - вздрогут ВСЕ (за Ваше здоровье)!!! :drinks_drunk::rolleyes:

Какая-то путаница в терминах:

что такое "позиции детали в дереве сборки" ? Я считаю это положение компонента в дереве построений 3D-сборки.

Но это же величина не постоянная. Компоненты по дереву можно перемещать, группировать в отдельную папку и тд.

Как можно на этом вычислить номер позиции на сб. чертеже?

Ссылка на сообщение
Поделиться на других сайтах

ssv22

А где хранится ваша "таблица соотвествий"?

На самом деле, от того куда выводить спецификацию сам редактор действительно не зависит. Главное это подготовка того, что будем выводить. И поэтому развитие редактора в сторону СВЕксплорера возможно при любом подходе. В моем случае создавать спецификацию можно тоже, прямо из сборки, открывая чертеж в фоновом режиме.

Ссылка на сообщение
Поделиться на других сайтах

ssv22

А где хранится ваша "таблица соотвествий"?

На самом деле, от того куда выводить спецификацию сам редактор действительно не зависит. Главное это подготовка того, что будем выводить. И поэтому развитие редактора в сторону СВЕксплорера возможно при любом подходе.

...

В обычном текстовом файле, с разделителями, запись(строка) сформирована определенным образом:

"имя компонента в дереве сборки" $$ "имя компонента в СП" $$ "обозначение для СП" $$ "номер позиции" $$ "полный путь к файлу" $$ кол-во $$формат чертежа.

Причем, "имя компонента в дереве сборки" + "имя конфигурации компонента" дает уникальный идентификатор ну тд. Долго все это описывать.

Это первый вариант начинал году в 1999-2000.

Где-то год назад начал переделывать, чтобы все это хранилось с таблице Excel.

А перед этим была мысль сохранять эти данные в свойствах файлов SW (без их открытия). Т.е. похоже на Ваш подход, вроде.

Но потом, что-то заглохо у меня это дело (как записать/изменить св-во модели в файлt SW без его открытия), и решил все данные

записывать в Excel.

Почему в Excel?

Посетила меня как-то мысль: создать представление сборки в виде блок-схемы древовидной структуры с картинками(миниатюрами) входящих.

И чтобы стрелочками были показаны связи, что куда входит. И еще было-бы неплохо перетаскиванием этих миниатюр менять структуру СП.

Т.е. получается что-то типа "Visual СП creator"! Вот и название готово, осталось всего-ничего: начать да кончить :-)

По-идее, это "Visio" хорошо делает, но я его плохо знаю, поэтому решил делать в Excel`e.

Сразу скажу: эта мысль не моя фантазия, а начальник как-то попросил сделать ему такое представление - долго я тогда возился, все вручную...

Вот я и подумал: что если начальник захочет иметь такое-же представление на другую сборку, что мне опять вкалывать?

Я и задумался над этим вопросом. Ну и получается, что это просто один из возможных вариантов отображения СП.

Слава богу, начальник забыл про это дело.

Но у меня-то мысль засела...

...

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

Вот-вот, последнюю неделю частенько именно об этом и задумываюсь...
Ссылка на сообщение
Поделиться на других сайтах

Но потом, что-то заглохо у меня это дело (как записать/изменить св-во модели в файлt SW без его открытия)

Да, до вкладок Настройки и Конфигурации без открытия файла вроде не добраться. Но ведь открывать в автоматическом режиме не так уж и долго. Потом не все же файлы можно открывать, а только те, свойства которых были изменены.

Когда будут первые результаты обязательно выложу. Вот недавно сделал большое дело, свел в таблицу и откоментировал все свойства, которые используются в моих макросах. А то уже сам начал путаться. Задуманный комплекс программ будет включать в себя Редактор свойсв моделей, Мастер создания основных надписей, Редактор свойств чертежа, Макрос создающий из чертежа pdf и генератор отчетов, в том числе и спецификаций. Стараюсь сделать все так, чтобы свести к минимумум возможность ошибки. Все данные должны вводится только однократно и потом дублироваться и обновляться автоматически. Кроме того макросы должны следить за соотвествием вводимых данных (главным образом Обозначений и наименований файлов) стандарту предприятия.

Ссылка на сообщение
Поделиться на других сайтах

Да, до вкладок Настройки и Конфигурации без открытия файла вроде не добраться.

...

Вот для сведения:

Как-то скачал такой проектик на VB :

Name: dsofile.zip

URL: <noindex>http://www.solidworks.com/downloads/API/Do...077/dsofile.zip</noindex>

Size: 33887

Create time: 06.07.2008 13:07:00

Complete time: 06.07.2008 13:07:04

Referer: <noindex>http://files.solidworks.com/API/Examples/0...077/Example.htm</noindex>

Description:

How to access custom properties without having SolidWorks installed

т.е. позволяет добавлять и удалять св-ва файла SW без самого SW!

Но не изменять! Но если проект есть - можно подправить.Там есть exe-шник, если не будет запускаться, нужно выполнить регистрацию dll:

" REGSVR32.EXE dsofile.dll "

(в коммандной строке)

Ну и естественно, если файл открыт в SW, то эта прога не сработает - доступ к файлу будет запрещен!

Эти св-ва можно просматривать (и изменять) стандартными методами Windows или в Total Commander`e (по правой кнопке).

Может пригодится...

Ссылка на сообщение
Поделиться на других сайтах

ssv22

Спасибо, посмотрел. Что-то подобное я видел давно, однако до свойств вкладки Коннфигурации все равно не добраться.

Ссылка на сообщение
Поделиться на других сайтах

ssv22

...

однако до свойств вкладки Коннфигурации все равно не добраться.

Вот здесь поподробнее :

что ты имеешь ввиду? Какую конкретно операцию/действие?

PS. ничего что на "ты" перешел?

Ссылка на сообщение
Поделиться на других сайтах

Эти св-ва можно просматривать (и изменять) стандартными методами Windows или в Total Commander`e (по правой кнопке).

Изменять можно начиная с SW2007 (в SW2006 не знаю), в предыдущих версиях были проблемы с этим. При изменении свойств файла, если имелись параметры и значения на русском языке, все эти значения и параметры превращались в абракадабру.

Так же есть в SW2007 такая вещь: SolidWorks Document Manager API на сколько я смог понять позволяющая получить прямой доступ к файлу, правда по условиям соглашения оно предлагается использовать разработчику на свой страх и риск:

4. “AS-IS” WARRANTY & DISCLAIMERS

a. “AS-IS” Warranty. SolidWorks provides the Software to you AS IS and without a warranty of any kind. . SolidWorks and its licensors do not warrant the performance or results you may obtain by using the Software, that the Software will meet your requirements or that the operation of the Software will be uninterrupted or error free. If you submit data to a SolidWorks hosted internet site, SolidWorks will not be responsible for restoring data deleted by you.

b. Limitations on Warranties. The express warranty set forth in this Article 4 is the only warranty given by SolidWorks with respect to the Software furnished hereunder; SolidWorks and its licensors, including without limitation Adobe, make no other warranties, express, implied or arising by custom or trade usage, and specifically disclaim the warranties of merchantability and fitness for a particular purpose.

c. Limitations on Liability. The Software has been provided to you at no charge. In no event shall SolidWorks or its licensors be liable for special, indirect, incidental or consequential damages (including without limitation damages resulting from loss of use, loss of data, loss of profits or loss of business) arising out of or in connection with the use of or inability to use the Software furnished hereunder, even if SolidWorks or its licensors have been advised of the possibility of such damages.

и требует получения ключа для данного компонента у Solidworks, как написано в справочной системе по API-Solidworks:

The SolidWorks Document Manager API requires a license key. SolidWorks API Support manages the licensing for the SolidWorks Document Manager API. Contact apisupport[at]solidworks.com for details.

IMPORTANT: Do not share this license key with anyone outside your company or distribute it with any software that you ship.

You must specify the license key when instantiating a SolidWorks Document Manager API connection. See Application Basics for details.

Ссылка на сообщение
Поделиться на других сайтах

Да, до вкладок Настройки и Конфигурации без открытия файла вроде не добраться

Можно, правда используя доступ через SolidWorks Document Manager API. Правда, там требуют лицензию. Но получается нормально. Я в своих экспериментах, прекрасно изменял свойства файла именно в закладках Настройка и Конфигурация. так же переименовывал файл с обновлением всех связей, как это делается в SW Explorer. Кстати эта же dll-ка (SwDocumentMgr.dll) им и используется.

У меня есть NewToler Shvg. К сожалению пока у меня установлен 2005 мне не посмотреть его подробно. Но это дело поправимое. Там, видимо, в шаблонах основной надписи спецификации есть ссылки на свойства сборки.

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

Об это и речь - на мой взгляд "номер позиции на сборочном чертеже" напрямую зависит от позиции детали в дереве сборки, и эта же позиция отображается, при простановке позиций, в сборке (меняя положение детали в сборке, меняем её № позиции на СБ) - или нет???

Это если в свойствах Balloon стоит Item number. Да и дергать компоненты в дереве сборке на нужную позицию, на мой взгляд не есть хорошо. Я придерживаюсь взгляда, что перетаскивать компоненты нужно по другим признакам. У меня это стандартые изделия (создается папка Standart и весь крепеж, допустим, кидается туда), по функциональному назначению ( пружины, пуансоны, выталкиватели, вставки и т.д и т.п), когда много блокированых компонентов, то , соответсвенно создается папка <Блокированые>, ну и т.д

Вы не подумайте, что я уцепился за свою идею и защищаю ее всеми способами

И обо мне тоже. В ходе некоторых дискуссий, мои взгляды сильно изменились.
Ссылка на сообщение
Поделиться на других сайтах

Изменять можно начиная с SW2007 (в SW2006 не знаю), в предыдущих версиях были проблемы с этим. При изменении свойств файла, если имелись параметры и значения на русском языке, все эти значения и параметры превращались в абракадабру.

Вообще-то, у меня иная цель была - возможность из своей программы изменять св-ва файла SW, не открывая его!

А то что, стандартными стредствами Windows это можно делать, меня мало волнует. Так, просмотреть может иногда...

...

Так же есть в SW2007 такая вещь: SolidWorks Document Manager API на сколько я смог понять позволяющая получить прямой доступ к файлу, правда по условиям соглашения оно предлагается использовать разработчику на свой страх и риск: и требует получения ключа для данного компонента у Solidworks, как написано в справочной системе по API-Solidworks:

А на счет "SolidWorks Document Manager API" - надо мне его посмотреть... забыл, однако :-)
Ссылка на сообщение
Поделиться на других сайтах

ssv22

Вот здесь поподробнее :

что ты имеешь ввиду? Какую конкретно операцию/действие?

Так любые действия. В той програмке что ты :smile: выложил свойств со вкладки Конфигурации не видно. Не видно их и через Винду/Тотал коммандер. Видно только свойства вкладки Настройки и Суммарная информация.

Так же есть в SW2007 такая вещь: SolidWorks Document Manager API

Можно, правда используя доступ через SolidWorks Document Manager API.

Я этого не знал. Ну тогда все замечательно... Правда пока мне это не требовалось, но если будет нужно, теперь знаю где искать и кого спрашивать :smile:
Ссылка на сообщение
Поделиться на других сайтах

Правда пока мне это не требовалось..

Мне пока тоже, только эксперименты, но есть определенные планы на будущее по той же спецификации....
Ссылка на сообщение
Поделиться на других сайтах

А я здесь ничего и не менял. Так и осталось: Плита_CN_Default, например. Очень сильно помогает. Вопрос только в подсчете количества.

Пример из последней моей работы. В сборке 22 одной и той же пружины, но с четырьмя разными рабочими высотами (10 конфигураций).

...

Так как, решил эту проблему? А то у меня мысли появились как это сделать.
Ссылка на сообщение
Поделиться на других сайтах

Мне не нужно было знать(искать) окна деталей или сборок. Работая с деталью(сборкой), я всегда мог активизировать(скрыть) необходимое мне окно.

В СВ есть функция по определению хендела окна, но я ей не пользовался ибо не нужна была.

в OpenGL я создавал нормали для поскости деталей. Рисовал линии, простые геметрические фигуры.

для этого необходимо в проекте прописать все события. Это делал Визард СВ. Может я чего то и дописывал, но уже не помню.

Все рисовал в функции OnBufferSwap. Она вызывается событием

SINK_ENTRY_EX(ID_MODELVIEW_EVENTS, __uuidof(DModelViewEvents), swViewBufferSwapNotify, OnBufferSwap)
В другом месте рисование в OpenGL не отображается.

для перерисовки использовал

SINK_ENTRY_EX(ID_MODELVIEW_EVENTS, __uuidof(DModelViewEvents), swViewRepaintNotify, OnRepaint)

Это необходимо

// check to make sure that the model is in shaded mode

hr = modelView->GetDisplayState(swIsViewShaded, &bShaded);

Это часть кода

void CDocView::CreateNormal()

{

	GLUquadricObj *quadObj;

	quadObj = gluNewQuadric();



	gluQuadricDrawStyle(quadObj, GLU_FILL);

	gluQuadricNormals(quadObj, GLU_SMOOTH);



	 glClear(GL_DEPTH_BUFFER_BIT); 



	glEnable(GL_BLEND);

	glBlendFunc(GL_SRC_COLOR, GL_SRC_ALPHA);



	AutoColor	Color(0,1,0);

	AutoCull	Matrix;



	GLfloat	glXform[16] = {0};

	glGetFloatv( GL_MODELVIEW_MATRIX, glXform);

	

	double normal[3] = {0};

	Get_FaceNormal(normal);



	if(offset < MaxOffset || offset == 0)

	{

		glPushMatrix();//целиндр

			glTranslated(APoint[0], APoint[1], APoint[2]);

			glRotated(-angle, vectorAxis[0], vectorAxis[1], vectorAxis[2]);



			double sc = 0;

			modelView->get_Scale2(&sc);



			gluCylinder( quadObj, 0.00082/sc, 0.00082/sc, 0.00482/sc, 20, 20);

			gluDisk( quadObj, 0, 0.00082/sc, 20, 20);

		glPopMatrix();



		glPushMatrix();//конус

			glTranslated(APoint[0], APoint[1], APoint[2]);

			glRotated(-angle, vectorAxis[0], vectorAxis[1], vectorAxis[2]);

			glTranslated(0, 0, 0.00482/sc);

			gluDisk( quadObj, 0.00082/sc, 0.0023/sc, 20, 20);

			gluCylinder( quadObj, 0.0023/sc, (GLdouble)0.0, 0.0044/sc, 20, 20);

		glPopMatrix();

	}

	

	gluDeleteQuadric(quadObj);



	glDisable(GL_BLEND);

}
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...