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

API e montagem

Sbabba

Guest
Olá a todos.

para a tese estou trabalhando em uma montagem automática de uma série de componentes padrão em configurações diferentes.
Escrevi um programa c# que permite a seleção desses componentes e comandos dois quadros, obras sólidas e borda sólida, para a montagem dos modelos de tais componentes de acordo com a configuração escolhida.

sobre obras sólidas eu não tinha problema. Inseri dois andares entre eles ortogonal e um eixo no final de cada peça, de modo que eles podem ser acoplados juntos através de dois comandos de complanaridade e um de coaxialidade; este procedimento de acasalamento é iterata para cada par de componentes até que a montagem final seja criada, como os planos e eixos sempre têm o mesmo nome e swassembl seleciona planos e eixos com uma sintaxe do tipo "nome_piano_pt@.

para precisão os controles usados são:

selectbyid2() para a seleção de planos e eixos com os quais executar o acoplamento;
addmate3() para a adição de acoplamento planar e axial.

Agora estou a tentar fazer a mesma coisa com borda sólida, mas tenho dificuldades.

primeiro eu encontrei os comandos axialrelation3d() e planarrelation3d() para executar as acasalamentos, mas eu tenho muitas dúvidas sobre como ele pode fazer. o sdk de st4 diz (Por favor.) que é possível usar o comando planarrelation3d() para fazer duas faces paralelas de duas partes diferentes: em vez de duas faces, seria possível usar dois andares criados por mim, nomeado de uma forma muito precisa, de modo a aplicar o mesmo comando iterativo para os vários componentes?

No que diz respeito à coaxialidade, parece-me que não é possível, porque o comando axialrelation3d() faz dois eixos de duas partes cilíndricas, mas no meu caso não tenho apenas partes cilíndricas; Além disso, se não permitir, ao contrário do sw, inserir eixos ao prazer. Eu poderia facilmente resolver o problema usando um terceiro andar e uma terceira conspiração, mas eu queria ter certeza disso.

Infelizmente on-line há muito pouca informação sobre o uso de abelhas de borda sÃ3lidas com montagem, e o sdk de se é extremamente escasso se comparado com o de sw, então branco um pouco no escuro.

Agradeço antecipadamente a quem me pode dar até a menor ajuda!! e no extremit
 
Olá a todos.

para a tese estou trabalhando em uma montagem automática de uma série de componentes padrão em configurações diferentes.
Escrevi um programa c# que permite a seleção desses componentes e comandos dois quadros, obras sólidas e borda sólida, para a montagem dos modelos de tais componentes de acordo com a configuração escolhida.

sobre obras sólidas eu não tinha problema. Inseri dois andares entre eles ortogonal e um eixo no final de cada peça, de modo que eles podem ser acoplados juntos através de dois comandos de complanaridade e um de coaxialidade; este procedimento de acasalamento é iterata para cada par de componentes até que a montagem final seja criada, como os planos e eixos sempre têm o mesmo nome e swassembl seleciona planos e eixos com uma sintaxe do tipo "nome_piano_pt@.

para precisão os controles usados são:

selectbyid2() para a seleção de planos e eixos com os quais executar o acoplamento;
addmate3() para a adição de acoplamento planar e axial.

Agora estou a tentar fazer a mesma coisa com borda sólida, mas tenho dificuldades.

primeiro eu encontrei os comandos axialrelation3d() e planarrelation3d() para executar as acasalamentos, mas eu tenho muitas dúvidas sobre como ele pode fazer. o sdk de st4 diz (Por favor.) que é possível usar o comando planarrelation3d() para fazer duas faces paralelas de duas partes diferentes: em vez de duas faces, seria possível usar dois andares criados por mim, nomeado de uma forma muito precisa, de modo a aplicar o mesmo comando iterativo para os vários componentes?

No que diz respeito à coaxialidade, parece-me que não é possível, porque o comando axialrelation3d() faz dois eixos de duas partes cilíndricas, mas no meu caso não tenho apenas partes cilíndricas; Além disso, se não permitir, ao contrário do sw, inserir eixos ao prazer. Eu poderia facilmente resolver o problema usando um terceiro andar e uma terceira conspiração, mas eu queria ter certeza disso.

