VBA를 통해 Excel에서 열기 특정 dwg

  • Thread starter Thread starter blintz
  • Start date Start date

blintz

Guest
안녕하세요
두 프로그램에 대한 네트워크에 몇 가지 코드가 있습니다.
이 전제 후 ... 질문
나는 autocad와 완벽하게 대화를 excel에서 프로그램을했다
즉, 데이터 (블록 및 텍스트)는 그림으로 전송됩니다.
나는 vba에게 내가 열리는 autocad, 그렇지 않으면 msgbox와 더불어 특정한 dwg를 열어야 하는 것을 말할 수 있습니다
 
Come posso dire a vba che mi deve aprire uno specifico dwg said:
한국어
나는 더 명확하고 excel (vba)가 특정 파일을 엽니 다
나는 현재이 코드를 사용합니다 :
Code:
하위 삽입 블록()

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'데이터를 사용하여 Autocad의 인서트 블록 - 인서트 포인트, 블록 이름 / 전체 경로, 스케일 요소, 회전 각도 - excel에서.
' 블록 이름 또는 블록 경로가 이미 존재해야합니다, 그렇지 않으면 아무것도 삽입됩니다.
'코드는 나중에 바인딩을 사용하므로 외부 Autocad (type) 라이브러리에 참조가 필요하지 않습니다.
autocad가 이 코드를 실행하기 전에 컴퓨터에 설치되어야한다고 말하지 마십시오.

다음으로: christos samaras
다음 것: 21/04/2014
이메일: xristos.samaras@gmail.com
사이트: http://www.myengineeringworld.net
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

'필요한 변수 선언.
객체로 dim acadapp
객체로 dim acaddoc
객체로 dim acadblock
dim lastrow 긴
dim i 로 긴
dim insertionpoint(0에서 2) 더블
문자열로 dim blockname
Scalefactor로 디엠 블록 스케일
이중으로 dim 회전각

'조정 시트를 활성화하고 마지막 행을 찾습니다.
시트("attributes")
. 활성화
마지막 = .cells(.rows.count, "i").end(xlup). 이름 *
끝으로

'체크인 경우 적어도 한 개의 원을 조정합니다.
if lastrow < 5 다음
msgbox " 삽입 포인트에 대한 좌표가 없습니다!", vbcritical, "insertion point error"
출구 sub
끝 면

'autocad 응용 프로그램이 열려 있는지 확인. 새 인스턴스를 생성하지 않고 눈에 띄게 만듭니다.
오류는 다음을 다시 시작합니다.
acadapp = getobject (, "autocad.application")를 설정합니다.
if acadapp 이다 아무것도 그 후
설정 acadapp = createobject("autocad.application")
acadapp.visible = 사실
끝 면

'check (again) autocad 객체가 있다면.
if acadapp 이다 아무것도 그 후
msgbox "sorry, 그것은 autocad를 시작할 수 없습니다!", vbcritical, "autocad 오류"
출구 sub
끝 면
오류 goto 0

'활성화가 없다면 새로운 것을 만들 수 있습니다.
오류는 다음을 다시 시작합니다.
acaddoc = acadapp.activedocument 설정
만약 acaddoc이 없다면
acaddoc = acadapp.documents.add 설정
끝 면
오류 goto 0

'체크인 공간은 종이 공간이며 모델 공간으로 변경할 수 있습니다.
if acaddoc.activespace = 0 then '0 = 초기 바인딩의 acpaperspace
acaddoc.activespace = 1 '1 = 초기 바인딩에서 acmodelspace
끝 면

오류는 다음을 다시 시작합니다.
'loop through all the rows and add 대응 블록 in autocad.
시트("attributes")
i = 5 에 lastrow
'블록 이름 설정.
블록 이름 = .range("l" & i). 제품정보
' 블록 이름이 비어 있지 않다면 블록을 삽입합니다.
만약 blockname <> vbnullstring을 호출하면
' 삽입 포인트를 설정합니다.
삽입점(0) = .range("i" & i). 제품정보
삽입점(1) = .range("j" & i). 제품정보
삽입점(2) = .range("k" & i). 제품정보
'선택적인 매개 변수.
블록 스케일.x = 1
블록 스케일.y = 1
블록 스케일.z = 1
회전각 = 0
'옵션 매개 변수 설정 (응용 범위에 값이 있다면).
if .range("m" & i).value <> vbnullstring then blockscale.x = .range("m" & i). 제품정보
if .range("n" & i).value <> vbnullstring then blockscale.y = .range("n" & i). 제품정보
if .range("o" & i).value <> vbnullstring then blockscale.z = .range("o" & i). 제품정보
if .range("p" & i).value <> vbnullstring 그 후 회전각 = .range("p" & i).value
'시트 데이터(insertion point, block name, scale Factor and rotation angle)를 사용하여 블록을 추가합니다.
' 0.0174532925는 반경으로도 변환하는 것입니다.
acadblock = acaddoc.modelspace.insertblock (insertionpoint, blockname,)을 설정한다.
blockscale.x, blockscale.y, blockscale.z, 회전각 * 0.0174532925)
끝 면
다음 것 i
끝으로
'call 추출
' 콜 updateattr
그림 지역에 있는 'zoom.
다운로드

'물품 출시.
acadblock = 아무것도 설정
acaddoc 설정 = 아무것도
acadapp = 아무것도 설정

'공정에 대한 사용자를 입력합니다.
msgbox "블록은 autocad에 성공적으로 삽입되었습니다!", vbinformation, "finished"

끝 이하
안녕하세요
 

Forum statistics

Threads
58,191
Messages
495,938
Members
103,104
Latest member
FabioFrontini

Members online

No members online now.

Back
Top