• 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.

Problemas com macros na seleção e realização de conexões em um modelo Solidworks

OSCAR$

Guest
Bom dia a todos.
Fiz uma série de elementos, 32, numa chapa e preciso de os recolher na área de contacto com isto.
para fazer isso eu fiz uma macro simples, como o número de elementos pode ser variável e eu usei um ciclo para.
nem todos os acessórios são feitos, mas apenas 6.
as bordas a serem conectadas são selecionadas pelo comando seletivo2, como eu conheço suas coordenadas e eu acho que é a única função disponível que usa este método, para mim necessário.
pesquisando na rede eu descobri que o método de seleção tem "problemas", a imagem deve ser suficientemente ampliada e entender todos os elementos a serem conectados, o que eu fiz.
Eu tentei usar a função Perfil de recursos3 dentro e fora do ciclo, no primeiro caso a macro cria apenas o primeiro 6, enquanto no segundo combina alguns elementos.
raggio variabile - Copia.JPGraggio variabile - Copia.JPGdi seguito il programma in vba, sto usando solidworks 2015.

opção explícita
dim swapp como sldworks. sldworks
dim parte como sldworks.modeldoc2
dim boolstatus como booleano
dim longstatus por muito tempo, anseios longos
dim swmodview como sldworks.modelview

sub principal()

set swapp = aplicação. sldworks

set part = swapp.activedoc
set swmodview = part.activeview
dim passo, i as double
dim delta_y, x_0, z como duplo
x_0 = 159.26 / 1000
z = -1 / 1000
dim x_angle, y_angle como duplo
x_angle = -45
I_angle = 0

para i = 0 a 7
Passo = (3.16 / 1000)
delta_y = (-5.5 / 1000) + (i * Passo)
boolstatus = part.extension.selectbyid2("", "edge", x_0, delta_y, z, true, 1, nothing, 0)
Próximo

dim radiiarray0 como variante
dim radiis0 como duplo
dim dist2array0 como variante
dim dists20 como duplo
dim conicrhosarray0 como variante
dim conirhos0 como duplo
dim setbackarray0 como variante
dim setbacks0 como duplo
dim pointarray0 como variante
dim points0 como duplo
dim pointdist2array0 como variante
dim pointdist20 como duplo
dim pointrhoarray0 como variante
dim pointsrhos0 como duplo
radiiarray0 = radiis0
dist2array0 = dists20
conicrhosarray0 = conirhos0
setbackarray0 = setbacks0
pontos0
pointdist2array0 = pontosdist20
pointrhoarray0 = pontos
dim myfeature como sldworks. recurso
set myfeature = part.featuremanager.featurefillet3(195, 0.001, 0#, 0, 0, 0, 0, (radiiarray0), (dist2array0), (conicrhosarray0), (setbackarray0), (pointarray0), (pointdist2array0), (pointrhoarray0))

end sub
 
oi, eu colidi com a seleção várias vezes, o problema do zoom é real, e há a solução, porque com as coordenadas corretas você não deve ter problemas, é a maneira mais segura de selecionar.
antes de digitar selectbyid
part.setpickmode()

deve evitar selecionar entidades próximas às coordenadas de sua borda
 
oi, eu colidi com a seleção várias vezes, o problema do zoom é real, e há a solução, porque com as coordenadas corretas você não deve ter problemas, é a maneira mais segura de selecionar.
antes de digitar selectbyid
part.setpickmode()

deve evitar selecionar entidades próximas às coordenadas de sua borda
Olá, obrigado pela sua ajuda.
continuar a não trabalhar:
  • convénio Perfil de recursos3 dentro do ciclo combina alguns elementos
  • convénio Perfil de recursos3 fora, não funciona porque alguns elementos não podem sequer conectá-los usando o comando manual, por isso não faz um, nem pode fazer os outros.
  • por Perfil de recursos3 internamente od esternamente ao ciclo mudança due parametri do comando seletivo2
selectbyid2("", "edge", x_0, delta_y, z, false, 1, nada, 1)
selectbyid2("", "edge", x_0, delta_y, z, true, 1, nothing, 0)
  • part.setpickmode está sempre dentro do ciclo
  • durante a execução do programa a janela macro está aberta e às vezes cobre o modelo, você pode mudar algo?
raggio variabile - 2.JPGComo você pode ver, o elemento 7 não está conectado e os dois precedentes, unidos.
 
nada muda se a área gráfica estiver coberta.
você também deve girar o modelo junto com a macro para testar
 
o raio máximo aplicável para essas bordas é de 0,7 mm, com 1 mm não gira o raio da terceira borda em diante.
 
simplesmente da função "acordo", não pode fazer isso?
você pode selecionar todas as bordas na placa inferior, a partir da barra / homem que aparece para você assim que você clicar em um deles:
 

Anexos

  • RACCORDA TUTTI.jpg
    RACCORDA TUTTI.jpg
    102 KB · Visualizações: 12
simplesmente da função "acordo", não pode fazer isso?
você pode selecionar todas as bordas na placa inferior, a partir da barra / homem que aparece para você assim que você clicar em um deles:
Olá, obrigado por responder.
Eu tentei, mas não funciona, ele também seleciona outros que não batem em nada.
mais do que qualquer outra coisa que eu estou interessado em executá-lo através de macro para precisar variar o número de itens.
 
Olá, obrigado por responder.
Eu tentei, mas não funciona, ele também seleciona outros que não batem em nada.
mais do que qualquer outra coisa que eu estou interessado em executá-lo através de macro para precisar variar o número de itens.
muito provável, como eles já escreveram acima, que o problema é o raio muito largo que se cruza excessivamente com os adjacentes (por curiosidade, tentar reduzi-lo até um valor que é aceito).
essa função coleta todas as bordas encontradas entre as extrusões verticais e a parte inferior; Se você não precisa de alguém, você pode desmarcá-las individualmente clicando na "linha fantasma" dessa borda.

mas repito, você não pode forçar o sistema com raios incompatíveis. não na mesma função, pelo menos
 

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