Boa tarde, pessoal!
Estou fazendo um estudo de volumes para uma estrada e estou com a seguinte situação:
Eu preciso descobrir uma maneira de fazer com que o civil identifique se uma superfície está a menos de 3 metros (horizontalmente) de um determinado ponto na minha seção, ou seja:
- Se a superfície estiver a menos de 3 metros, disparar LinkSlopeToSurface (-2%);
- Se a superfície estiver a mais de 3 metros, disparar LinkWidthAndSlope (-2%, 3,00m) + LinkSlopeToSurface (vertical).
No entanto, a subassembly mais próxima para criar essa regra é a ConditionalHorizontalTarget, porém, ela só aceita como targets polylines, feature lines ou alinhamentos. Não consigo usar superfícies como targets.
Nas imagens em anexo, existe uma imagem chamada "Situação normal" que representa a montagem de seção quando o terreno se encontra a mais de 3 metros de distância do ponto de disparo, e a imagem "Situação problemática" representa a situação que eu quero corrigir, pois, nesse caso, eu preciso que o disparo do link vá apenas até o ponto marcado de verde na imagem.
Alguém sabe alguma gambiarra para conseguir atingir esse meu objetivo?
SITUAÇÃO NORMAL
SITUAÇÃO PROBLEMATICA
Olá @jlschons
O titulo do post foi editado para facilitar o encontro do tema por outros usuários (por @clacampos)
Original: [ConditionalHorizontalTarget com target em surface? ]
a melhor forma de resolver é utilizando o subassembly composer
Criando um ponto que com Delta X on Surface, e aplicando alicando um Decision, utilizando as informações vertical e horizontal desse ponto com a regra que deseja . Os elementos nativos possuem limitações, por isso o subassembly composer é disponibilizado junto com o Civil 3D, para situações como essa.
Caso deseje se especializar abaixo deixo um curso de subassembly Composer como recomendação.
https://poloeduca.com/capacitacoes/projetos-inteligentes-com-subassembly-composer/
De fato, quando se trata de condições mais complexas, as subassemblies originais do Civil 3D são muito limitadas, principalmente quando se trata de condicionais (IF/SE). Tenho pouquíssima experiência em Composer, só fiz seções mais simples (meios-fios e canaletas de drenagem), mas vou testar com as tuas dicas.
Nunca procurei um curso sobre Composer, pois eu nem sabia que existia, já que é um conteúdo bastante nichado. Vou dar uma olhada e se me interessar eu faço!
Oi, @jlschons!
De fato, o Subassembly Composer vai te permitir ter esse subassembly especial caso você precise fazer isso outras vezes. Tem alguns materiais gratuitos no Youtube que você pode dar uma olhada para ter uma ideia, o que costumo indicar é a playlist do Jeff Bartels "Subassembly Composer "Quick Start" Training".
Agora, você pode:
1) Criar uma feature line a partir do seu alinhamento
2) Criar feature lines de offset para cada lado com o comando Create Feature Line from Stepped Offset, na distância máxima de 3 metros (ponto verde da figura que você enviou)
3) Atribuir a elevação do terreno natural nas feature lines de offset
4) Configurar a feature line como target no corredor no subassembly ConditionalHorizontalTarget
5) Se passar de 3 metros você insere no assembly os subassemblies apropriados com os parâmetros. A mesma ideia para o que for menor que 3 metros.
Com isso você terá uma feature line paralela ao corredor, na elevação do terreno. Pode funcionar. Abs!
@jlschons a vantagem maior é poder utilizar os operadores: IF, AND e OR junto das API Functions que extraem informações dos elementros criados.
https://help.autodesk.com/view/CIV3D/2024/ENU/?guid=GUID-FC2ED292-C1EB-4B2A-B4B5-C8654529FB00
Para o que pretende fazer utilize bastante os elementos auxiliares, inclusive o intersection point que vai ajudar com o que deseja.
Já vi alguns vídeos do Jeff Bartels, são ótimos!
O workflow que tu sugeriu não vai funcionar no meu caso porque o offset que eu teria que dar nas feature lines não é constante, pois o terreno natural é variável ao longo do corredor, então, as vezes o talude está mais perto da pista e as vezes mais longe, é por isso que eu preciso determinar o parâmetro "max distance".
De qualquer forma, muito obrigado pela ajuda!
Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.