eksodus

Макросы в Power Mill

271 сообщение в этой теме

Доброго времени суток !

 

Хочу улучшить макрос, добавив режимы сверления.

Чтобы макрос, например, делал проверку примерно так:

активировать траекторию, потом - если D сверла 3,6-4,5  - то V=xxx1, F=yyy1

если D сверла 4,6-5,5  - то V=xxx2, F=yyy2 и тд

 

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

Поделиться сообщением


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


16 часов назад, eksodus сказал:

Хочу улучшить макрос, добавив режимы сверления.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, arsenev сказал:

Не знаю, возможно ли такое, но как вариант.

конечно возможно

но ! макрос тогда не будет универсальным - свёрла то у всех по разному называются

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 05.02.2018 в 21:53, eksodus сказал:

Хочу улучшить макрос, добавив режимы сверления.

Показать содержимое 
FOREACH t IN folder ('toolpath') {

ENTITY CurrentTP = t
STRING $ToolpathName = $CurrentTP.Name

IF t.Tool.Type == 'drill' {

ACTIVATE TOOLPATH $ToolpathName

If Tool.diameter >= 4 AND Tool.diameter <= 6 {

EDIT RPM "1500"
EDIT FRATE "50"
EDIT PRATE "50"
RESET TOOLPATH FEEDRATE

}
}


}

 

Hide  
1 пользователю понравилось это

Поделиться сообщением


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

@Konstantin_VP  - спасибо большое !

Поделиться сообщением


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

Я бы сделал так.

Показать содержимое  
FUNCTION GETVFVALUES(REAL DIA, OUTPUT REAL VVAL, OUTPUT REAL FVAL){
  // ДИАППАЗОНЫ ДИАМЕТРОВ
  REAL ARRAY DMIN_ARR[] = {1.0,     2.0,     3.0     } // МИНИМАЛЬНЫЙ
  REAL ARRAY DMAX_ARR[] = {2.0,     3.0,     4.0     } // МАКСИМАЛЬНЫЙ
  REAL ARRAY V_ARR[] =    {100.0,   200.0,   300.0   } // ЗНАЧЕНИЯ V
  REAL ARRAY F_ARR[] =    {1000.0,  2000.0,  3000.0  }  // ЗНАЧЕНИЯ F

  INT C = 0
  WHILE ($C < SIZE($DMIN_ARR)) {
    REAL DMIN = DMIN_ARR[$C]
    REAL DMAX = DMAX_ARR[$C]
    IF ($DIA > $DMIN) AND ($DIA < $DMAX) {
      $VVAL = V_ARR[$C]
      $FVAL = F_ARR[$C]
      RETURN
    }
    $C = $C + 1
  }
}

function main(){
  foreach t in folder ('toolpath') {
      real d = $t.tool.diameter
      real v = 1.1 // значение по умолчанию
      real f = 1000.1 
      call getvfvalues(d,v,f)
      $t.spindlespeed.userdefined = true
      $t.spindlespeed.value = $v
      $t.feedrate.cutting.userdefined = true
      $t.feedrate.cutting.value = $f
  }
}

 

Hide  
1 пользователю понравилось это

Поделиться сообщением


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

@impact и тебе спасибо !

 

на выходных буду пробовать вставить всё это в макрос

Поделиться сообщением


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

@eksodus Вариант с внешним файлом настроек.

 

 

macro.zip

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, impact сказал:

Вариант с внешним файлом настроек.

я так и не понял как его прикрутить к уже существующей функции Main (которая может быть всего одна)

поэтому пока взял макрос от @Konstantin_VP

 

 

на сейчас сделал уже 3 редактирования макроса:

- в макросе Holes2 есть ошибка - там надо изменить в строке EDIT FEATURECREATE HOLES COMPOUND OFF  на EDIT FEATURECREATE HOLES COMPOUND ON

если этого не сделать - то составные отверстия при ручном выборе отверстий будут поделены на два диаметра (больший и меньший)

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

- вставил макрос, который изменяет составные отверстия: удаляет Больший диаметр, и продлевает Меньший диаметр на величину большего

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

 

