• Este fórum é a tradução automática de www.cad3d.it/forum1 - a comunidade italiana de design. Vários termos não foram traduzidos corretamente.

Macro para adicionar nota em multifoil drw

IronCad

Guest
Boa tarde.
Estou tentando criar uma macro para automatizar o processo de adicionar uma nota específica a todas as folhas de um arquivo. Slddrw,
Eu gostaria que, lançando a macro para as folhas do arquivo que eu abri você adicionar uma nota.
Eu anexo o que eu percebi que eu não posso fazê-lo funcionar porque o sistema me dá erro de tempo de execução que eu anexo.

Obrigado que me pode ajudar.1732199434834.png
 

Anexos

ciao @ironcad Eu revi a sua macro, encontrei alguns erros, o principal foi que os métodos que você usou para lembrar as folhas são parte do documento da tabela (drawingdoc) enquanto você relembrá-los no documento genérico (objeto), na verdade eu recomendo que você ao escrever uma macro para substituir os dois objetos principais desta forma, então você também ativar o menu de métodos como você pressiona o ponto:
dim swapp como objeto tornou-se
dim swapp como sldworks. sldworks
'para a mesadim swdraw como objeto 'diventa
dim swdraw como sldworks.drawingdoc
'per a partedim swpart como objeto 'diventa
Dim swpart como sldworks. O que se passa?
"Sieme"dim swasm como objeto 'diventa
dim swasm como sldworks.assemblydoc



ad ogni ho modo riscritto tutto e ti ho inserito i commenti così capisci cosa sta facendo la macro nelle varie fasi.

dim swapp como sldworks. sldworks
dim swdraw como sldworks.drawingdoc
dim boolstatus como booleano
dim longstatus por muito tempo, anseios longos
dim sheetcount por muito tempo, i tanto
Dim swsheet como sldworks. folha


sub principal()

set swapp = aplicação. sldworks
set swdraw = swapp.activedoc

' Eu usei a folha ativa agoraset swsheet = swdraw.getcurrentsheet
vsheetnamearr = swdraw.getsheetnames
' Usei o nome da folha ativa agora.' Preciso dele no final para relatar após o ciclo de inserção da nota
«Ativar a folha de partida
dim nsheet as string
nsheet = swsheet.getname
'ciclo i nevoeiropara cada vsheetname em vsheetnamearr
bret = swdraw.activatesheet(vsheetname): debug.assert bret

dim mynote as object
dim myannotation como objeto
dim mytextformat as object
'Eu inseri a notaset mynote = swdraw.insertnote()<font size="72pts" style="b">bozza")
</font> 'Eu defino os recursos, localização, cor etc.se não mynote não é nada então
mynote.lockposition = false
mynote.angle = 0
boolstatus = mynote.setballoon(0, 0)

set myannotation = mynote.getannotation()

se não a miannotação não é nada então
longstatus = myannotation.setleader3(swleaderstyle_e.swno_leader, 0, verdadeiro, falso, falso, falso)


boolstatus = myannotation.setposition(0.115, 0,07, 0)

set mytextformat = swdraw.getuserpreferencetextformat(0)
mytextformat.italic = false
mytextformat.underline = false
mytextformat.strikeout = false
mytextformat.bold = true
mytextformat.escapement = 0
mytextformat.linespacing = 0,001
mytextformat.charheightinpts = true
mytextformat.typefacename = "século gótico"
mytextformat.widthfactor = 1
mytextformat.obliqueangle = 0
mytextformat.linelength = 0
mytextformat.vertical = false
mytextformat.backwards = false
mytextformat.upsidedown = false
mytextformat.charspacingfactor = 1
' Eu aplico os recursos à notaboolstatus = myannotation.settextformat(0, false, mytextformat)

'deseleziono qualsiasi selezione attiva e aggiorno la grafica
swdraw.clearselection2 verdadeiro
varrer.
terminar se
terminar se
próximo nome do vsheet
"Reativar a folha inicial, caso contrário permanece na folha finalbret = swdraw.activatesheet(nsheet)

end sub
 
Obrigado. @jenuary, especialmente para explicação.
Estou a tentar estudar bem como as macros para trabalhos sólidos estão escritas, mas estou um pouco adiantada.
você teria conselhos para me dar ou material para estudar para aprender este tema?

Obrigado outra vez.
 

Estatísticas do fórum

Tópicos
58,521
Mensagens
499,056
Membros
104,110
Último membro
ChristianR

Membros online

Nenhum membro online agora.
Voltar
Topo