加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于MARC软件的二次开发功能(1)

(2015-03-12 09:17:35)
标签:

marc

visual

basic

二次开发

分类: 技术

MRAC软件进行二次开发,我们经常用到的,也往往是大家感到我非常高深的就是软件操作的参数化,就像我们用到的EXCEL的宏功能,也希望,重复的工作,只要进行一键操作既可以完成某一有限元模型的创立,并且可以顺利地完成有限元的计算。

那么今天基于自己的课题研究,就抛砖引玉讲一下怎样将MRCE与我们最经典的可视化编程的Visual BaSIC连接起来,实现软件的二次开发功能。至于其他的语言,大同小异,只要小伙伴们能够融会贯通,再有相关的语言的编写基础就完全可以了。

MRAC软件进行二次开发可以走两个方向,一个是利用dat的方法,一个是利用proc的方法,见过一些牛人利用dat但是,操作起来还是非常麻烦的,所以,主要讲一下我们更容易接受的proc方法。

MRAC软件的proc方法与我们所说的宏功能是一样的,只是我们大部分人没有发现罢了,言归正传,说一下具体操作。

MRAC软件在你操作的过程中,也会记录下你的操作过程,不过他不是自动的需要你进行预设。

预设如下:utils(在软件中部的下面)——procedure——creat,这样就出现了相应的proc文件,命好名字,然后就可以进行我们最熟悉的的软件的操作了,比如建模,当建模结束后,回到刚才的页面将其close掉。一个语言就算完成了。但是注意的是,其中有很多语句是不要的,所以需要删除,这里就不详细说了,下面贴出一个建模的程序(里面是程序的写入,如果不懂,翻看一下visual basic的书):