Infelizmente on-line há muito pouca informação sobre o uso de abelhas de borda sÃ3lidas com montagem, e o sdk de se é extremamente escasso se comparado com o de sw, então branco um pouco no escuro.

Agradeço antecipadamente a quem me pode dar até a menor ajuda!! e no extremit
eixos na borda sólida pode ser criado, o comando está escondido e para retirar. Eu recomendo que você use os sistemas de coordenadas que ao mesmo tempo contêm ambos eixos e planos.

então você pode entrar na relação que faz dois sistemas de coordenadas coincidir, e com um relacionamento posiciona a parte.

Você ainda pode seguir o caminho que você toma, em vez dos rostos que você terá que dar-lhes planos.

pesquisar os comandos "addplanar" e "addaxial", a documentação para programação de borda sólida é muito bem escrita Eu duvido que você está olhando no lugar errado.

Olá.
 
O conselho de usar o sistema de coordenadas parece-me muito bom. Alternativamente, para o eixo, proponho um esboço com uma linha.
para selecionar um item, o método mais simples (de acordo com minhas capacidades) é usar o índice, embora para algum objeto também funciona o nome:
seleção por nome: família("nome")
seleção do primeiro: família(0)
seleção do último: família(subjects.count()- 1 )

os planos de referência que eu acho que são sempre os primeiros, você pode determinar se o primeiro ou último esboço contém seus eixos.
para programação com borda sólida Eu sugiro os seguintes links, se você já não os conhece:
Sespy: http://solidedgespy.codeplex.com/Diário http://www.jasonnewell.net/
 
Obrigado pelas respostas!

Desculpa o atraso, tive o último exame antes da formatura e ele levou-me muito! Agora eu posso focar totalmente na tese:)

A ideia do sistema de coordenadas parece grande! Estou tentando usá-lo, mas encontro dificuldades.

Tomei como base Isto é o que guia, então reescrever os comandos para c#.

Agora, eu abri dois arquivos de montagem que eu tenho que combinar os sistemas de coordenadas, eles são "seassy1" e "seassy2", e eu adquiri o sistema de coordenadas com esses comandos:
Código:
seassy1cos = seassy1.coordinatesystems.item(2);
seassy2cos = seassy2.coordinatesystems.item(2);
item(2) porque o primeiro é o padrão, o segundo é o que eu criei.

o guia então diz para usar o comando "getorientation()" para obter os "detalhes do sistema de coordenadas".
Código:
seassy1cos.getorientation(axo, ayo, azo, axr, ayr, azr);
Mas aqui encontro um erro. estudo visual aponta que dois parâmetros estão faltando no comando, que seria "relativetoparent" e "zfirstrotation" ( http://dl2.plm.automation.siemens.c...edgepart~coordinatesystem~getorientation.html )
Eu não entendo exatamente quais parâmetros é, no sentido de que o estudo visual na ajuda da compilação me diz isso
err.jpgE não sei o que é "type.missing". Além disso, de acordo com a página de comando obter orientação no site de siemens, cada parâmetro deve ser opcional, e para isso o guia, Eu acho, você não traz todos eles, mas parece que eles não são nada opcionais na realidade :d

Eu tentei voar e ir mais longe, para concluir algo, então eu ainda segui o guia que neste momento quer extrair os planos que definem o sistema de coordenadas. faz isso com o comando "coordinatesystem.plane()" que quer parameter a constante indicando o plano que você quer extrair, que eu encontrei Aqui.

Código:
assyxyplane = seassy1cos.plane (secoordsysxyplane);
o problema é que o estudo visual ainda não está feliz, e me diz que "a propriedade indexada solideedgepart.coordinatesystem.plane tem argumento não-opcional que deve ser fornecido". Não entendo. o parâmetro para fornecer é apenas um, a constante que indica o plano, e também na compilação automática vs me pergunta apenas um... o que você quer dizer com "parâmetro não-opcional" que eu não estaria dando a ele?

Sempre que passo um passo em frente, recuo dois... É absurdo porque tenho certeza que é uma coisa muito simples, mas no momento parece impossível!

Agradeço antecipadamente por qualquer ajuda que me possa dar. Obrigado também pelo conselho de espião de borda sólida, realmente útil!
 
na borda sólida guia os parâmetros de getorientation indicam todos eles como "variant" para que eu não se preocupar muito e inserir duas variáveis deste tipo.

Eu tentei no vb6 e o seguinte código funciona, infelizmente eu não programa em c assim eu não posso ajudá-lo se eu não aconselho você a perguntar no fórum onde você encontrou o código que você está falando.
Código:
 dim objapp como solidedgeframework.application
dim objasm como solidedgeassembly.assemblydocument

dim piano como solidedgegeometry. rosto

set objapp = getobject(, "solidedge.application")
set objasm = objapp.activedocument

set piano = objasm.coordinatesystems(2).plane(secoordsysxyplane)
 
Obrigado pela resposta rápida, agora eu tento! o fato de que é em vb não é um problema, tanto c# é muito semelhante!

No entanto, eu descobri a razão para o primeiro erro, o do getorientation(). quer alguns parâmetros como "objeto" e eles têm de ser definidos, então a sintaxe correta é "getorientação (out axo, out ayo, out azo, out axr, out ayr, out azr);" com axo...azr declarado objeto, e não dobro como esse guia fez (que, portanto, eu me pergunto como poderia trabalhar :d).

Obrigado novamente:)
 
