Объявление

Свернуть
Пока нет объявлений.

Скрипты в HFSS

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

    Скрипты в HFSS

    Начал осваивать скрипты в Ansoft и сразу столкнулся со следующей на первый взгляд простецкой проблемой: не понимаю как сделать так, чтобы команды ансофта выполнялись для файла с любым именем, т.е. чтобы не было жесткой привязки к конкретному имени файла!!! Это проявляется в строчках:
    Set oProject = oDesktop.SetActiveProject("logo_patch_v5_11_fin3")
    Set oDesign = oProject.SetActiveDesign("Logo_patch_470-790")

    И вся последующая ступень операций применяется непосредственно к файлу logo_patch_v5_11_fin3.hfss. Но ведь вполне понятно, что это весьма неудобно, так как у нормальных людей все файлы носят различные имена, а следовательно скрипт уже не будет работать для другого имени файла, выдавая ошибку. Зачем тогда вообще скрипты? Должен быть значок произвольного файла, например: "*" как в бейсике или другая команда вроде
    oDesktop.SetAnyProject - типа любой проект. Иначе в макросах нет никакого смысла, т.к. простейшие операции я и так в ручную быстрее выполню, чем буду перенабирать наименование файла в WordPad для скрипта каждый раз.
    А вообще мое предложение: давайте дружно обсуждать здесь свой опыт и наработки по написанию скриптов в HFSS!)

    #2
    Нашел ответ

    Решил я свою проблему. Обходится она следующим образом:
    Set oProject = oDesktop.GetActiveProject()
    Set oDesign = oProject.GetActiveDesign()

    Для этого объект должен быть у вас уже выбран в ручную.

    Комментарий


      #3
      Книга по скриптам на англ. для 11-ой версии

      Вот, книга по скриптам кому интересно.
      http://depositfiles.com/files/4jer5ezfs

      Комментарий


        #4
        Только хотел написать что проще самому допереть, чем тут что то по хфсс спрашивать, как вы уже. Удачи в освоении.

        Комментарий


          #5
          to retro70
          Зря Вы так про этот форум. Ведь он действительно не посвящен моделированию в HFSS. Есть много готовых моделей антенн , уроков по их созданию, анализируя которые без труда можно освоить программу. :drinks:

          Комментарий


            #6
            Вопрос, может кто знает: как в массиве Setup выключить галку лямбда рефайнмент с помощью скрипта, не затрагивая другие свойства?
            Set oModule = oDesign.GetModule("AnalysisSetup")
            oModule.EditSetup "100_900", Array("NAME:100_900", "Frequency:=", "700MHz", "PortsOnly:=", _ false, "MaxDeltaS:=", 0.3, "UseMatrixConv:=", false, "MaximumPasses:=", 3, "MinimumPasses:=", _ 1,"MinimumConvergedPasses:=", 1, "PercentRefinement:=", 45, "BasisOrder:=", 1, "UseIterativeSolver:=", _
            false, "DoLambdaRefine:=", false, "DoMaterialLambda:=", true, "SetLambdaTarget:=", _
            false, "Target:=", 0.3333, "UseConvOutputVariable:=", false, "IsEnabled:=", _ true, "ExternalMesh:=", false, "UseMaxTetIncrease:=", false, "MaxTetIncrease:=", _ 100000, "PortAccuracy:=", 2, "UseABCOnPort:=", false, "SetPortMinMaxTri:=", _ false)
            Вот собственно массив.
            P.S. Функции ChangeParam, SetParam, GetParam уже пробовал причем как под oModule так и под oEdit - говорит невозможно для данного объекта.

            Комментарий


              #7
              Вот написал скрипт, который производит симуляцию проекта, а по завершении выдает сообщение "Ansoft has been finished!" поверх всех окон. Очень удобно, когда долгий анализ и в это время что-нибудь просматриваешь другое, например интернет страницы. Его можно повесить на горячую клавишу (как смотреть тему Горячие клавиши в HFSS)
              Собственно сам скипт (вставляем в
              блокнот и сохраняем в .vbs)

              Dim oAnsoftApp
              Dim oDesktop
              Dim oProject
              Dim oDesign
              Dim oEditor
              Dim oModule
              Dim intDoIt
              Dim AnalysisStatus
              Set objFSO = CreateObject("Scripting.FileSystemObject")
              Set oAnsoftApp = CreateObject("AnsoftHfss.HfssScriptInterface")
              Set oDesktop = oAnsoftApp.GetAppDesktop()
              oDesktop.RestoreWindow
              Set oProject = oDesktop.GetActiveProject()
              Set oDesign = oProject.GetActiveDesign()
              Set oModule = oDesign.GetModule("AnalysisSetup")
              For each name in oModule.GetSetups()
              oDesign.AnalyzeDistributed name


              Do Until AnalysisStatus <> 0

              if AnalysisStatus = -1 then
              msgbox("Ansoft Error!")
              else
              if AnalysisStatus = 0 then
              intDoIt = msgbox("Ansoft HFSS has been finished!", _
              vbOKOnly + vbInformation + vbSystemModal, _
              "Programme Info")
              'objFSO.DeleteFile "c:/temp/12.txt", True
              'oDesign.ExportProfile name, "", "c:/temp/12.txt"
              'Set a = objFSO.OpenTextFile("c:/temp/12.txt", 1, False, -1)
              End if
              if intDoIt = vbOK Then
              oDesktop.RestoreWindow
              WScript.Quit
              else
              End if
              End if
              Loop
              Next

              Комментарий

              Обработка...
              X