'进行有限元文件写入
Open Text14.Text & "\" & Text21.Text & ".proc" For Output As #1
Print #1, "| Created by Marc Mentat 2010.1.0 (64bit) "
Print #1, "*prog_option compatibility:prog_version:ment2010        "
Print #1, "|                                                                                      "
Print #1, "*set_curve_type arc_cpp                                                                "
Print #1, "*add_curves                                                                            "
Print #1, 0; r1; 0;
Print #1, 0; r1 - d1 / 2 + t1 - 45.2; 0;
Print #1, 0; r1 + d1 / 2 + t1 - 45.2; 0;
Print #1, 0; r1; 0;
Print #1, 0; r1 - d2 / 2; 0;
Print #1, 0; r1 + d2 / 2; 0;
Print #1, "*set_surface_type ruled                                                                "
Print #1, "*add_surfaces                                                                          "
Print #1, " 2                                                                                     "
Print #1, " 1                                                                                     "
Print #1, "                                                                                       "
Print #1, "*set_convert_divisions                                                                 "
Print #1, m2;
Print #1, "1                                                                                      "
Print #1, "*convert_surfaces                                                                      "
Print #1, " 1                                                                                     "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*set_expand_translation z 846.6                                                        "
Print #1, "*set_expand_repetitions                                                                "
Print #1, "10                                                                                     "
Print #1, "*expand_elements                                                                       "
Print #1, "all_existing                                                                           "
Print #1, "                                                                                       "
Print #1, "*reset_view                                                                            "
Print #1, "*fill_view                                                                             "
Print #1, "                                                                                       "
Print #1, "*elements_solid                                                                        "
Print #1, "*redraw                                                                                "
Print #1, "                                                                                       "
Print #1, "                                                                                       "
Print #1, "*sub_divisions                                                                         "
Print #1, "1 1 5                                                                                  "
Print #1, "*subdivide_elements                                                                    "
Print #1, "*dynamic_model_off                                                                     "
Print #1, " 21 22 23 31 32 33 41 42 43 51 52 53 61 62 63 71 72 73 81 82 83 91 92 93 101 102       "
Print #1, " 103 111 112 113 121 122 123 131 132 133 141 142 143 151 152 153 161 162 163 171       "
Print #1, " 172 173 181 182 183 191 192 193 201 202 203 211 212 213                               "
Print #1, "*dynamic_model_on                                                                      "
Print #1, "*reset_view                                                                            "
Print #1, "*fill_view                                                                             "
Print #1, "*dynamic_model_off                                                                     "
Print #1, "*subdivide_elements                                                                    "
Print #1, " 28 29 30 38 39 40 48 49 50 58 59 60 68 69 70 78 79 80 88 89 90 98 99 100 108          "
Print #1, " 109 110 118 119 120 128 129 130 138 139 140 148 149 150 158 159 160 168 169 170       "
Print #1, " 178 179 180 188 189 190 198 199 200 208 209 210 218 219 220                           "
Print #1, "# | End of List                                                                        "
Print #1, "*subdivide_elements                                                                    "
Print #1, "*dynamic_model_off                                                                     "
Print #1, " 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240       "
Print #1, " 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260       "
Print #1, " 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280       "
Print #1, " 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300       "
Print #1, " 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320       "
Print #1, " 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340       "
Print #1, " 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360       "
Print #1, " 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380       "
Print #1, " 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400       "
Print #1, " 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420       "
Print #1, " 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440       "
Print #1, " 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460       "
Print #1, " 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480       "
Print #1, " 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500       "
Print #1, " 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520       "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*subdivide_elements                                                                    "
Print #1, " 26 27 36 37 46 47 56 57 66 67 76 77 86 87 96 97 106 107 116 117 126 127 136 137       "
Print #1, " 146 147 156 157 166 167 176 177 186 187 196 197 206 207 216 217                       "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*dynamic_model_off                                                                     "
Print #1, " 21 22 23 31 32 33 41 42 43 51 52 53 61 62 63 71 72 73 81 82 83 91 92 93 101 102       "
Print #1, " 103 111 112 113 121 122 123 131 132 133 141 142 143 151 152 153 161 162 163 171       "
Print #1, " 172 173 181 182 183 191 192 193 201 202 203 211 212 213                               "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*set_duplicate_translation z 33.864                                                    "
Print #1, "*set_duplicate_repetitions                                                             "
Print #1, "54                                                                                     "
Print #1, "*duplicate_elements                                                                    "
Print #1, " 571 646 721 796 871 946 1021 1096 1171 1246 1321 1396 1471 1546 1621 1696 1771        "
Print #1, " 1846 1921 1996                                                                        "
Print #1, "# | End of List                                                                        "
Print #1, "*add_curves                                                                            "
Print #1, 0; r1; l;
Print #1, -r2; r1; l;
Print #1, r2; r1; l;
Print #1, "*add_curves                                                                            "
Print #1, 0; 0; l;
Print #1, 0 - r1; l;
Print #1, 0; r1; l;
Print #1, "*set_move_point                                                                        "
Print #1, 0; r1; l;
Print #1, "*set_move_rotation y 90                                                                "
Print #1, "*move_curves                                                                           "
Print #1, " 4                                                                                     "
Print #1, "# | End of List                                                                        "
Print #1, "*set_surface_type swept                                                                "
Print #1, "*add_surfaces                                                                          "
Print #1, " 3                                                                                     "
Print #1, " 4                                                                                     "
Print #1, "10                                                                                     "
Print #1, "                                                                                       "
Print #1, "*set_expand_translation z 500                                                          "
Print #1, "*set_expand_repetitions 2                                                              "
Print #1, "*expand_curves                                                                         "
Print #1, " 3                                                                                     "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*set_duplicate_translation z 0                                                         "
Print #1, "*set_duplicate_repetitions                                                             "
Print #1, "1                                                                                      "
Print #1, "*duplicate_surfaces                                                                    "
Print #1, " 3                                                                                     "
Print #1, "# | End of List                                                                        "
Print #1, "*set_move_rotation y 180                                                               "
Print #1, "*move_surfaces                                                                         "
Print #1, "5                                                                                      "
Print #1, "# | End of List                                                                        "
Print #1, "                                                                                       "
Print #1, "*set_surface_type quad                                                                 "
Print #1, "*add_surfaces                                                                          "
Print #1, "point(0,1500,10294.656)                                                                "
Print #1, "point(228.6,1500,10294.656)                                                            "
Print #1, "point(228.6,800,10294.656)                                                             "
Print #1, "point(0,800,10294.656)                                                                 "
Print #1, "                                                                                       "
Print #1, "                                                                                       "
Print #1, "                                                                                       "
Print #1, "*add_curves                                                                            "
Print #1, "0 1924 2466                                                                            "
Print #1, r2; 1924; l1;
Print #1, -r2; 1924; l1;
Print #1, "*set_expand_translation z"
Print #1, -l2 / 2;
Print #1, "*expand_curves                                                                         "
Print #1, " 5                                                                                     "
Print #1, "# | End of List                                                                        "
Print #1, "*set_duplicate_translation z"
Print #1, l2;
Print #1, "*duplicate_surfaces                                                                    "

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有