Consegui! Em suma, quase :d

depois de algumas peripécias escrevi este código, que pode perfeitamente alinhar os sistemas de coordenadas de duas peças, mas apenas aqueles! Eu explico.

Eu começo por inserir um número variável de componentes (mínimo 5, max 8) em uma montagem que eu crio no momento. Estes componentes são todos montagem à parte de um .par. a função de montagem é única e é chamada várias vezes em um ciclo de modo a combinar todos os componentes necessários. Eu sei a ordem de inserção dos componentes da montagem, que é a mesma em que eles serão ordenados, então para a etapa da função uma variável "c" que indica a posição na ordem, de modo que o código se funde de vez em quando o componente c-th com o c-th + 1.
Código:
//mi conectar ao conjunto criado para a exibição da montagem
seassy = application.activedocument;

//creo a ocurrence relativa aos dois componentes
seocc1 = seassy.occurrences.item(c);
seocc2 = seassy.occurrences.item(c+1);

//Eu tomo o sistema de coordenadas de mim criado para cada componente. somente para a primeira montagem será número (2)
se (c) 1)
(')
seocc1cos = seocc1.occurrencedocument.coordinatesystems.item(2);
?
♪
(')
seocc1cos = seocc1.occurrencedocument.coordinatesystems.item(3);
?

seocc2cos = seocc2.occurrencedocument.coordinatesystems.item(2);


//Eu compro detalhes do sistema de coordenadas de mim criado
seocc1cos.getorientation(out a1xo, out a1yo, out a1zo, out a1xr, out a1yr, out a1zr);
seocc2cos.getorientation(out a2xo, out a2yo, out a2zo, out a2xr, out a2yr, out a2zr);


//Compro os planos que compõem o sistema de coordenadas que criei
occ1xyplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysXYPlane];
occ1yzplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysYZPlane];
occ1zxplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysZXPlane];

occ2xyplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysXYPlane];
occ2yzplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysYZPlane];
occ2zxplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysZXPlane];


//cancello la relazione ground dei due componenti
seocc1.relations3d.item(1).delete();
seocc2.relations3d.item(1).delete();

//acuisisco le relazioni del pezzo
serels3d = seassy.relations3d;


//creo un reference fra il pezzo e il piano ed aggiunge la relazione planare
serefocc1 = seassy.createreference(seocc1, occ1xyplane);
serefocc2 = seassy.createreference(seocc2, occ2xyplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);

serefocc1 = seassy.createreference(seocc1, occ1yzplane);
serefocc2 = seassy.createreference(seocc2, occ2yzplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);

serefocc1 = seassy.createreference(seocc1, occ1zxplane);
serefocc2 = seassy.createreference(seocc2, occ2zxplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);
Nota: quando eu adquirir o sistema de coordenadas eu coloquei um se {} porque todos os componentes montam verticalmente um acima do outro, então de vez em quando eu tomo o sistema de coordenadas do abaixo e junte-o ao da peça acima. o primeiro componente, no entanto, tem apenas um sistema de coordenadas criadas por mim, porque ser sempre o primeiro nunca terá a necessidade de estar conectado com 2 componentes, mas apenas com um que vai ficar sobre ele. É por isso que o faço.