теперь составное отверстие будет всегда сверлиться по меньшему диаметру, как на скриншоте ниже, от самого верха Большего компонента отверстия

 

666.png.cf374be25079e2b8ff2c85d6755ed198.png

 

- вставил подачи, проверил на всех 3 установах  - всё работает без ошибок

 

 

но у меня чёт руки опустились...

делал вчера сложную плиту - а там часть отверстий не от самого верха

получается - можно сначала пофрезеровать все понижения, а потом центроваться и сверлиться

для этого в макросе надо задать верх отверстия как верх компонента при создании траектории сверления

 

или - сначала посверлить все отверстия, и потом фрезеровать

а в макросе это можно сделать двумя способами:

- или при создании отверстий задать верх отверстий - верх заготовки

- или в траектории сверления задать - верх отверстий как верх заготовки

 

какой вариант будет удобнее, трудно сказать

 

 

А в идеале ещё бы хотелось, чтобы макрос:

- определял глухие отверстия по их типу (Blind), и на основании этого сам делал глухие траектории сверления

удобно как для просто глухих отверстий так и для резьбовых отверстий

- определял сквозные отверстия по их типу (Through), и на основании этого сам делал сквозные траектории сверления

Но! - эти два пункта по сути заменены мной вопросами в макросе - Сверлить насквозь или нет, так что опустим их пока.

 

- спрашивал - "Есть ли классные отверстия", и если ответить ДА - то предлагал бы сделать выбор и уменьшал бы диаметр сверла (или отверстий в 2D элементах) на 1 мм для этих отверстий

Это могу реализовать сам только наполовину (знаю как создать выбор и потом набор действий для выбранных элементов), а вот как изменить диаметр инструмента на 1 мм пока под вопросом.

 

А пока думаю перебрать сам принцип работы макроса.

 

 

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 10.02.2018 в 19:02, eksodus сказал:

я так и не понял как его прикрутить к уже существующей функции Main

Показать содержимое  
  // ДИАППАЗОНЫ ДИАМЕТРОВ
  REAL ARRAY DMIN_ARR[] = {6.0,     7.0,     8.0     } // МИНИМАЛЬНЫЙ
  REAL ARRAY DMAX_ARR[] = {7.0,     8.0,     9.0     } // МАКСИМАЛЬНЫЙ
  REAL ARRAY S_ARR[] =    {2000.0,   2000.0,   2000.0   } // ЗНАЧЕНИЯ s (обороты)
  REAL ARRAY F_ARR[] =    {65.0,  75.0,  85.0  }  // ЗНАЧЕНИЯ F (подача)

  // значение по умолчанию
  real $S = 1
  real $F = 1

  foreach t in folder ('toolpath') {
  
  IF t.Tool.Type == 'drill' {
  
    real $d = $t.tool.diameter
 
  INT $C = 0
  WHILE ($C < SIZE($DMIN_ARR)) {
    REAL DMIN = DMIN_ARR[$C]
    REAL DMAX = DMAX_ARR[$C]
    IF (d > $DMIN) AND (d < $DMAX) {
      $S = S_ARR[$C]
      $F = F_ARR[$C]
      
      $t.feedrate.cutting.userdefined = true
      $t.feedrate.cutting.value = $F
      
      $t.spindlespeed.userdefined = true
      $t.spindlespeed.value = $S
    }
    $C = $C + 1
  }
    
  }
  
  }

 

Hide  
1 пользователю понравилось это

Поделиться сообщением


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

Для ускорения макроса можно добавить после:

      $t.feedrate.cutting.userdefined = true
      $t.feedrate.cutting.value = $F
      
      $t.spindlespeed.userdefined = true
      $t.spindlespeed.value = $S

строчку:

$C = SIZE($DMIN_ARR)

Данная строчка завершает цикл While после подмены режимов в траектории

1 пользователю понравилось это

Поделиться сообщением


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

Всем добрый вечер. Подскажите пожалуйста как пользоваться командой PICK? Она выдает строчку  непонятных цифр. Мне нужно узнать координаты центра окружностей, которые я строю в редакторе кривых. В режиме "эхо", при указании мышкой места для окружности выдается это команда. Я понимаю, что выдаются координаты, но не пойму какие.

