본문 바로가기
반응형

하이퍼매쉬53

[하이퍼매쉬 자동화] 생성한 노드 전부 제거하기 생성한 노드를 전부 제거하는 코드는 아래와 같습니다. *nodecleartempmark 2022. 6. 2.
[하이퍼매쉬 자동화] 원기둥 만들기 원기둥 생성 형식은 아래와 같습니다. *solidcone base_x base_y base_z mvec_x mvec_y mvec_z nvec_x nvec_y nvec_z base_radius top_radius aspect_ratio start_angle end_angle height 중심이 (25,25,10) 이고 반지름이 10인 원기둥 생성 방법은 아래와 같습니다. mvec_x mvec_y mvec_z 는 밑면에 해당하는 평면 위 아무 벡터나 입력하면 됩니다. *solidcone 25 25 10 10 0 0 0 0 10 10 10 1 0 360 10 2022. 6. 2.
[하이퍼매쉬 자동화] node 만들기 (노드) (25,25,10) 인 노드를 만들어봅시다. *createnode 25 25 10 0 0 0 2022. 6. 2.
[하이퍼매쉬 자동화] 네 점으로 사면체 만들기 네 점의 좌표를 연달아 입력합니다. 한 꼭지점을 먼저 입력하고, 해당 꼭지점에 연결된 나머지 세 점을 순서 상관 없이 임력합니다. *solidblock 0 0 0 0 50 0 50 0 0 0 0 50 결과는 아래와 같습니다. 2022. 5. 31.
[하이퍼매쉬 자동화] 두 점으로 라인 생성하기 (1,2,3) (5,7,19)으로 라인생성 *linecreatestraight 1 2 3 5 7 19 2022. 3. 3.
[하이퍼매쉬] 노드 좌표 얻는 법 Geom > nodes > as node 2022. 2. 25.
[하이퍼매쉬] 생성한 노드 없애는 법 Geom > temp nodes > clear all 2022. 2. 24.
[하이퍼매쉬 tips] 요소(element) 개수 확인 방법 패널에서 [Tool]-[count] 로 들어갑니다. 원하는 컴포넌트만 보이게 한 뒤에 displayed를 클릭합니다. 2021. 7. 30.
[하이퍼매쉬 자동화] list 에서 원소 교체, 삭제 방법 [하이퍼매쉬 자동화] list 에서 원소 교체, 삭제 방법 리스트를 하나 만들어봅시다. set L1 {1 2 3 4 5}->1 2 3 4 5 첫번째 원소를 없애보겠습니다. 첫번째 부터 첫번째 원소를 선택하고, 아무것으로도 대체하지 않는다는 의미입니다. 즉 첫번째 원소를 없애겠다는 뜻입니다. 0번째원소가 첫번째 원소입니다. set L1 [lreplace $L1 0 0]->2 3 4 5 이번에는 두번째와 세번째 원소를 "a"와 "b"로 대체해봅시다. set L1 [lreplace $L1 1 2 "a" "b"]->2 a b 5 2020. 9. 18.
[하이퍼매쉬 자동화] node 로 surface 만들때 번호 꼬이는 문제 해결 [하이퍼매쉬 자동화] node 로 surface 만들때 번호 꼬이는 문제 해결 node로 surface 만들 때, 하이퍼매쉬 상에서 직접 선택하면 node 순서가 loop 대로 선택되는데, 코드를 이용해서 "on plane" 등의 옵션을 주면, 순서가 loop 순서가 아니라 번호 순으로 배열된다. 아주 만족스러운 방법은 아니지만 해결방법을 찾았다. hm_getedgeloops 라는 명령어인데, element의 free edge 부분의 node를 loop 순서로 저장해준다. free edge가 여러개일 경우 각각 리스트로 저장한다. 아래는 예시다. blockA라는 block을 이용하여 element를 선택했다. free edge 를 얻어서 loop_all에 저장했다. 총 두개의 free edge가 저장되는.. 2020. 9. 18.
[하이퍼매쉬 자동화] surface trim 방식에 따른 node 생성 오류 [하이퍼매쉬 자동화] surface trim 방식에 따른 node 생성 오류 surface A와 B가 있다. B가 A에 포함된다. B로 A를 cutting 할 경우, B에 붙어 있는 node들이, A에도 그대로 있게 하고 싶다. trim의 종류가 두가지가 있는데, 상호 trim을 할 경우 node 유지가 안되는데 이해할 수가 없다. 아래처럼 trim 한 뒤에, A에서 B부분을 삭제해야 문제가 발생하지 않는다. *createmark surfaces 1 "by_collector" "lower_outer"*createmark surfaces 2 "by_collector" "lower_inner"*surfmark_trim_by_surfmark 1 2 0 *createmark surfaces 1 "by_colle.. 2020. 9. 17.
[하이퍼매쉬 자동화] 매쉬 순서에 따른 매쉬오류 [하이퍼매쉬 자동화] 매쉬 순서에 따른 매쉬오류 A라는 surface가 있고, A안에 포함되는 B라는 surface가 있다. A에서 B 부분을 subtract 할 것이다. 이때 문제가 생기는데, B를 매쉬하고 난 뒤, A에서 B를 아래 코드로 trim하면 매쉬가 변형된다. 지저분하게 이중으로 생긴다. *createmark surfaces 1 "by_collector" "lower_outer"*createmark surfaces 2 "by_collector" "lower_inner"*surfmark_trim_by_surfmark 1 2 1 트림을 먼저하고 매쉬를 짜면 아무 문제가 없다. 2020. 9. 17.
surface로 surface 자르기 surface로 surface 자르기 Surface B로 A 자르기*createmark surfaces 1 "by_collector" "A"*createmark surfaces 2 "by_collector" "B"*surfmark_trim_by_surfmark 1 2 0 Surfac B로 A 자르고, A로도 B 잘라 각각 저장*createmark surfaces 1 "by_collector" "A"*createmark surfaces 2 "by_collector" "B"*surfmark_trim_by_surfmark 1 2 1 2020. 9. 16.
[하이퍼매쉬 자동화] 두 node 사이의 거리를 구하는 방법 [하이퍼매쉬 자동화] 두 node 사이의 거리를 구하는 방법 1) node의 id를 아는 경우 두 node의 아이디가 11과 22라고 합시다. 아래와 같은 방법으로 거리를 계산합니다. 먼저 각각 node의 좌표를 얻어 변수에 저장합니다. set n1_x [hm_getvalue nodes id=11 dataname=x]set n1_y [hm_getvalue nodes id=11 dataname=y]set n1_z [hm_getvalue nodes id=11 dataname=z]set n1_x [hm_getvalue nodes id=22 dataname=x]set n1_y [hm_getvalue nodes id=22 dataname=y]set n1_z [hm_getvalue nodes id=22 datana.. 2020. 9. 15.
[하이퍼매쉬 자동화] 스크립팅할때 명령어들 모아놓은 곳 [하이퍼매쉬 자동화] 스크립팅할때 명령어들 모아놓은 곳 하이퍼매쉬켜고 F1 을 클릭하면, Hypermesh and BatchMesher 홈페이지가 뜬다. 왼쪽 Contents 트리에서 HyperMesh를 클릭하면 우측 화면이 변하는데 Help 단락에서 Reference Guide 를 클릭한다. 나오는 화면에서, Scripts 를 클릭한다. 다시 나오는 화면에서 Commends and Functions 를 클릭한다. 다양한 command를 확인할 수 있다. 현재 링크는 아래와 같은데 업데이트 등으로 인해 바뀔 수 있으니 위 과정을 따라가면 된다. C:\Program Files\Altair\2017\help\hm_ref_guide\topics\chapter_heads\commands_and_functions.. 2020. 9. 15.
[하이퍼매쉬 자동화] line drag 할때, 생성 위치 [하이퍼매쉬 자동화] line drag 할때, 생성 위치 #line component에 생성*surfacecreatedraglinealongvector 1 1 2 0 1 0 0 0 #current component에 생성*surfacecreatedraglinealongvector 1 1 2 0 0 0 0 0 2020. 9. 15.
[하이퍼매쉬 자동화] 연산 하는 방법 [하이퍼매쉬 자동화] 연산 하는 방법 앞에 expr 을 붙여줘야 한다. expr 2+3 원소로 넣을 경우 대괄호로 구분해준다. set mylist "1 2 [expr 3+5]" 2020. 9. 15.
[하이퍼매쉬 자동화] node로 surface 생성시, 번호 순서 때문에 생성 안되는 문제 [하이퍼매쉬 자동화] node로 surface 생성시, 번호 순서 때문에 생성 안되는 문제 마우스로 직접 node를 선택하면, 자동으로 node path 순서로 입력이 되는데 아래 코드 등을 사용할 경우 번호 순서대로 입력이 된다. *createmark nodes 1 "on plane" 0 0 -2 0 0 1 0.1 1 0 만약 닫힌 곡선의 노드가 1 3 2 4 5 6 으로 되어 있다면, 이 순서대로 node가 입력되어야 하는데, 코드로 입력할 경오 1,2,3,4,5,6 이렇게 입력되는 것이다. surface 끝부분, 즉 free edge 의 경우는, 매쉬 후 remesh를 해주면 free edge 부분이 번호 크기 순으로 정렬되어 문제를 해결할 수 있다. 하지만 free edge라고 하더라고, 형상이 .. 2020. 9. 15.
[하이퍼매쉬 자동화] 없는 node인데 자꾸 선택이 될 때 [하이퍼매쉬 자동화] 없는 node인데 자꾸 선택이 될 때 이전 surface를 만들 때 생성한 node 인데, 그 다음 surface를 만들때 자꾸 이 node가 선택되어 문제가 생기는 경우가 있다. 분명히 눈에는 보이지 않는데 선택하면 자꾸 있다. 이때 사용하는 코드이다. 키워드이다. *nodecleartempmark는 Geom->temp nodes -> clear 와 같은 기능이다. #for unmark----------*createmark nodes 1*createlist nodes 1*surfacesplineonnodesloop2 1 0*nodecleartempmark createmark와 createlist 를 초기화하고, temp node도 지워줬더니 된다. 2020. 9. 15.
[하이퍼매쉬 자동화] surface와 surface 사이를 다른 surface로 채우는 경우 [하이퍼매쉬 자동화] surface와 surface 사이를 다른 surface로 채우는 경우 서로 떨어져 있는 A와 B surface가 있다고 하자. 각각 surface는 component A와 B에 들어있다. A와 B를 매쉬한 상태에서, 그 사이를 매꾸고 싶은 상황이다. ruled 등을 하면 되긴 하는데 수동이다. 두 surface 사이에 surface를 create 할 때 방법은 세가지다. line 이용points 이용node list 이용 line을 이용할 경우, 매쉬 불일치 문제가 생긴다. points 이용할 경우, 형상이 복잡하면 생성이 안된다.nodelist 가장 좋음. nodelist 이용하는게 젤 낫다. 매쉬불일치 문제도 해결된다. 2020. 9. 14.
[하이퍼매쉬 자동화] node 이용하여 surface 생성 [하이퍼매쉬 자동화] node 이용하여 surface 생성 node를 이용하여 surface를 생성할 수 있다. node로 닫힌 surface 를생성해주는데, 가운데가 뚤린 모양의 경우 끝부분이 비어있는 surface가 생성된다는 단점은 있다. 아래와 같이 사용한다. 사용법 찾는데 애먹었다. 일단 *createlist는 "on plane"등의 옵션을 사용할 수가 없다. *create mark 로 노드를 생성해주고, 이 번호를 넣어주려고 하는데 계속 에러가 떴다. 알아보니 eval 을 붙여줘야 된다고 한다. #노드 마크 생성하고 변수 n1에 저장*createmark nodes 1 "on plane" 0 0 -2 0 0 1 0.1 1 0set n1 [hm_getmark nodes 1] #변수 n1에 저장된 .. 2020. 9. 14.
[하이퍼매쉬 자동화] node에서 추출한 points 를 이용하여 surface 생성 [하이퍼매쉬 자동화] node에서 추출한 points 를 이용하여 surface 생성 surface를 생성할 때, node 를 선택하여 생성할 수도 있고 points 를 선택하여 생성할 수도 있다. node를 선택할 경우 node path 로만 선택이 가능해 기능이 제한적이다. 따라서 surface 가 생성되기 원하는 node를 이용하여 point 를 생성하고, 다시 이 point를 이용하여 surface 를 생성하는 방법을 만들어 보았다. 먼저 node를 이용하여 point를 생성한다. 이때 생성된 point는 current component의 surface 에 들어가게 된다. *createmark nodes 1 "on plane" 0 0 $min 0 0 1 0.1 1 0set mylist [hm_ge.. 2020. 9. 14.
[하이퍼매쉬 자동화] surface mesh 할 때, anchor node 기능 구현하기 [하이퍼매쉬 자동화] surface mesh 할 때, anchor node 기능 구현하기 surface mesh 에는 anchor node 기능이 없다. 하지만 다른 방식으로 구현할 수 있다. surface에 point 를 추가하는 기능이 있는데, 이때 원하는 node를 추가하면 된다. 코드 예시는 아래와 같다. Component A의 surface에 (0,0,-3)을 지나고 노멀 방향이 z축인 평면 위의 node를 추가한 것이다. 이후 이 node들은 anchor node와 같은 기능을 한다. 대신 equivalence 는 해주어야 한다. *createmark surfs 1 "by collector" "component_A"set SurfId [lindex [hm_getmark surfs 1] 0]*c.. 2020. 9. 14.
[하이퍼매쉬 자동화] suface 로 매쉬생성시 element 노드번호 일치 문제 [하이퍼매쉬 자동화] suface 로 매쉬생성시 element 노드번호 일치 문제 같은 line을 공유하는 surface라고 해도, 서로 다른 component로 분리되어 있으면 mesh 생성시 element가 일치되지 않는다. 2020. 9. 11.
[하이퍼매쉬 자동화] on plane으로 요소 선택 [하이퍼매쉬 자동화] on plane으로 요소 선택 "on plane"으로 요소 선택 시 지나는 점의 위치와, normal vector 순으로 입력한다. 그리고 나서 tolerance와 plane옵션 touching 옵션을 입력한다. plane: 0 = plane, 1 = normal of planetouching: 0 = entities touching, 1 = entities on 예를들어, (0,0,-2)를 지나고, normal vector가 (0,0,1)인 평면을 지나는 line을 선택해보자. tol은 0.1로, plane opeiton은 plane인 0번, toucing 은 entities on인 1번으로 설정한다. *createmark lines 1 "on plane" 0 0 -2 0 0 1 .. 2020. 9. 9.
[하이퍼매쉬 자동화] 변수 생성 방법 [하이퍼매쉬 자동화] 변수 생성 방법 var라는 변수를 생성하고 30을 넣겠습니다. set 명령어를 사용합니다. set var 30>>30 이후 이 값을 사용할 때는 앞에 $ 표시를 붙여줘야 합니다. 예를들어 b라는 변수에 var 값을 넣어봅시다. set b $var>>30 2020. 9. 9.
[하이퍼매쉬 자동화] block 생성 방법 [하이퍼매쉬 자동화] block 생성 및 block으로 선택 어떤 요소를 선택할 때 유용하게 사용되는 기능이 block이다. 아래와 같이 생성한다. *createsimpleblock "B2" 11 10 10 -1 -10 -10 1 (10,10,-1) 과 (-10,-10,1)을 가장 긴 대각선 꼭지점으로 하는 정육면체를 생성해준다. block으로 요소를 선택하는 방법은 아래와 같다. *createmark elements 1 "by block" "B2" 2020. 9. 9.
[하이퍼매쉬 자동화] line으로 둘러쌓인 surface 생성 [하이퍼매쉬 자동화] line으로 둘러쌓인 surface 생성 #surfacemode 4선택#1 – mesh keep surface#2 – mesh delete surface#3 – mesh without surface#4 – surface only *surfacemode 4 #line 생성 (아래는 하나의 예시, 해당 평면 위에 있는 line 선택)*createmark lines 1 "on plane" 0 0 -10 0 0 1 0.1 1 0 #위 line 이용하여 surface 생성 (line componene에 생성)*splinesurface lines 1 1 1 3 # current component 에 생성 원하는 경우*splinesurface lines 1 1 1 2 2020. 9. 9.
[하이퍼매쉬 자동화] 화면의 점들을 리스트로 저장해서 z 최소값 출력 (for문) [하이퍼매쉬 자동화] 화면의 점들을 리스트로 저장해서 z 최소값 출력 (for문) #화면에 보이는 모든 포인트를 그룹1에 저장*createmark points 1 "displayed" #mylist 라는 변수에 points 1에 지정된 노드를 저장 set mylist [hm_getmark points 1] #mylist 길이 구하기(point 개수) set length [llength $mylist] #점들의 z 값만 list에 저장. set zlist "" for {set i 0} {$i 2020. 9. 9.
[하이퍼매쉬 자동화] 리스트에 요소 추가하기 [하이퍼매쉬 자동화] 리스트에 요소 추가하기 리스트에 요소를 추가할 때는 lappend 를 사용합니다. 먼저 리스트를 하나 만들어보겠습니다. set a "1 2 3">>1 2 3 요소를 추가합시다. lappend a 3>>1 2 3 3 2020. 9. 9.
반응형