메모리를 참조 했다는 메세지와 함께 다운이 넘 자주 되네요.
컴 하드의 설정 문제인지 아니면 인벤터 설정에 문제인지 모르겠네요.
그리고 좀 복잡한 형상의 스케치를 할려고 하면 “응답없음”만 나오고
나 몰라라 하니 이 놈을 어떻게 만져줘야 하는지 원….
이런 경우 회원님은 어떻게 대처 하시나요?
참고로 컴 사양은 os:xp, cpu:p4-2.4ghz, ram:1gb, g-card:쿼드로900 그리고 인벤터는 R6-sp2를 쓰고 있습니다.
메모리 참조 에러 해결 방책은?
공유
"0x1baed34f"에 있는 명령이 "0x1e7dfa18"의 메모리를 참조했습니다. 메모리는 read될 수 없습니다."
영문판에선 다음과 같이 에러가 나옵니다.
"The instruction at 0x1baed34f referenced memory at 0x1e7dfa18. The memory can not be read."
위의 에러는 보통 "No room to add to heap list" 에러 다음에 연달아 나타나는데, 보통 파생부품 모델링을 복잡하게 할 때 나타납니다.
우선, 나는알지롱 게시판의 99번글을 참고하세요. 특히 가상 메모리 (virtual memory)를 점검해 보세요.
제가 강명진님의 카페에서 구경한 바로는, 명진님께선 파생부품 (derived part)를 사용해 mold 디자인을 많이 하시는 걸로 알고 있는데요.
복잡한 파생부품 모델링을 할 경우, 인벤터 6까지 있는 버그 때문에 이런 에러가 생길 수 있습니다. 인벤터 7에서 이 버그가 고쳐졌고, 인벤터 8에선 드물게 복잡한 경우에서까지도 이 버그가 고쳐졌습니다.
한 예로, P1 -> DP1 -> DP2 -> DP3. ("DP"는 Derived Part의 약자임). 즉, DP1은 P1으로부터 파생되고, DP2는 DP1으로부터 파생되는 식입니다. 공학 분야에서 말하는 "데이지 체인 (daisy chain)"이죠.
인벤터 7에서 위이 에러를 나오지 않게 하려면 도구 (Tools) -> 전체 재구축 (Rebuild All) 을 사용하셔야 합니다. 단순히 업데이트 버튼을 사용하면 소용 없습니다.
지켜야할 순서는 bottom-up 입니다. 다시 말해서…
1. P1을 전체재구축하고, 저장하고, 닫습니다.
2. DP1을 전체재구축하고, 저장하고, 닫습니다.
3. DP2을 전체재구축하고, 저장하고, 닫습니다.
4. DP3을 전체재구축하고, 저장하고, 닫습니다… 이런 식입니다.
파생부품을 데이지 체인하는 걸 권장하지 않습니다. 왜냐하면, 데이지 체인의 끝으로 갈수록 (위의 예에선 DP3), resource (여기 문맥에선 메모리)가 딸리게 되기 때문이죠.
이렇게 파생을 많이 해야 하는 경우, 데이지 체인 대신에 skeleton modeling (master sketch라고도 불림) 방식을 권장합니다. 나는알지롱~과 방문해보셈~ 게시판에도 몇 차례 소개가 되었었죠. 위의 예에서 skeleton modeling을 사용하면, DP1, DP2, DP3의 모든 정보를 한 파일에 넣고, 각각의 파생 부품 생성시 필요한 정보만 파생시키면 됩니다. 즉, P1 -> DP1. P1 -> DP2. P1 -> DP3 가 되겠죠.
복잡한 파생부품 모델링의 또다른 예로는 P1 -> DP1 -> DP3. P1 -> DP2 -> DP3 입니다. C++, Java 등 object-oriented programming 분야에서 말하는 "다중 상속 (multiple inheritance)" 경우입니다. 에러를 나오지 않게 하는 해결책은 위와 동일합니다 (인벤터 7 이상에서 전체 재구축). 위의 예에서 재구축 순서는 P1, DP1, DP2, DP3 입니다 (DP1과 DP2는 순서가 바뀌어도 상관 없겠죠).
만약 파일들이 너무 많아서 일일이 파일 하나하나 열고 전체 재구축하기 번거러울 경우, 인벤터 7에 있는 변환 유틸리티 (Migration Utility)를 전체 재구축 옵션에 체크를 하고 실행해도 마찬가지일 것 같습니다. 단, 모든 파일들이 한 폴더에 있어야 합니다 (그 폴더 안에 다른 폴더들이 있는 것은 괜찮음).
늘상 친절한 답변 감사합니다.