Поделиться сообщением


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

Всего доброго. Помогите с макросом, почему-то всегда предлагает список с первым вариантом (CASE 12), хотя по макросы должен предложить выбор по второму варианту (CASE 20).Сам макрос:

 

REAL s = 15
REAL Q = 1

If $s < 11,9 {
 $Q = 12
} ELSEIF $s > 12,1 AND $s < 19,9 {
 $Q = 20
} ELSE {
 $Q = 100
}

    SWITCH $Q {

    CASE 12


          INT I=1
        STRING LIST St={'12','35','40','50'}
           WHILE $i !=0 {
              $I=INPUT CHOICE $St ' Выберите значение'
              SWITCH $I {

                 CASE 0
            REAL a = block.limits.zmin+30

            MODE WORKPLANE_EDIT START "СК"
            MODE WORKPLANE_EDIT POSITION
            MODE POSITION CARTESIAN Z "0,0+a"
            POSITION APPLY
            MODE WORKPLANE_EDIT FINISH ACCEPT
            FORM BLOCK
                EDIT BLOCK ZMIN "block.limits.zmin-a"
                BLOCK ACCEPT
            BREAK

    }


    CASE 20


          INT I=1
        STRING LIST St={'20','50','60'}
           WHILE $i !=0 {
              $I=INPUT CHOICE $St ' Выберите значение'
              SWITCH $I {

                 CASE 0
            REAL c = block.limits.zmin+30

            MODE WORKPLANE_EDIT START "СК"
            MODE WORKPLANE_EDIT POSITION
            MODE POSITION CARTESIAN Z "0,0+c"
            POSITION APPLY
            MODE WORKPLANE_EDIT FINISH ACCEPT
            FORM BLOCK
                EDIT BLOCK ZMIN "block.limits.zmin-c"
                BLOCK ACCEPT
            BREAK
}
}
    }

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.02.2018 в 20:21, kvint62 сказал:

If $s < 11,9 {
 $Q = 12
} ELSEIF $s > 12,1 AND $s < 19,9 {
 $Q = 20
} ELSE {
 $Q = 100
}

Замените запятые на точки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 17.02.2018 в 02:02, syncomp сказал:

Всем добрый вечер. Подскажите пожалуйста как пользоваться командой PICK? Она выдает строчку  непонятных цифр. Мне нужно узнать координаты центра окружностей, которые я строю в редакторе кривых. В режиме "эхо", при указании мышкой места для окружности выдается это команда. Я понимаю, что выдаются координаты, но не пойму какие.

С командой pick невозможно ничего сделать. Координаты можно узнать дважды нажав на дугу, появится окно с координатами центра. Чтобы извлекать это все автоматически нужно записывать в отдельный файл эти координаты и затем извлекать в переменные.

Поделиться сообщением


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

Всё же хочется доработать макрос до более удобного состояния.

Как говорится - не оставляй незавершённых полезных дел - самому же понадобится.

(эт я недоперевёл справку к постпроцессору - и самому вот недавно надо было почитать более подробно

и самое смешное - перевёл как раз до того момента, который был нужен)))  )

 

В общем, - подскажите, как в следующей части макроса задать текущий диаметр отверстий через переменную ?

 

ACTIVATE FEATURESET "Отверстия D6,0" FORM EDITHOLE
EDIT FEATURESET ; SELECT ALL
EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED UPPERDIA "6,0-1"
EDIT FEATURESET ; FEATURE SELECTED APPLYAXIS
FORM CANCEL EDITHOLE

 

Эта часть макроса уменьшает текущий диаметр отверстий активного 2D Элемента на 1мм

А хотелось бы, чтобы вместо цифры 6 - была переменная, равная выбранному диаметру.

 

Спасибо )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.03.2018 в 22:27, eksodus сказал:

Всё же хочется доработать макрос до более удобного состояния.

Показать содержимое  
Real $Diameter = 1
Real $NewDiameter = 1

ACTIVATE FEATURESET ;
EDIT FEATURESET ; DESELECT ALL

