Jump to content

Recommended Posts

streamdown

 API - это то, что открыли для использования разработчики. Если у вас есть метод SaveAs, то он сработает на всех версиях SW начиная с той с которой его ввели. Если у вас есть метод SaveAs3, то даже применив рефлексию с dynamic, вы его не запустите на SW 2003, так как его физически нет в библиотеках SW. Так же, даже если этот метод где-то у разработчиков и зарыт внутри их библиотек, вы тоже не сможете его запустить пока они не "откроют" вам его через API, так работает программирование и так работают экспортируемые функции.

Если же вы попробуете подключить к проекту библиотеки от SW 2022, а SaveAs3 выполнить под запущенным SW2009, то код просто свалится в этом месте, так как он не найдёт этого метода в библиотеках разработчика. Будет что-то вроде NO_INTERFACE

Link to post
Share on other sites


v-david

Какое-то странное обсуждение, все говорят об одном и том же: приладить новое в старому можно, но нет гарантии, что все будет работать. Как можно утверждать утверждать обратное, если даже на уровне microsoft вносятся глобальные изменения в основные понятия? Вот, например, зачем потребовалось менять имя окна процесса "Microsoft Excel" на просто "Excel"? О какой преемственности "библиотек" может идти речь в данном случае? 

Link to post
Share on other sites
Kelny
1 час назад, v-david сказал:

Вот, например, зачем потребовалось менять имя окна процесса "Microsoft Excel" на просто "Excel"?

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

 

1 час назад, v-david сказал:

О какой преемственности "библиотек" может идти речь в данном случае? 

О приемственности может идит речь, когда программа понимает старый код без изменнений на новой версии.

А вот жизнь меняется постоянно, поэтому постоянно требует движения и изменений, что бы не отставать от настоящего, так что всегда надо что-то подправлять, настраивать, ведь всего каких-то несколько лет наза требовалось оптимизировать программу в память размером в 1-2Мбайта, скоростью процессора в несколько тиков в секунду и хранить всё это на жёстком диске в десятки Мегабайт, а сейчас практически неограниченные ресурсы позволяющие програмистам филонить и создавать огромных монстров не заботясь о сохранении ресурсов. Что уж говорить о 8, 16, 32 бытных системых, которые уже по большому счёту для ПК ушли в прошлое и глядишь не загорами системы X128 или вовсе X1024...

Link to post
Share on other sites
v-david

ну закройте с "парадного входа" все висящие процессы Excel и заодно свое эксельку, не зацепив другие открытые в этом же окне

Link to post
Share on other sites
brigval
30.05.2022 в 08:09, v-david сказал:

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

 

Инженера устраивает любое решение, приводящее к положительному результату. )

Link to post
Share on other sites
Kelny
1 час назад, v-david сказал:

ну закройте с "парадного входа" все висящие процессы Excel и заодно свое эксельку, не зацепив другие открытые в этом же окне

Это вопрос или предложение?

Link to post
Share on other sites
v-david

Не вопрос и не предложение. Столкнулся с этим, когда надо было поработать с окнами процессов в Windows, поднимать, скрывать, перемещать по экранам причем не только "свое" окно, но и ранее открытые. Не скажу, что это очень сложно, но и не пара строк. Не знаю, что вы имеете ввиду под "парадным входом", но что-то этот процесс мало напоминает его, скорее это backdoor в прямом и переносном смысле..

Link to post
Share on other sites
streamdown
2 часа назад, v-david сказал:

поднимать, скрывать, перемещать

Всё это WinAPI + всякие running object table. 

Это никак не соотносится с тем, о чём я писал про SW API.

В SW API помеченные obsolete всё равно работают на последних версиях.

Link to post
Share on other sites
Kelny
3 часа назад, v-david сказал:

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

Попробуйте пробиться до функционала программы без API и сравните с тем что предоставляет API.

Аналогично без WinAPI потребовалось бы на много больше строк, что бы сделать хоть что-нибудь.

 

3 часа назад, v-david сказал:

Столкнулся с этим, когда надо было поработать с окнами процессов в Windows, поднимать, скрывать, перемещать по экранам причем не только "свое" окно, но и ранее открытые.

Говоирить о некой абстрактной задаче как минимум не конструктивно.

Ведь возможно надо было просто выбрать иной подход для решения задачи, а из-за неоптимального решения, как раз и пришлось использовать WinAPI, а не встроенный API приложения. Так же возможно стоило сообщить разработчикам софта о недостающих функциях и тогда возможно в будущем не пришлось идит в обход и можно было бы всё седать через API программы.

Link to post
Share on other sites
  • 1 month later...
Vladimiir

Добрый день, может кто-нибудь подсказать как изменить размер в эскизе в макросе, на C#.

Link to post
Share on other sites
brigval
12.07.2022 в 14:31, Vladimiir сказал:

Добрый день, может кто-нибудь подсказать как изменить размер в эскизе в макросе, на C#.

 

В макросе VBA? Наверное, никак.

 

А для C# есть хелп.

 

 

api_help.JPG

Link to post
Share on other sites
  • 2 weeks later...
Vladimiir
14.07.2022 в 18:44, brigval сказал:

 

В макросе VBA? Наверное, никак.

 

А для C# есть хелп.

 

 

api_help.JPG

Про справку знаю, но не могу в ней ничего найти, как только не искал.

Link to post
Share on other sites
Kelny
8 часов назад, Vladimiir сказал:

