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/

Executar rotina lisp via visual basic

Dúvidas sobre VB para AutoCAD...

Moderador: Moderadores

Responder
Avatar do usuário
samu20ifnd
Novato
Novato
Mensagens: 4
Registrado em: Seg 07 Abr 2008 12:00:00 am

Executar rotina lisp via visual basic

Mensagem por samu20ifnd » Qui 10 Abr 2008 1:38:24 pm

Executar rotina lisp via visual basic
Se alguem souber como. :!:

Avatar do usuário
robmag
Bronze 1/3
Bronze 1/3
Mensagens: 100
Registrado em: Qua 24 Dez 2003 11:00:00 pm
Localização: Araraquara-SP
Contato:

Mensagem por robmag » Qui 10 Abr 2008 6:22:53 pm

samu20ifnd,

Até o AutoCAD 2005, um botão (VBA) para chamar uma rotina Lisp era feito assim:

- No menu Tools clicar em Customize>Toolbars;

- Na cx. de diálogo Customize, selecionar a guia Commands e o botão para assinar a macro;

- Na guia Button Properties, adicionar o seguinte código:

^C^CloadMacro

robmag

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

Perguntando...

Mensagem por cleyson » Qui 10 Abr 2008 7:05:27 pm

samu20ifnd

Explique o porque de você querer executar um lisp por VBA, qual a sua idéia ?

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
samu20infd2
Concreto
Concreto
Mensagens: 38
Registrado em: Sex 11 Abr 2008 12:00:00 am

Mensagem por samu20infd2 » Sex 11 Abr 2008 9:05:22 am

Irei explicar melhor:

A principio não queria utilizar o VBA do autoCAD, mas sim o Visual Basic 6 para executar as rotinas em lisp. Queria saber se é possível fazer algo do tipo. Queria saber também se é possível carregar um mapa .DWG através do Visual Basic 6. O motivo desse tipo de solução, não é um aplicativo que será utilizado por mim, mas para o cliente que me pediu esse trabalho. A idéia seria uma aplicação em VB6 que serviria de menu para execução de rotinas lisp, e o carregamento do map. Tudo isso por quê os usuários que irão utilizá-lo, vocês já conhecem, são pessoas que tem dificuldade em lidar com PCs. A idéia é facilitar o trabalho, pois o número de usuários será grande, e quanto mais rápido eles aprenderem a mecher melhor. Espero ter sido claro.

Um abraço a todos.

Avatar do usuário
samu20infd2
Concreto
Concreto
Mensagens: 38
Registrado em: Sex 11 Abr 2008 12:00:00 am

Mensagem por samu20infd2 » Sex 11 Abr 2008 11:25:30 am

Já estou conseguindo algum progresso.
Se alguem puder colcocar mais alguns exeplos em agradeceria:

Dim App As AcadApplication
Dim DWG As AcadDocument
Dim modelSpace As AcadModelSpace
Dim Entity As AcadEntity

Set App = New AutoCAD.AcadApplication
Set DWG = App.Application.Documents.Open("c:\dwgfile.dwg", True)
Set modelSpace = DWG.modelSpace

For Each Entity In modelSpace
(doe iets)
Next

App.Quit
Set DWG = Nothing
Set App = Nothing

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

Exemplo

Mensagem por cleyson » Sáb 12 Abr 2008 7:21:28 pm

Exemplo:
Access Atribuindo Circulos com Hachuria no CAD


'Tem que carregar a Biblioteca do AutoCad
'No meu caso AutoCad 2007 type Libary
'e Autodesk Map 2007
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
Dim entiCircle(0 To 0) As AcadEntity


Dim acadApp As AcadApplication
Dim model As AcadModelSpace
Dim entry As AcadLayer
Dim pt1(0 To 2) As Double
Dim i As Long
Dim pergunta As Boolean
pergunta = True
On Error Resume Next
'conecta o cad, nao esqueca de adicionar a referencia ao "autocad type(ou object) lybrary"
Set acadApp = GetObject(, "AutoCAD.Application.17")
If Err.number <> 0 Then
Err.Clear
Set acadApp = GetObject("", "AutoCAD.Application.17")
pergunta = False
End If
'Set acadApp = CreateObject("AutoCAD.Application.17")


'Seta o Model do Cad
If pergunta = True Then
If MsgBox("Deseja abrir um Arquivo Novo?", vbYesNo, "Aviso") = vbYes Then
Dim novo As AcadDocument
Set novo = acadApp.Application.Documents.Add 'Abre novo Arquivo
End If
End If


'Seta o Model do Cad
On Error Resume Next
Set model = acadApp.ActiveDocument.modelSpace 'vai pro modelspace
If Err.number <> 0 Then
MsgBox "A janela do AutoCAD não está ativada!" & vbNewLine & "Comando Cancelado!", vbCritical, "ERRO"
rotuloAguarde.Visible = False
Exit Sub
End If
'Cria o Layer Linha
Set entry = acadApp.ActiveDocument.Layers.Add(nomeLayer)


While Not rs.EOF

eixox = rs(9).value
eixoy = rs(10).value
delimitador() = Split(eixox, ".") 'Para Campo que estiverem no X
eixox = Trim$(delimitador(0))

'Trabalhando com Y
delimitador() = Split(eixoy, ".") 'Para Campo que estiverem no Y
eixoy = Trim$(delimitador(0))

pt1(0) = eixox
pt1(1) = eixoy

' Create the associative Hatch object in model space
Set hatchObj = model.AddHatch(acHatchPatternTypePreDefined, "SOLID", True)
Set entiCircle(0) = model.AddCircle(pt1, raio)
' Append the outerboundary to the hatch object, and display the hatch
hatchObj.AppendOuterLoop (entiCircle)
hatchObj.Evaluate
hatchObj.Layer = nomeLayer
hatchObj.color = cor
entiCircle(0).Layer = nomeLayer
entiCircle(0).color = cor

...


Precisando de ajuda procure também por cracksther pois ele tem mais estrada do que eu no VB, tenho uma apostila ótima de VBA, se quiser te mando
E-mail: [email protected]

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
cleyson
Prata 1/3
Prata 1/3
Mensagens: 430
Registrado em: Seg 19 Jun 2006 12:00:00 am

Dica

Mensagem por cleyson » Sáb 12 Abr 2008 7:24:06 pm

Veja também no :http://www.autolisp.com.br/autolisp/mod ... =0&thold=0

Sr FelixJm também pode te ajudar no VBA, tem alguns artigos deles em VB na seção de Artigos desse Site

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
samu20infd2
Concreto
Concreto
Mensagens: 38
Registrado em: Sex 11 Abr 2008 12:00:00 am

Mensagem por samu20infd2 » Seg 14 Abr 2008 8:51:08 am

Valew pela ajudar cleyson!
Ainda não deu tempo de testá-las,

Mas desde já agradeço!
Vlw abraço!

Responder