FOREACH $f in components(entity('featureset','')) {

$Diameter = $f.Diameter
$NewDiameter = $Diameter - 1

EDIT FEATURESET ; SELECT $f.name
EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED UPPERDIA $NewDiameter
EDIT FEATURESET ; DESELECT ALL

}

 

Hide  
1 пользователю понравилось это

Поделиться сообщением


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

@Konstantin_VP  спасибо, всё работает !

 

Теперь эта часть макроса выглядит вот так:

// Уменьшение диаметра 2D-Элементов (и потом инструментов) для Посадочных (классных) Отверстий на 1 мм
Real $Diameter = 1
Real $NewDiameter = 1
BOOL option7 = FALSE
$option7 = QUERY "Имеются ли Посадочные (классные) Отверстия?"
IF $option7 {
	ENTITY LIST $Selected_Featuresets = INPUT ENTITY MULTIPLE FEATURESET "Выберите нужные 2D Элементы"
	FOREACH $fs in $Selected_Featuresets {
		ACTIVATE FEATURESET $fs.Name
		FOREACH $feat in components($fs) {
			$Diameter = $feat.Diameter
			$NewDiameter = $Diameter - 1
			EDIT FEATURESET ; SELECT $feat.name
			EDIT FEATURESET ; FEATURE SELECTED COMPONENT SELECTED UPPERDIA $NewDiameter
			EDIT FEATURESET ; DESELECT ALL
		}
	}
}

 

Поделиться сообщением


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

ID: 259   Опубликовано: (изменено)

Проверил полный макрос - всё работает теперь как надо. Как и задумывалось изначально и как хотелось.

Только при наличии большого кол-ва отверстий разных диаметров - постоянные вопросы "Сверлить эти отверстия насквозь?" немного утомляют )

 

Может есть какой-то способ использовать параметр отверстий "Depth_Type" ?

H1.png.a0d889d7e8ce4147b7fed9eb6557d988.png

 

Чтобы макрос определял тип отверстий Through (сквозное), Blind (глухое)

это ещё можно выбрать вот здесь:

 

H2.png.f6cbf7b5205d42011d49dcf20ab83be1.png

 

и на основании этого сам выбирал нужный тип операции в траектории сверления ?

 

H3.png.67f1582acbaec704d3bdd10481bacd06.png

Изменено пользователем eksodus

Поделиться сообщением


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

Переделал саму концепцию макроса, и количество вопросов.

Нашёл, как мне думается, оптимальный вариант.

 

Сначала спрашивает - обработать Все отверстия ?

1.png.885087e0ba0bd1ec60d96c737f3bcfec.png

 

Соглашаемся,чтобы обработать все отверстия.

Если нужно просверлить только часть отверстий - например при втором установе с обратной стороны плиты,

то нажимаем Нет,  и вручную выбираем внутренние поверхности отверстий.

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

 

2.png.a58119f32fb2d719480aab23d408d718.png

 

 

Потом макрос спросит -

3.png.ac7660a3d874e651e6276d20a64f47da.png

 

Если ответить Да - появится окно с выбором 2D Элементов, которые нужно уменьшить в диаметре на 1 мм

 

4.png.652c45b8f5034ac989b23745a7708e69.png

 

Это для последующей расточки.

Если таких отверстий нет - тогда нажать Нет при запросе.

 

 

И потом появится последний Вопрос -

 

5.png.b67bad587ce753eda64e897cb3eb043a.png

 

Если нажать Да - все отверстия будут просверлены насквозь по имеющимся в папке для данной СК 2D-элементам.

Больше никаких запросов появляться не будет.

 

Также можно нажать Да, если есть, например, 10 видов разных отверстий - и только один какой-то диаметр

нужно сверлить не насквозь - проще изменить после макроса одну траекторию, чем нажимать 10 раз подтверждение сверления насквозь.

 

Если нажать Нет - то для каждого диаметра отверстий будет появляться такой запрос:

 

6.png.81aa496530728d7a5ef76ba410dcc8ae.png

 

 

В конце макроса все траектории во всех папках переименуются  по порядковому номеру и по имени инструмента.

Также для каждой траектории сверления будут заданы примерные режимы резания, в зависимости от диаметра инструмента.

 