Про справку знаю, но не могу в ней ничего найти, как только не искал.

Так для начала определитесь что и где меняете.

А искать надо по английски:

https://help.solidworks.com/2010/english/api/sldworksapi/change_dimension_example_vb.htm

 

Link to post
Share on other sites
brigval
26.07.2022 в 23:57, Kelny сказал:

Так для начала определитесь что и где меняете.

А искать надо по английски:

https://help.solidworks.com/2010/english/api/sldworksapi/change_dimension_example_vb.htm

 

для C# во встроенном хелпе тоже есть

 

Скрытый текст

dim.JPG

 

Link to post
Share on other sites
nicomed

День добрый.

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Ну и до кучи, как в WeldSymbol задать другой стиль стрелки выноски ?

Link to post
Share on other sites
brigval
57 минут назад, nicomed сказал:

День добрый.

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Ну и до кучи, как в WeldSymbol задать другой стиль стрелки выноски ?

У меня не получилось.

Использую символ сварки для склейки и пайки.

Группирую символ сварки с заметкой, что было красиво, и программно текст (номер пункта ТТ) правлю в заметке.

 

Скрытый текст

ппп.JPG

 

Link to post
Share on other sites
streamdown
12.07.2022 в 14:31, Vladimiir сказал:

как изменить размер

Первое, чему стоит научиться, это записывать макросы. Это, конечно, местами бредовая простая штука делает и показывает очевидные вещи. И не надо даже в справке долго искать.

Link to post
Share on other sites
  • 2 weeks later...
Kelny
04.08.2022 в 16:27, nicomed сказал:

Подскажите, есть ли возможность  средствами SW API в WeldSymbol добраться,  (т.е. задать новые значения) до текстовых полей, извлекаемых по методам WeldSymbol.GetTextAtIndex( int index )  (поля из обозначения сварки при установленном стандарте ГОСТ)?

Для символа по ГОСТ доступ к полям не доступен через API. Можно попробовать поковырять через WinAPI.

 

04.08.2022 в 17:40, brigval сказал:

Использую символ сварки для склейки и пайки.

Группирую символ сварки с заметкой, что было красиво, и программно текст (номер пункта ТТ) правлю в заметке.

Если речь об установках электронных компонентов, то там возможно проще блоки использовать, а в блоках на ставится элемент сварка/пайка/наклеивание и соответственно приходится использовать заметку и простой эскиз для значков.

 

Как вариант к заметке дорисовывать эскизы (как бы внутри элемента заметки - API это позволяет), но не уверен что можно будет нарисовать эскиз привязанный к направлению линии выноски. Возможно для контроля выноски и положения значка можно втиснуть в файл встроенный макрос, который будет следить за выноской и перерисовывать значок. Из минусов этого метода, что доступ к эскизам заметки только средствами API, но проблем с отображением на других машинах, где нет макроса, вроде быть не должно (ну только что без макроса редактировать/обновлять эскизы в таких заметках не получиться).

 

04.08.2022 в 23:07, streamdown сказал:

Первое, чему стоит научиться, это записывать макросы.

В Solidworks часто в записи бывает мало полезного. А вот уже готовые похожие примеры в справке по API попадаются.

Link to post
Share on other sites
  • 3 weeks later...
OlgaKubrik

Добрый день!

Помогите, пожалуйста, с макросом.

 

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

 

Но потом я запустила макрос для детали, у которой нет глобальных переменных и получила имя dxf с глобальными переменными с прошлого запуска!

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

 

Наверное, можно что-то дописать, чтобы reset автоматически происходил? Я пробовала по-разному, закрывать файлы, открывать заново, не влияет на макрос. 

Даже не понимаю, какой вопрос задать товарищу Гуглу?:worthy:

Link to post
Share on other sites
Kelny
32 минуты назад, OlgaKubrik сказал:

Наверное, можно что-то дописать, чтобы reset автоматически происходил?

Присвойте переменной отвечающей за глобальные переменные в начале макроса NullString или "":

ВашаПеременная = NullString

 

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

 

Edited by Kelny
  • Нравится 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • fantom.ul
    • GS
      === А некоторые себе и такого не могут позволить! ===  
    • Saad_Winner
      Ну до этого сохранялось через сохранить как и в 1 файл. может кто-то сталкивался и может подсказать в чем дело. И зачем эти трудности эли можно делать нормально. 
    • Krusnik
      А сделать кучу файлов и потом сшить всё в один общий не судьба?
    • Saad_Winner
      Пробовал и 1 файл (просто пустой лист) ноль на массу.    Поставил все галочки ничего не всплывает.   OneClickPDF - выводит не удалось сохранить и закрывает файл. SaveAsPDF - крашит макрос и открывает эго редактор. Save Drawing As PDF - ничего не делает.  Антивирус отключил тоже ничего. Права навряд ли, с предыдущей версией в этих папках работал и норма было, и поставил галочку запуска солида с правами админа. Нужно попробовать. Просто я сохранял через него, но он разбивал на разные файлы (мне бы хотелось что бы все было в 1 пдф).
    • GS
    • ANT0N1DZE
      да это обмазка запеклась по идее...
    • BSV1
      Довести мясо до состояния угля ...    
    • Saad_Winner
      Ну сборка, спецификация и чертежи на все изделия. Что пипец? так гораздо удобней чем иметь кучу файлов.
    • Станислав733
      Здравствуйте, можно и мне мануал    german.stanislaw2018@yandex.ru
×
×
  • Create New...