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

Как тут писать?


Peace‡Keeper

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

Люди добрые, подскажите пожалуйста о макросах ! Я конечно понимаю что было уже разобрано много тем на данную специфику,но почитав их как то я не удовлетворил своего желания или просто пока глуп =(.

Ну вот например. Писать с нуля их я не умею, посему запускаю запись макроса делаю нехитрые действия и смотрю чего и как.Только вот черчю окружность радиусом 20, а в макросе хрень какая-то а не 20, вот "Set SkCircle = Part.SketchManager.CreateCircle(0, 0, 0, 0.02477540983607, 0.02442147540984, 0)".Как быть-то?

И ещё.Видел как-то открывают прогу, на делфи, задают параметры и ОПА запускается солид и строится там балочка по размерам. Как так сделать? Я понимаю что это долго и муторно, может есть у кого ссылочка на сайт или книженцию где нормально-русским языком описан процесс?

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


месяц назад долго искал книгу, так ничего и не нашел. пришлось самому разбираться.

кароче, в меню справка есть help по API. но он на английском. я переводил...

у меня было так: запускаю запись макроса, сохраняю его, потом Инструменты -> Макрос -> Редактировать. открывалась встроенная урезанная версия вижуал студии, там и работал. тогда при компиляции проекта сразу шло выполнение в солиде.

НО: я писал на C#...

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

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

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

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

CreateCircle(0, 0, 0, 0.02477540983607, 0.02442147540984, 0) - здесь первые три нуля это координаты центра, а потом идут координаты точки на окружности.

Для простоты построения лучше пользоваться следующем форматом записи:

CreateCircle(0, 0, 0, 0, 0.02, 0) где 0,02 - это и есть твои 20 мм (0.02м).

Я думаю тебе больше подойдет функция CreateCircleByRadius2.

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

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

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

CreateCircle(0, 0, 0, 0.02477540983607, 0.02442147540984, 0) - здесь первые три нуля это координаты центра, а потом идут координаты точки на окружности.

Для простоты построения лучше пользоваться следующем форматом записи:

CreateCircle(0, 0, 0, 0, 0.02, 0) где 0,02 - это и есть твои 20 мм (0.02м).

Я думаю тебе больше подойдет функция CreateCircleByRadius2.

ИМХО Вы ошибаетесь:

первые три точки(в метрах) - онгозначно координаты центра;

вторые три точки(в метрах) - координаты на линии окружности(любые);

Ни о какой бесконечности тут речи нет.

Функция : Public Function CreateCircle( _

ByVal P1x As Double, _

ByVal P1y As Double, _

ByVal P1z As Double, _

ByVal P2x As Double, _

ByVal P2y As Double, _

ByVal P2z As Double _

to `Peace‡Keeper`

"

Окружность строиттся по 4-м точкам: точки центра(три координаты) и три любые точки на линиии. В результе функуция имеет = 6 параметров.

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

PS. советую пользоваться (иногда) API SW Help от SW 2008--го - лично для меня более понятно.

Вот примеры:

SW 2008:

Syntax (OLE Automation)

Retval = SketchManager.CreateCircle ( XC, YC, ZC, XP, YP, ZP)

Input: (double) XC X coordinate of the circle center point, in meters

Input: (double) YC Y coordinate of the circle center point, in meters

Input: (double) ZC Z coordinate of the circle center point, in meters

Input: (double) XP X coordinate of the point on the circle, in meters

Input: (double) YP Y coordinate of the point on the circle, in meters

Input: (double) ZP Z coordinate of the point on the circle, in meters

Output: (LPSKETCHSEGMENT) Retval Sketch segment for the circle

***

SW 2010:

Visual Basic for Applications (VBA)

Public Function CreateCircle( _

ByVal P1x As Double, _

ByVal P1y As Double, _

ByVal P1z As Double, _

ByVal P2x As Double, _

ByVal P2y As Double, _

ByVal P2z As Double _

) As Boolean

***

ИМХО в API SW Help 2008 - более понятно...

Но надо проверять соответствие, а то можно попасть в переделку ... :-)

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

Благодарю, насчёт отсутствия внятных книжек и как обычно, руля гайда я понял =)) А вот насчёт связи какой-нибудь проги и макросов солида? Я так предполагаю сначала создаётся макрос а прога просто редактирует в нем те или иные параметры?

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

