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

значения переменных в макросе из 3d модели


алексей556

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

5 минут назад, Kir95 сказал:

У вас свойство CNCKad прописано заранее? И вы в свойствах Конфигурации вручную или макросом заполняете значение Сортамент и Толщина, получаете значение  CNCKad, затем хотите запустить макрос, который бы активный файл "Деталь1_00" сохранил под именем "Деталь1_00 Оцинковка-2мм" в папку детали? То есть "Имя файла+CNCKad"? Версия солида какая?

Сортамент и толщина заполняются макросами. Файл у меня остается с прежним названием.  НО, ЭКСПОРТ dft и dxf файлов произойдет в файл "Деталь1_Оцинковка-2мм_00.dxf" (dft). Экспорт идет через cad link с использованием штатной настройки.

Свойство CNCKad хочу создавать макросом, тк cad link берет не значение свойства, а текст свойства.

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


12 часа назад, Solan сказал:

Сортамент и толщина заполняются макросами

Если из списка вырезов, так и создавайте этим же макросом свойство CNCKad с объединением значений Сортамент и Толщина граничной рамки (может по другому называться, посмотрите в своём макросе), вот пример (работает, начиная с 12 версии солида):

Sub main()
    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swFeat              As SldWorks.Feature
    Dim swCustPropMgr       As SldWorks.CustomPropertyManager
    Dim strValue(3)         As String
    Dim swBodyFolder        As SldWorks.BodyFolder


          
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swFeat = swModel.FirstFeature

    
    swModel.ForceRebuild3 True
    
    Do While Not swFeat Is Nothing
    
        If swFeat.GetTypeName = "SolidBodyFolder" Or swFeat.GetTypeName = "CutListFolder" Or swFeat.GetTypeName = "SubWeldFolder" Then
        Set swBodyFolder = swFeat.GetSpecificFeature2
        swBodyFolder.UpdateCutList
                
            If UCase(swFeat.Name) Like "*" Then
                    swFeat.CustomPropertyManager.Get2 "Толщина граничной рамки", strValue(0), strValue(1)
                    swFeat.CustomPropertyManager.Get2 "Сортамент", strValue(2), strValue(3)

            End If
            
        End If
        
    Set swFeat = swFeat.GetNextFeature
    Loop
    
Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")
    swCustPropMgr.Add2 "CNCKad", strValue(3) & "-" & strValue(1) & "мм"

End Sub

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

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

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

swCustPropMgr.Add2 "CNCKad", 30, strValue(3) & "-" & strValue(1) & "мм"

 

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

@Kir95 Вставил код в существующий макрос, работает. Спасибо.

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

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

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

Просто нужно отслеживать наличие свойства и в этом случае либо удалять свойство с последующем добавлением или использовать инструмент замены значения свойства. Но второй инструмент не работает, если свойства нет и поэтому всё равно потребуется отслеживать наличие свойства с последующим добавлением.

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

необходимо было удалять свойство

Не надо

swCustPropMgr.Add3 "CNCKad", swCustomInfoText, strValue(3) & "-" & strValue(1) & "мм", swCustomPropertyDeleteAndAdd

 

Или даже лучше по правилам:

Dim retResult As swCustomInfoAddResult_e
retResult = swCustPropMgr.Add3("CNCKad", swCustomInfoText, strValue(3) & "-" & strValue(1) & "мм", swCustomPropertyDeleteAndAdd)

А то блин сплошной текст выше, а не метод.

Изменено пользователем streamdown
Ссылка на сообщение
Поделиться на других сайтах
В ‎27‎.‎01‎.‎2018 в 23:12, Solan сказал:

Версия солида какая?

-не ответил.

Add3, в 2014 солиде, вроде бы появился, может не сработать в более ранних версиях, я так понимаю.

Если свойство есть в шаблоне детали, тогда удобней поставить swCustomPropertyReplaceValue или 2,

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

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

не ответил.

Сорри... SW 2017sp3 и на на второй машинке sp5. 

Ребят, спасибо. Завтра не смогу обкатать - буду в Москве. Опробую в среду.

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

@streamdown , @Kir95 , @Kelny

Заработало обновление свойства только с swCustomPropertyReplaceValue.

С swCustomPropertyDeleteAndAdd не смог добиться обновления свойства.

Спасибо.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Viktor2004
      Это я не пробовал. Утверждать не буду. При случае проверю Но думаю если его правильно записать, все должно запуститься. Софт ведь одинаковый
    • gudstartup
      и не только из за того что вы думаете. чужой oprm просто не может прочитаться на другом чпу
    • paull3
      Принято, спасибо! буду шевелить платы
    • Nastyrnuy
      Теперь понятно! Вы шли не в том направлении, и помощеиков не туда завели!!! у Вас Проц и комп оператора тоже 3 платы( но совсем другие (еще Мультибас 1 чисто Интеловский) SBC08, 80/10 KCB 01/04, но диск у Вас электронный( который состоит из 12 или 14 ЕПРОМОВ и при всем желании и старании с дискет Вы ничего не сможете туда загрузить! Скорее всего  у Вас просто неконтакт, в пред постах там тоже на эту же тему многго что написано. Просто на SBC 08 херов туча наездников( и эл диск, и контроллер флоповода, и мат сопроцессор..!
    • paull3
      да, стойка CD, чуть позже прикреплю фото, ... получилось добавить , вот чт он показывает при загрузке и дальше не идёт...
    • Nastyrnuy
      Где то тут путаница идет... не совпадние (жесткий диск (он жесткий или элетронный диск?)), есл жесткий диск то флоппик  точно 1.44 и эмулятор можно на 1ю44, Но если вы используете эмулятор на 720 то это как правило серия станка не CF а CD....и.т.д поэтому фотки давай и станка серию и тип, и плат, и ошибку на экране где Биос кажет и флорри и диск, а то мы все тут будем по разному понимать..!
    • Viktor2004
      Вы же лучше меня знаете что запрсто записать на машину не только чужой, но и свой OPRMINF не получится
    • gudstartup
      полная чушь если ид меняется ошибка 5523 гарантирована иначе чужо ой oprminf запросто можно было бы записать на любую машину
    • paull3
      Всем добрый день! докладываю - 1) батарейка живая и после отключения от сети на сутки показала 3,63в, 2) записал файлы из архива на юсб флешку размеролм 720кБ - вставил в эмулятор, затем включил станок- станок никак не отреагировал, флешка вроде как считалась( индикация светодиодом на ней) 3) сделал загрузочную дискету дос, удалил файлы те что там записались и записал из архива - вставил в дисковод, включил станок- реакции не последовало, ...индикации и характерных звуков считывания не было, возможно неисправен дисковод, хотя когда переключал его на эмулятор он был исправен....   Добрый день, посмотрю, напишу  
    • Nastyrnuy
      Не, загрузочная не помешает! Анатолий правильно говорит, у станков серии CF FCки разные могутьбыть! И причем это даже не напрямую от серии CF Зависит, а от конфиги трех плат которые составляют комп оператора. так Паюль фоткай морды этих плат тоже( они там могут быть из 3 плат самая правая PEC(o4/05/07) или 1(все в одном AMS-75(уже проц Пень 75)! )! Но, по любому станок уже в годах и винты не вечные, так что FC может и не смочь помочь с запуском станка(если винт сыпется..). А кстати JP soft у Вас запускается , или на отдельном компе проги рабочие пишете!!
×
×
  • Создать...