agora o código funciona porque os dois primeiros componentes são montados perfeitamente, o problema surge no segundo ciclo. ainda faz a parte inicial sem problemas, mas dá erro quando chega ao momento de criar a referência e, em seguida, fazer o acoplamento. em particular ele vai errado em:
Código:
serefocc1 = seassy.createreference(seocc1, occ1xyplane);
Pensei que talvez fosse porque "serefocc1" não foi inicializado para "null", mas também dessa forma comete um erro. Eu pensei que talvez fosse capaz de manter as referências antigas, então eu tentei fazer a segunda montagem com uma variável diferente, como "serefocc3", mas também comete um erro assim.

claramente para a segunda montagem "seocc1" é um componente diferente de antes, em particular é o segundo que eu reuni anteriormente (o que antes era "seocc2"), e occ1xyplane é o plano xy retirado de seu sistema de coordenadas.


Não entendo qual é o problema, e é definitivamente uma vantagem sólida. Eu obviamente sinto falta de algo sobre como as ocorrências, a referência e a creatireference(), mas eu não entendo o que pode ser.

Alguém tem uma ideia do que o problema pode ser? Eu praticamente acabaria isto!

Agradeço novamente pela atenção, você é muito gentil:
 
Que tipo de erro está a sair de ti?

de uma leitura rápida do seu código o primeiro componente não está ligado a nada e, portanto, capaz de se mover.
Seria bom deixá-lo a relação terrestre. Isto é verdade em todas as situações, o componente principal deve ser ligado ao chão.

Olá.
 
Obrigado pela resposta.

então eu percebi um erro, no sentido de que desde que todo esse código é chamado várias vezes de fato é como se fosse em um ciclo, então em cada vez que eu tentei eliminar as relações das duas peças que estava montando naquele tempo, mas claramente um dos dois já tinha sido montado antes e, portanto, o relatório de terra já tinha sido removido anteriormente.

Modifiquei o código para remover as restrições em todas as peças, exceto a primeira vez que a função é chamada.
Eu também inicializei para "null" todas as variáveis para eliminar possíveis informações residuais.

agora, depois de inicializar para null, o programa ainda monta a primeira e segunda peça, então quando a função se repete para a montagem do segundo com o terceiro que bloqueia na segunda "critereference", que com o plano yz. O erro é este
err.jpgÉ tão genérico que eu não consigo descobrir onde você está errado, então eu disse que tenho certeza que estou perdendo algo no método da criaçãoreference(), o problema é que eu não entendo o que... além da primeira criaçãoreference() com o plano xy faz.

Talvez eu tente explodir esse componente e seguir para o próximo, talvez seja um problema de modelo.

Obrigado e olá!
 
Editar: Eu tentei montar as duas peças usando os dois sistemas de coordenadas e eu não tenho nenhum problema com isso, então as peças não pensam que eles têm problemas. cada vez mais incompreensível :d


Este é o código atual, em comparação com antes de eu apenas modificar a eliminação da ligação de terra nos componentes.

Código:
//mi conectar ao conjunto criado para exibir a prótese
seassy = application.activedocument;

//creo a ocurrence relativa aos dois componentes. c inicialmente vale 1 e é aumentado para cada chamada desta função
seocc1 = seassy.occurrences.item(c);
seocc2 = seassy.occurrences.item(c+1);

//Eu tomo o sistema de coordenadas de mim criado para cada componente. somente para a primeira montagem será número (2)
se (c) 1)
(')
//cancel a relação de terra de todos os componentes, exceto o primeiro, que deve permanecer fixo
int countocc = seassy.occurrences.count;
int a = 2;

(a <= countocc)
(')
seassy.occurrences.item(a).relations3d.item(1). delete();
a++;
?
seocc1cos = seocc1.occurrencedocument.coordinatesystems.item(2);
?
♪
(')
seocc1cos = seocc1.occurrencedocument.coordinatesystems.item(3);
?

seocc2cos = seocc2.occurrencedocument.coordinatesystems.item(2);

//Eu compro detalhes do sistema de coordenadas de mim criado
seocc1cos.getorientation(out a1xo, out a1yo, out a1zo, out a1xr, out a1yr, out a1zr);
seocc2cos.getorientation(out a2xo, out a2yo, out a2zo, out a2xr, out a2yr, out a2zr);

//Compro os planos que compõem o sistema de coordenadas que criei
occ1xyplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysXYPlane];
occ1yzplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysYZPlane];
occ1zxplane = seocc1cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysZXPlane];