PS: у макроса есть один минус - он преобразует составные отверстия в простые, только если отверстие имеет всего 2 элемента.

Например - если есть цековка, или фаска.

Если составных элементов отверстия больше двух - тогда удалите абзац в макросе с именем

Цитата

// Преобразование составных отверстий в простые

 

И сам макрос:  Holes3.zip

 

 

 

1 пользователю понравилось это

Поделиться сообщением


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

Доброго времени суток коллеги.

Жизнь вот заставила изучать макросы. Работы навалилось, хочу автоматизировать процесс.

Вроде курю форумы, хелпы, но споткнулся на элементарном. Макрос ругается и выдается ошибку. Не могу понять синтаксис. Я в программировании ноль пока

Суть в том, создаю переменную, создаю папку траекторий, переименовываю её по имени переменной, пытаюсь активировать, но выскакивает ошибка, хотя папка переименована.

Поможите))

 

 

STRING Mess = $dlinaX + " - " + $dlinaY + " _" + $nomer_zakaza + " - " + $Model_name

CREATE FOLDER "Toolpath" ; 
RENAME FOLDER "Toolpath\Папка 1" $Mess
ACTIVATE FOLDER $Mess

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, scorpion1007 сказал:

Доброго времени суток коллеги.

Жизнь вот заставила изучать макросы. Работы навалилось, хочу автоматизировать процесс.

Доброго

у меня всё также начиналось )

10 часов назад, scorpion1007 сказал:

Суть в том, создаю переменную, создаю папку траекторий, переименовываю её по имени переменной, пытаюсь активировать, но выскакивает ошибка, хотя папка переименована.

Поможите))

у меня ваш макрос на 4 строки вообще ничего не создаёт - сразу ошибка

это полная версия вашего макроса ?

и версия повермилла какая ?

 

и вы создаёте не одну а 4 переменные

первые 2 вроде бы размеры заготовки, верно ? а последняя имя модели

откуда же брать значение переменной $nomer_zakaza  ? как её вычислять собираетесь ?

 

Поделиться сообщением


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

RESET LOCALVARS
//Вычисление размеров
EDIT MODEL ALL DESELECT ALL
EDIT BLOCK RESET

int dlinaX=round(Block.Limits.XMax-Block.Limits.XMin,0)
int  dlinaY=round(Block.Limits.YMax-Block.Limits.YMin,0)
int  dlinaZ=round(Block.Limits.ZMax-Block.Limits.ZMin,0)