Я так предполагаю сначала создаётся макрос а прога просто редактирует в нем те или иные параметры?

Неверно. Внешняя программа, написанная например на VB, обращается к процессу солида через API-функции и передает в него команды. По своей сути эти команды - те же, что и в макросе.

Всё это так - по-делитантски, за подробной информацией по теме читать apihelp.chm и sldworksapi.chm.

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

Окружность строиттся по 4-м точкам: точки центра(три координаты) и три любые точки на линиии. В результе функуция имеет = 6 параметров.

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

Вывод верный. Программирование в SW нахрапом не взять.

а где его нахрапом-то взять?

ИМХО нигде... тут хоть прикладное, про системное я уж молчу....

Блин всё таки от гайда никуда =) Спасибо,буду учить мат часть

Повторюсь еще раз: лучше изучать API SW 2008. В высших версиях - все всмешали - надо же 4 языка т с ну овчень кратким описанием....
Ссылка на сообщение
Поделиться на других сайтах

а где его нахрапом-то взять?

ИМХО нигде... тут хоть прикладное, про системное я уж молчу....

Если интересно, из своего опыта расположил бы приложения в порядке возрастания сложности изучения программирования на VB6 вот так:

MS Office -> AutoCAD -> Inventor -> CATIA -> SolidWorks -> Pro/Engineer.

Причем, разница между Pro/Engineer и SolidWorks такая же как между SolidWorks и MS Office. Это образно.

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

а где его нахрапом-то взять?

В Автокаде вопрос о сложности программирования снимается через команду бейсика SendCommand. В результате программист просто передаёт в AC те же команды, какие прописывает в командной строке автокада. Это очень просто.
Ссылка на сообщение
Поделиться на других сайтах

ИМХО Вы ошибаетесь:

первые три точки(в метрах) - онгозначно координаты центра;

вторые три точки(в метрах) - координаты на линии окружности(любые);

Ни о какой бесконечности тут речи нет.

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

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0.02, 0#, 0#)

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0#, 0.02, 0#)

и вы получите две одиныковых окружности с центом в начале координат и радиусом 20мм.

так же аналогичные окружности можно построить:

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, X, Y, 0#)

где Х^2+Y^2=R^2, R-требуемый радиус, который в примере равен 20мм.

Тоесть одну и туже окружность можно строить вводя разные входные параметры.

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

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

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0.02, 0#, 0#)

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0#, 0.02, 0#)

и вы получите две одиныковых окружности с центом в начале координат и радиусом 20мм.

так же аналогичные окружности можно построить:

Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, X, Y, 0#)

где Х^2+Y^2=R^2, R-требуемый радиус, который в примере равен 20мм.

Тоесть одну и туже окружность можно строить вводя разные входные параметры.

Ваши примеры напоминают инженерный подход типа: "Два делится на два, четыре делится на два, шесть делится на два, восемь делится на два... Вывод - все числа делятся на два"

Вам же ведь привели описание функции из хелпа.

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

Ваши примеры напоминают инженерный подход типа: "Два делится на два, четыре делится на два, шесть делится на два, восемь делится на два... Вывод - все числа делятся на два"

Вам же ведь привели описание функции из хелпа.

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

Вы тоже считаете что это не правильное описание:

CreateCircle(0, 0, 0, 0.02477540983607, 0.02442147540984, 0) - здесь первые три нуля это координаты центра, а потом идут координаты точки на окружности.

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

Для простоты построения лучше пользоваться следующем форматом записи:

CreateCircle(0, 0, 0, 0, 0.02, 0) где 0,02 - это и есть твои 20 мм (0.02м).

По моему тоже, такой совет может ввести в заблуждение. Как только надо будет построить окружность не в точке (0,0,0), а это часто и бывает, то 0.02 уже не будет радиусом. И говорить о радиусе в этом случае, и есть ошибка. Я когда читал, тоже подумал об ошибке.
Ссылка на сообщение
Поделиться на других сайтах

Если интересно, из своего опыта расположил бы приложения в порядке возрастания сложности изучения программирования на VB6 вот так:

MS Office -> AutoCAD -> Inventor -> CATIA -> SolidWorks -> Pro/Engineer.

