Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Resgatar o valor do fuso e hemisferio do dwg

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Resgatar o valor do fuso e hemisferio do dwg

Mensagem por zeluismc » Qui 06 Nov 2008 8:13:07 am

eu uso o AutoCAD map 3D 2008, no menu map--> Assign Global Coordinate System, nessa opção eu faço a setagem das coordenadas
Pergunta: depois de setagem, no vba tem como eu retornar o fuso, datum e o hemisferio em alguma variavel? :?:


Aproveitando esse topico tenho outra pergunta [off] eu também faço umas brincadeiras no MicroStation v8(outro sistema CAD) no AutoCAD tenho o comando Shell que serve para executar por exemplo aplicativos externos e no MicroStation V8 será que tem???, não consegui achar :?:

[/lsp]

Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Idéia ...

Mensagem por cleyson » Qui 06 Nov 2008 11:49:33 am

Bom dia Companheiro

Você poderia fazer algo no sentido de :

[lsp];Capturar o Código Assign Global Coordinate System
(setq nad (ade_projgetwscode)) [/lsp]

Passar de Parametro para o VBA
http://www.autolisp.com.br/autolisp/mod ... =0&thold=0



O Tratamento seria no VBA
Ex:
UTM84-21S

DATUM: WGS84
Fuso:21
Hemisfério: SUL


Procurei na NET como capturar os Valores diretamente no VB mas não encontrei nada, fica aí minha idéia


Para Conhecimento ...

Coordinate Transformation Functions
The coordinate transformation functions begin with ade_proj.
ade_projgetctgyname
Identifies the category that a coordinate system belongs to
ade_projgetinfo
Gets information about a projection system
ade_projgetwscode
Gets the coordinate system code for the work session drawing
ade_projlistctgy
Lists available coordinate system categories
ade_projlistcrdsysts
Lists available coordinate systems in a given category
ade_projptbackward
Computes new coordinates for a source point
ade_projptforward
Computes new coordinates for a destination point
ade_projsetdest
Sets the destination coordinate system
ade_projsetsrc
Sets the source coordinate system
ade_projsetwscode
Sets the coordinate system for the work session drawing


Atenciosamente
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson

Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Mensagem por zeluismc » Qui 06 Nov 2008 12:23:33 pm

cleyson o artigo fala de Lisp com Vba, de Lisp eu não sei nada....e fiquei "boiando" mais mesmo assism agradeço pela ajuda

Avatar do usuário
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Explicando ...

Mensagem por cleyson » Qui 06 Nov 2008 2:42:00 pm

Vamos Igual ao Jack Estripador ... por partes ...

Com o CAD Aberto Digite o Comando Vlide

Clique em File > New File

Cole o Codigo abaixo:
[lsp](defun c:invocarVBA()

;Capturar o Código Assign Global Coordinate System
(setq nad (ade_projgetwscode))

;Se não retornar Nada ...
(if (= nad il)
(progn
(Alert "Não existe Nenhum Sistema de Coordenada Definido!\nComando Cancelado!")
(exit)
);progn
(command "-VBARUN" "SubSistemaCoordenada" nad)
);if

);defun[/lsp]

Salve o Arquivo num Diretório a sua Escolha com o Nome invocarVBA (Ou um Nome a sua escolha)

*******************************************************************************

No VBA crie um Módulo e Cole o Código:

Código: Selecionar todos

Public sistemaCoordenada As String

Sub SubSistemaCoordenada()

'Captura o Valor Passado Pelo AutoLisp
sistemaCoordenada = ThisDrawing.Utility.GetString(False)

'Verifica Valor
If sistemaCoordenada = "UTM84-21S" Then
    MsgBox "Datum: WGS84" & vbNewLine & "Fuso: 21" & vbNewLine & "Hemisfério: Sul"
Else
    MsgBox "Sistema de Coordenada Inválido!", vbCritical, "Erro"
End If
  

End Sub
Nota: O Seu Arquivo .dvb dever ser carregado no Support File Search Path
Comando OP > File > Support File Search Path > Add > "Caminho" > Aplly

Para Testar ...
Digite AP no AutoCAD e Carregue o Arquivo invocarVBA
.lsp

Digite invocarVBA no Prompt e Teste a Aplicação ...

********************************************************************

Para Invocar Automaticamente o Arquivo .dvb você pode criar um arquivo chamado acad.dvb (Obrigatóriamente com esse nome) e colar o Arquivo abaixo:

Código: Selecionar todos

'      VBA Sample
'
'      Copyright (C) 1999, 2002 by Autodesk, Inc.
'
'      Permission to use, copy, modify, and distribute this software
'      for any purpose and without fee is hereby granted, provided
'      that the above copyright notice appears in all copies and
'      that both that copyright notice and the limited warranty and
'      restricted rights notice below appear in all supporting
'      documentation.
'
'      AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
'      AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
'      MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
'      DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
'      UNINTERRUPTED OR ERROR FREE.
'
'      Use, duplication, or disclosure by the U.S. Government is subject to
'      restrictions set forth in FAR 52.227-19 (Commercial Computer
'      Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
'      (Rights in Technical Data and Computer Software), as applicable.
'
Option Explicit

Sub ACADStartup()
    Call AcadApplication.LoadDVB("C:\Teste.dvb")
End Sub


(OFF)

Parabéns ao Sr Marcos e Neyton pelo Site ... está cada vez melhor ... pena que não sei nada de Web para ajudar ... estou me debatendo para aprender J2ME e J2SE ... :lol:


Atenciosamente
Cleyson Cloves do Carmo
Cuiabá - Mato Grosso
“Na morte que me sigam, pois não deixo ninguém a chorar”. Cleyson
“Na vida as horas passam e tudo se renova, não invoque a morte, amanhã é um novo dia”. Cleyson
“Deus fez os caminhos, o homem faz o destino” Cleyson

Avatar do usuário
zeluismc
Papel
Papel
Mensagens: 9
Registrado em: Ter 17 Jun 2008 12:00:00 am

Mensagem por zeluismc » Sex 07 Nov 2008 8:27:09 pm

Cleyson muito obrigado pela ajuda

Responder