//***** Вычисление пути ****это кусок кода с нэта не совсем понимаю, что он делает
STRING ModelPath = folder('Model')[0].Path
STRING Model_name=folder('Model')[0].Name
INT Pos = Position($ModelPath,"Фрез\")
$ModelPath=substring($ModelPath,0,$pos+5)

string scname = " Введите номер заказа"
STRING $nomer_zakaza = input $scname
//$err = ERROR nomer_zakaza

 

//**********  Запись в файл размера заготовки ***********
STRING Mess = $dlinaX + " - " + $dlinaY + " _" + $nomer_zakaza + " - " + $Model_name
STRING Patt = $nomer_zakaza + " - " + $Model_name

CREATE FOLDER "Toolpath" ; 
RENAME FOLDER "Toolpath\Папка 1" $Mess

CREATE FOLDER "Pattern" ; 
RENAME FOLDER "Pattern\Папка 1" $Patt

 
//***** Вычисление фрезы 20 мм ****

ACTIVATE FOLDER $Mess
FORM STRATEGYSELECTOR
STRATEGYSELECTOR STRATEGY "C:/Users/Sergey/AppData/Local/Autodesk/PowerMill/My-Strategies/20end_neapol.ptf" NEW

IMPORT TEMPLATE ENTITY TOOLPATH TMPLTSELECTORGUI "C:/Users/Sergey/AppData/Local/Autodesk/PowerMill/My-Strategies/20end_neapol.ptf"
EDIT BLOCK RESET
ACTIVATE FOLDER $Patt
CREATE PATTERN ;

STRING Patt20 =  " 20endmill- " + $Model_name
RENAME Pattern "1" $Patt20
EDIT LEVEL "2.0" SELECT ALL
EDIT PATTERN ; INSERT MODEL
EDIT MODEL ALL DESELECT ALL
EDIT TOOLPATH "1" CALCULATE


//***** Вычисление фрезы 60 градусов ****
ACTIVATE FOLDER $Mess


.......итд по аналогии все четыре траектории 

 

//***** Создание и запись NC ****

EXPLORER SELECT FOLDER $Mess NEW
ACTIVATE FOLDER $Mess
EDIT FOLDER $Mess NCPROGRAM
ACTIVATE NCPROGRAM $Mess KEEP NCPROGRAM ;

Изменено пользователем scorpion1007

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, scorpion1007 сказал:

ACTIVATE FOLDER $Mess

ошибка в этой строке

у вас переменная Mess - содержит только ИМЯ папки

а вы пытаетесь обратиться к папке просто по имени - БЕЗ пути папки, отсюда и ошибка

 

то есть вам нужно задать ещё одну переменную, содержащую ПУТЬ к папке, и потом имя папки

и уже активировать папку по этой новой переменной

 

например вот так:

STRING FolderPath = "Toolpath\$Mess"
ACTIVATE FOLDER  $FolderPath

 

То есть - нужно обязательно указать в какой папке дерева милла, находится ваша подпапка - траектории, инструменты, границы, шаблоны, модели и тд

А иначе милл не будет знать к какой папке обращаться

 

PS: проделав тоже самое к папке траекторий и шаблонов - макрос всё равно выдаёт ошибку - он не может найти слой 2,0

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

 

и что за шаблон 20end_neapol.ptf  ? какая это траектория в милле?

 

Изменено пользователем eksodus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, eksodus сказал:

 

например вот так:

STRING FolderPath = "Toolpath\$Mess"
ACTIVATE FOLDER  $FolderPath

 

 

@eksodus  Спасибо большое. Надеюсь Вам:angel: уготовано место в раю за то, что помогаете новичкам:worthy: Сколько раз вы меня уже выручали. 

2 часа назад, eksodus сказал:

PS: проделав тоже самое к папке траекторий и шаблонов - макрос всё равно выдаёт ошибку - он не может найти слой 2,0

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

 

Геометрия у меня импортируется по слоям. Шаблоны для каждой траектории берутся со слоев

Поделиться сообщением


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

Люди добрые.

Подскажите, как сделать задержку на время импорта модели и для записи NC-файла?

Выскакивает ошибка до того,  как импортировалась модель и до того пока записывается NC-шка.

Я так понимаю. начинает исполняться следующая команда, хотя предыдущая ещё не закончена

Строки кода в которых выскакивает ошибка:

IMPORT MODEL FILEOPEN

RESET LOCALVARS
DELETE WORKPLANE ALL

.....

 

и

....

ACTIVATE NCPROGRAM $Mess KEEP NCPROGRAM ;
TEXTINFO ACCEPT

То есть нужно дать время сначала на импорт модели и запись NC прежде, чем приступать к следующей команде

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, scorpion1007 сказал:

IMPORT MODEL FILEOPEN

STRING path = ""
$path = FILESELECT "Import model file"
IMPORT MODEL $path

Поделиться сообщением


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

Выкладываю простой макрос по переименованию траекторий по их порядковому номеру и инструменту.

Он скорее идёт как дополнение к основному макросу сверления, чуть выше в сообщениях.

Но можно использовать и сам по себе.

 

Сам макрос:  RenameTP.zip

 

Что нужно сделать перед запуском - расположить в дереве милла траектории в нужном порядке и запустить макрос.

После запуска будет запрос -

 

555.png.ceb809ef06eced0b562391bdfefff657.png

 

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

Это позволяет избежать ошибочных нажатий на кнопки макросов на панельке.

 

Поделиться сообщением


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

Прошу помощи в переделке макроса от милла 2017-2018-2019, для милла 2016 !

если такое конечно возможно

 

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

нужно всего-лишь забиндить на макрос любое сочетание клавиш, например F2

 

1) клацаем F2, появляется окно ориентирования, потом выбираем мышкой любую поверхность и опять клацаем F2

