2013-10-16 5 views
0

업데이트 : 문제는 MathWorks를 통해 해결되었습니다. 아래 답변을 게시했습니다.Matlab 및 JDDE

Matlab에서 프로그램 (Zemax)을 제어해야합니다. 아쉽게도 Zemax는 DDE를 지원하지 않습니다. Matlab은 더 이상 지원하지 않습니다. 작동하지만 몇 (아마 63) DDE 호출 후 64 비트 플랫폼에서 작동하지 않습니다.

작동하는 솔루션이 있는지 궁금합니다. 아마도 올바른 DDE 지원 DLL을 프로그램하고이 DLL을 통해 Matlab DDE 사용할 수 있습니다. 이것은 나를위한 중요한 노력이다. 보다 적합한 솔루션은 Java DDE 메소드를 사용하는 것입니다. 여기 another post에 이어 JDDE 라이브러리를 발견했습니다.

import pretty-tools.JDDE-2.0.3.* 

잘 작동 실행하지만

에 결과 ( here를 완료로) 이후

a = com.pretty_tools.dde.client.DDEClientConversation() 

를 호출, 나는 DLL 및 JAR 파일과 디렉토리에 오전하더라도 : 그러나 나는 그것이 작동 할 수 없습니다

Undefined variable "com" or class "com.pretty_tools.dde.client.DDEClientConversation". 

내 PC에 대한 쓰기 권한이 매우 제한적이므로 jar/dll 위치가 javaclasspath.txt 인 파일을 0으로 표시된 디렉토리에 추가했습니다.. 이 파일은 다음과 같습니다

javaclasspath를 호출
C:\Users\xxxxxxxx\Documents\matlab toolbox\jdde\pretty-tools-JDDE-2.0.3.jar 

마지막 라인 인 상태 긴 목록을 보여줍니다

... 
C:\Program Files\MATLAB\R2012b\java\jarext\webservices\ws_client_core\mw-service-client-core.jar 
C:\Users\kkarapet\Documents\matlab toolbox\jdde\pretty-tools-JDDE-2.0.3.jar      

DYNAMIC JAVA PATH 

<empty> 

그래서 경로가 올바르게 설정 될 것으로 보인다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

MathWorks 지원을 통해이 답변을 찾았습니다. 여기에 관리자 권한없이, matlab에 2012b와 JDDE 작업을하는 방법입니다 :

  1. 다운로드 및 일부 폴더에 JDDE 파일 (DLL 및 JAR)을 압축을 풉니 다. $path-to-jdde$\이라고 가정 해 보겠습니다.
  2. Matlab에서 prefdir을 입력하십시오. 결과 디렉토리를 열고 거기에 두 개의 파일, javaclasspath.txtjavalibrarypath.txt을 작성하십시오.
  3. javaclasspath.txt에 $path-to-jdde$\pretty-tools-JDDE-2.0.3.jar을 추가하십시오.
  4. javalibrarypath.txt에 $path-to-jdde$\을 추가하십시오.
  5. Matlab을 다시 시작하십시오.

이제 ddeConv = com.pretty_tools.dde.client.DDEClientConversation;을 호출하고 JavaDoc에 설명 된대로 만든 개체를 사용하십시오. 예 : Zemax에 연결하고, Zemax를 실행 한 다음 ddeConv.connect('Zemax', 'abc')으로 호출하십시오.

위의 2 단계는 Matlab 버전 R2012b 만 시작해야합니다. 이전 버전에서는 Matlab 설치 디렉토리에 대한 쓰기 권한이있는 경우 $ MATLABROOT $ \ toolbox \ local에있는 librarypath.txt 및 classpath.txt 파일을 편집하여 2 단계를 바꿀 수 있어야합니다. 확인할 수 없으므로 아래 내용을 확인해주십시오.