occ2xyplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysXYPlane];
occ2yzplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysYZPlane];
occ2zxplane = seocc2cos.plane[SolidEdgePart.CoordinateSystemFeatureConstants.seCoordSysZXPlane];


//acuisisco le relazioni del pezzo
serels3d = seassy.relations3d;

//creo un reference fra il pezzo e il piano ed aggiunge la relazione planare
serefocc1 = seassy.createreference(seocc1, occ1xyplane);
serefocc2 = seassy.createreference(seocc2, occ2xyplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);

serefocc1 = seassy.createreference(seocc1, occ1yzplane);
serefocc2 = seassy.createreference(seocc2, occ2yzplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);

serefocc1 = seassy.createreference(seocc1, occ1zxplane);
serefocc2 = seassy.createreference(seocc2, occ2zxplane);
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint);
 
Eu também tentei mudar as peças, sempre pregado na criação de referência entre a peça e seu plano yz, independentemente do sistema de coordenadas ou da peça que eu tomo.

quando ele faz para o primeiro das peças que funciona, com qualquer outro acidente, ainda com o plano xy não dá problemas e os sistemas de coordenadas foram construídos da mesma maneira. Não entendo. .
 
em vb6 é assim que eu faria, e funciona.

Olá.
Código:
sub-monta() privado

dim objapp como solidedgeframework.application
dim objasm como solidedgeassembly.assemblydocument

dim objocc1 como solidedgeassembly.occurrence
dim objocc2 como solidedgeassembly.occurrence

dim objocc1cs como solidedgepart.coordinatesystem
dim objocc2cs como solidedgepart.coordinatesystem

dim objocc1xyplane como solidedgegeometry. rosto
dim objocc1yzplane como solidedgegeometry. rosto
dim objocc1zxplane como solidedgegeometry. rosto
dim objocc2xyplane como solidedgegeometry. rosto
dim objocc2yzplane como solidedgegeometry. rosto
dim objocc2zxplane como solidedgegeometry. rosto

dim xyzpoints1(1 a 6) como duplo
dim xyzpoints2(1 a 6) como duplo

dim objocc1ref como solidedgeframework.reference
dim objocc2ref como solidedgeframework.reference

set objapp = getobject(, "solidedge.application")
set objasm = objapp.activedocument

para cada ocorrência em objasm.occurrences

se event.index <> objasm.occurrences.count então

set objocc1 = ocorrência
set objocc2 = objasm.occurrences.item(objocc1.index + 1)

para i = objocc2.relations3d.count para 1 etapa -1
objocc2.relations3d(i). excluir
Próximo eu

set objocc1cs = objocc1.occurrencedocument.coordinatesystems(2)
set objocc2cs = objocc2.occurrencedocument.coordinatesystems(3)

chamar objocc1cs.getorientation(xyzpoints1(1), xyzpoints1(2), xyzpoints1(3), xyzpoints1(4), xyzpoints1(5), xyzpoints1(6)))
chamar objocc2cs.getorientation(xyzpoints2(1), xyzpoints2(2), xyzpoints2(3), xyzpoints2(4), xyzpoints2(5), xyzpoints2(6)))

set objocc1xyplane = objocc1cs.plane(secoordsysxyplane)
set objocc1yzplane = objocc1cs.plane(secoordsysyzplane)
set objocc1zxplane = objocc1cs.plane(secoordsyszxplane)

set objocc2xyplane = objocc2cs.plane(secoordsysxyplane)
set objocc2yzplane = objocc2cs.plane(secoordsysyzplane)
set objocc2zxplane = objocc2cs.plane(secoordsyszxplane)

set objocc1ref = objasm.createreference(objocc1, objocc1xyplane)
set objocc2ref = objasm.createreference(objocc2, objocc2xyplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)

set objocc1ref = objasm.createreference(objocc1, objocc1yzplane)
set objocc2ref = objasm.createreference(objocc2, objocc2yzplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)

set objocc1ref = objasm.createreference(objocc1, objocc1zxplane)
set objocc2ref = objasm.createreference(objocc2, objocc2zxplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)