результат будет вот такой:

 

201.png.7df67037e1127a424aea66eb9d5704d9.png

 

 

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

Если нажать Да - макрос закроется.

 

Для милла 2017-2018-2019 макрос работает отлично.

А вот в милле 2016 выдаёт вот такую ошибку -

 

202.png.41a0504100af91eb741c4d3ff14f70b1.png

 

 

Может кто-нибудь знает - можно ли этот макрос адаптировать для милла 2016 ?

Буду благодарен за помощь.

 

Спасибо.

 

Макрос вот тут: Draft_Angle.zip

 

Изменено пользователем eksodus

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 24.04.2018 в 08:07, impact сказал:

STRING path = ""
$path = FILESELECT "Import model file"
IMPORT MODEL $path

Спасибо большое:good:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 25.04.2018 в 22:28, eksodus сказал:

можно ли этот макрос адаптировать для милла 2016

Нет. $widget ввели в PM2017.

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

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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



  • Реклама

  • Сообщения

    • arlekino
      Всем привет. Возникла такая проблема. Приобрел себе в гараж старенький 3-х координатный фрезерно-гравировальный станок. Программы писать умею на него, но возникла проблема с постпроцессором. Может у кого то есть похожий, поделитесь пожалуйта. Если нету для ArtCAM. то может для другой CAM программы. Станок польский Odrusn WM 2015.
    • arlekino
      Всем привет. Возникла такая проблема. Приобрел себе в гараж старенький 3-х координатный фрезерно-гравировальный станок. Программы писать умею на него, но возникла проблема с постпроцессором. Может у кого то есть похожий, поделитесь пожалуйта. Если нету для Solid CAM. то может для другой CAM программы. Станок польский Odrusn WM 2015.
    • arlekino
      Всем привет. Возникла такая проблема. Приобрел себе в гараж старенький 3-х координатный фрезерно-гравировальный станок. Программы писать умею на него, но возникла проблема с постпроцессором. Может у кого то есть похожий, поделитесь пожалуйта. Если нету для Power Mill. то может для другой CAM программы. Станок польский Odrusn WM 2015.
    • es5ina
      Создаете геометрию трубы желаемой. Закрываете концы заглушками Создаете проект в Flow Simulation с желаемой текучей средой На внутренней стороне заглушек задаете граничные условия - наиболее стабильный вариант: на входе расход, на выходе давление. Из расчета получаете давление на входе и таким образом получаете перепад. задача очень простая - заводите в гугл "FloEFD Обучающие примеры" - для Standalone, NX, Creo не важно, они все практически идентичны по работе с Flo Simulation в SolidWorks Там есть пример "Определение гидравлических потерь"   Что такое "Вести расчет на треугольнике"?   Если у вас нет модуля Flow Simulation, а есть только модуль Simulation, то там гидродинамический расчет не сделать никак. Он только для твердотельных расчетов
    • Fedor
      Во первых это не контактная задача Напряжения как обычно при расчете болтов. Критерии как обычно в деталях машин - срез, смятие   http://rimoyt.com/sopromat/srez-smyatie.php   :)  
    • execut1oner
      так а как точки то получить из .elem там непонятно что подскажите
    • NoZzz
      Там была немного другая проблема, но я её нашел, а так, спасибо за помощь)
    • cepr
      В окне Высоты выборки поставить флаг Показать, будут видны высоты. И дальше задавать Значение. Но задать высоту строго по плоскости не получится, к сожалению, влияет Допуск обработки.  Например, задать Z-50 - высота будет, а обработки плоскости на уровне -50 не будет. При допуске 0.1 задавать Z-49.92 В параметрах обработки можно указать Плоскость 0, но все равно будет -49.92  
    • Борман
      Ну если так, то можно, конечно. Оба варианта неправильные. Опасное сечение будет в районе внутреннего угла. Вы же не думаете, что пунктирный цилиндрик выдавится раньше, чем отогнется донышко, хотя.. Ну ничего.. книга познания безгранична и некоторые главы мы читаем первыми. Ваша задача как раз из этих.
    • Борман
      Ну вот..  а говорите что проблема была в материале.