Причем, разница между Pro/Engineer и SolidWorks такая же как между SolidWorks и MS Office. Это образно.

А какже различия в объектных моделях данных ПО ?

И почему надо начинать именно м MS Office (в таком порядке-то) ???

Я вот наоборот, сначала освоил API SW, а потом в по другим ПО и совсем в другом порядке, по мере необходимости...

А насчет порядка возрастания сложности изучения программирования на VB6 вот так, перевернул-бы задом-наперед, и поменял бы SW и CATIA.

Неужели API MS Office сложнее API SW или CATIA или Pro/Engineer????

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

По моему тоже, такой совет может ввести в заблуждение. Как только надо будет построить окружность не в точке (0,0,0), а это часто и бывает, то 0.02 уже не будет радиусом. И говорить о радиусе в этом случае, и есть ошибка. Я когда читал, тоже подумал об ошибке.

Прчитайте мой post №5, там ясно написано, что первые три параметра есть ЦЕНТР окуржности.
Ссылка на сообщение
Поделиться на других сайтах

умные люди, а так ругаются.

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

вот меня например волнует вопрос почему например при построении окружности или просто линии нельзя в функции указать параметр 0.001 (1 мм). функция просто не срабатывает... тоесть линия не строится. параметр 0.0011 работает...

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Viktor2004
      А если после прогона выполнить G50 X0 Y0 Z0 G52 X0 Y0 Z0 может в панеле оператора ABS переключить?
    • Snake 60
      @1master Скинь макрос, который используешь, а то версий много... Я подправлю
    • 1master
      Всем привет! А можно ли сделать так, чтобы при вызове макроса MProp (из пакета SWPlus macro) по умолчанию стояла галка "Без массы"? Масса на чертеже редко требуется, надоело уже каждый раз нажимать вручную эту галку.
    • mev13
      Может ведомость упаковки?  Тогда указана форма рекомендуемая в ГОСТ В 20.39.308
    • Greenston
      Привет! По идее, реально. Ведь 800 цикл аналог мазаковского, хоть и выглядит немного по-другому. Но лучше править с фануковского поста, проще. Пример трансформации Мазака: G68.2 X15.1027 Y-26.1587 Z-32.4463 I30.0 J55.0 K-90.0 G53.1
    • Greenston
      с большой долей вероятности надо править постпроцессор. Стойку такую не слыхал даже)
    • Мрачный
      Прям как дети... https://hh.ru/vacancy/95765023 Joymechanix, Москва, Калужская, улица Бутлерова, 17Б от 1 300 до 2 000 $ на руки
    • mactepnew
      Так я конкретно расписал, что мне не понравилось. Вам всерьез нравится панель измерений? Например то, что нужно каждый раз выбирать направление измерения, если выбрана плоская поверхность и точка.  И два меню настроек тоже нравятся?  А, есть же еще третье. Где две команды: И несколько меню свойств объекта - это тоже нормально? Settings, Edit, Edit text и Properties. Хотя у Крео тоже их два... Или то, что в эскизе может быть избыток ограничений, которое NX может поначалу игнорировать, а в какой-то момент сам отменить какие-то из них и сделать из эскиза каля-маля. Крео такого не позволяет. Кнопка Create persistent relations регулярно отключается сама по себе. А как вручную удалить одно из ограничений я так и не понял. NX пишет: click to relax. Кликал всеми семью кнопками со всеми комбинациями Shift, Ctrl и Alt - оно не удаляется.    Да, к Крео у меня тоже были претензии поначалу, но всё равно он раз в 10 быстрее и намного дружественнее. В NX можно перенести размеры из 3D на чертеж?    Простите, если это уже оффтоп, но просто вот эта кривая логика ломает мне мозг.
    • Greenston
      в 2016-2017 версии FC было доступно много постов (потом их убрали). Их можно найти +- тут: \Program Files\Delcam\FeatureCAM 2016\Posts\Mill\5-Axis В том числе и на дмг. Ну без гарантий, канеш
    • Alexey8107
      Да, я написал При этом, после сбоя не помогает возврат в реф. А если задать систему координат заготовки то корректоры на инструмент становятся неверными. Возможно бред, но примерно так и есть. С другими станками такой проблемы нет. А с этим почему то каждый раз.
×
×
  • Создать...