terminar se

próxima ocorrência

end sub
 
Adeus!

seu código é praticamente como o meu, na verdade também meus trabalhos com o primeiro conjunto.

na segunda montagem executa o addplanar no primeiro par de andares (qualquer que seja: xy, yz, zx), então quando eu criar novamente referência para chamar pela segunda vez o addplanar sempre trava na criação de referência. e travar independentemente do piso que você usa!

Ou seja, se eu fizer primeiro o xy e depois o yz:
Código:
 set objocc1ref = objasm.createreference(objocc1, objocc1xyplane)
set objocc2ref = objasm.createreference(objocc2, objocc2xyplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)

set objocc1ref = objasm.createreference(objocc1, objocc1yzplane)
set objocc2ref = objasm.createreference(objocc2, objocc2yzplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)
fa l'xy ma crasha sull'yz, cioè seu "set objocc1ref = objasm.createreference(objocc1, objocc1yzplane)"

Mentre se smudança l'ordine facendo prima l'yz e poi l'xy:
Código:
 set objocc1ref = objasm.createreference(objocc1, objocc1yzplane)
set objocc2ref = objasm.createreference(objocc2, objocc2yzplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)

set objocc1ref = objasm.createreference(objocc1, objocc1xyplane)
set objocc2ref = objasm.createreference(objocc2, objocc2xyplane)

call objasm.relations3d.addplanar(objocc1ref, objocc2ref, false, xyzpoints1, xyzpoints2)
faz o yz mas trava no xy, "set objocc1ref = objasm.createreference(objocc1, objocc1xyplane)"

praticamente sempre trava na segunda referência, enquanto o primeiro sempre consegue criá-lo, independentemente dos planos que eu uso! Tentei com zx, o mesmo discurso.

Não percebo como é. Porquê no segundo?
 
em seu código escreva:
Código:
serels3d.addplanar(serefocc1, serefocc2, false, constrainingpoint, constrainingpoint)
na prática use o mesmo ponto (ponto de convergência) para a orientação e eu não acho que pode funcionar.
os dois pontos devem estar relacionados com os dois rostos que o dão como parâmetro.

no meu código de fato use xyzpoints1 e xyzpoints2

verificação
 
Ok agora eu conserto, mas ele não trava em addplanar mas em createreference, então eu não acho que é por isso.
 
Ok agora eu conserto, mas ele não trava em addplanar mas em createreference, então eu não acho que é por isso.
Acredito que estamos criando relacionamentos aparentemente válidos que criam problemas para os próximos.
você verificou os relatórios criados em que estado eles são?

Olá.
 
Obrigado. Fiz o que me disseste, mas infelizmente, acho sempre o mesmo erro.

Onde a vejo? pelo espião não consigo encontrar a voz "referência".

Lamento aproveitar isso, mas posso tentar passar os 3 componentes que estou a montar? Talvez vejas o erro em que ando a comer a minha cabeça durante três dias. .

o problema é ao criar a segunda referência entre o terceiro sistema de coordenadas da peça 2 (sc_join_upper) e a peça 2.

Muito obrigado, és muito gentil.
 

Anexos

Obrigado. Fiz o que me disseste, mas infelizmente, acho sempre o mesmo erro.

Onde a vejo? pelo espião não consigo encontrar a voz "referência".

Lamento aproveitar isso, mas posso tentar passar os 3 componentes que estou a montar? Talvez vejas o erro em que ando a comer a minha cabeça durante três dias. .

o problema é ao criar a segunda referência entre o terceiro sistema de coordenadas da peça 2 (sc_join_upper) e a peça 2.

Muito obrigado, és muito gentil.
Eu pretendo olhar para as relações entre as peças dentro do cad não na programação.
No entanto, os relatórios encontram-nos em documentos de ocorrência.relações3d

amanhã. Eu olho para ele agora eu não tenho vb

Olá.

p.s.: que versão de borda sólida você usa e com que mp? Talvez seja um beijo que foi então resolvido e você só precisa de uma atualização.
 
a versão é o st5, Eu não sei por que meu é a versão acadêmica, mas eu sei que é o 105.00.00.102

Eu pensei sobre isso eu mesmo, eu estou baixando st6 e depois que eu experimentá-lo!
 

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