C3DMEMO - Atualizações

0 milhões de comentários
Então, já testou o C3DMEMO?

Editado 17-06-2015:
Agora o C3DMEMO também está no Autodesk Exchange Apps!!!


Ainda não? então testa!!!

Mas o que ele é mesmo? É um plugin para gerar memoriais descritivos de lotes ou subdivisões de áreas.

Roda no AutoCAD puro usando polilinhas e blocos atributados, ou no Civil 3D usando os Parcels.

Esta semana fiz algumas atualizações:
  • Possibilidade de descrever o lote em sentido horário ou anti-horário
  • Informações sobre segmento em arco: ângulo da corda, lado (direito ou esquerdo) e sentido (horário ou anti-horário) do segmento
  • Formatação de ângulos como Rumo.
Mas é fácil de usar? Se é!!!

Imagine um memorial assim:

LOTE 0: Urbano localizado na RUA C, e situado no Loteamento Residencial de propriedade de FULANO DE TAL, com uma área de 674,025 m² (seiscentos e setenta e quatro metros quadrados  e  três decímetros quadrados) e com perímetro de 117,604 m, conforme Levantamento Planimétrico executado em campo. Inicia-se a descrição do perídmetro do imóvel no marco 2 nas coordenadas N= 7.987.178,912 m e E= 784.320,868 m  deste confrontando ao LESTE com "LOTE 11" e seguindo por um azimute de 245°13' 22,429"  uma distância de 37,500 m chega-se ao marco 2 nas coordenadas N= 7.987.163,197 m e E= 784.286,821 m  deste confrontando ao OESTE com "RUA C" e seguindo por um azimute de 335°13' 22,429"  uma distância de 30,000 m chega-se ao marco 3 nas coordenadas N= 7.987.190,435 m e E= 784.274,248 m  deste confrontando ao OESTE com "RUA E" e seguindo por um azimute de 65°13' 22,429"  uma distância de 3,415 m chega-se ao marco 4 nas coordenadas N= 7.987.191,866 m e E= 784.277,349 m  deste confrontando ao NORTE com "RUA E" e seguindo por um azimute de 103°2' 51,110"  uma distância de 43,151 m chega-se ao marco 5 nas coordenadas N= 7.987.182,125 m e E= 784.319,386 m  deste confrontando ao LESTE com "LOTE 02" e seguindo por um azimute de 155°13' 22,429"  uma distância de 3,538 m chega-se ao marco 1 inicial desta descrição.

Note que a maior parte do texto é estática (a parte destacada em amarelo e que se repete a cada segmento do polígono), isto é, não muda. O restante é só preencher com os valores de cada lote.

Então dá pra criar uma template, de como o texto deve ser formatado e simplesmente indicar quais lotes devem usar esta template.

O programa permite justamente isso. Veja:

Começa com a lista de quadras:

Aí, cada quadra tem uma lista de lotes:


Por fim, cada lote tem uma lista de segmentos, que podem ser em arco ou retas:

Percebe?
Cada item que pode mudar é formatado de forma que o usuário pode escolher, na imagem acima, escolhi a propriedade Comprimento:
Na imagem ela aparece selecionada assim:

[Comprimento:(CaracSepDecimal:Virgula|CasasDecimais:3|Unidade:m|MostraUnidade:SimComEspaco|CaracSepMilhar:Ponto|FNumero:Numeral)]

Veja na imagem acima, isso pode ser modificado no quadro da esquerda. As propriedades são autoexplicativas. No fim, o resultado é o exemplo do início do post.

Ah, sim, o programa interpreta sozinho os confrontantes e lados. Até mesmo qual deles é o da frente!!

Dá pra gerar tabelas também, veja o tutorial aqui

Teste hoje mesmo!!!

Civil 3D - Ligar Cogo Points

0 milhões de comentários
Vamos voltar um pouco mais nas raízes deste blog, hehehe

Então, vamos escrever um programinha para resolver um pequeno problema:

Adicionar vértices em uma polilinha para que esta passe por Cogo Points do Civil 3D

Primeiro vamos ver como era a polilinha antes de processar:


Agora como ela ficará após processar:


Percebe a diferença?
Agora a polilinha passa pelos Cogo Points do Civil 3D

Utilidade disso???
Bem, imagine que você precise ligar os pontos de um eixo de estrada com 3 mil pontos...
Faz uma polilinha com muito menos que isso, passando pela "média" desses pontos e roda a lisp....
Seja criativo!!!!


Antes, vamos ver a receita do bolo:
  1. Pedir a seleção dos Cogo Points
  2. Pedir a seleção da polilinha
  3. Pedir uma distância de referência, para testar se o ponto é válido
  4. Em cada ponto, fazer:
    1. Obter a coordenada do cogo point
    2. Se a distância do ponto em relação à polilinha for maior que a distância pedida, pula pro próximo ponto
    3. Calcular a posição relativa do ponto na polilinha
    4. Armazenar esta posição e a coordenada do cogo point
  5. Ordenar os pontos da lista que foi obtida no looping acima
  6. Redefinir os vértices da polilinha, usando estes pontos
  7. Enfeitar o programinha
  8. Curtir o blog do neyton!!!!

Bem simples né?

Agora o código:

;|ADDVERTPL
  procura nos cogopoints selecionados os que poderão fazer parte da
  lista de vertices de uma polilinha 2d e adiciona vertices a esta pl
autor:
neyton luiz dalle molle
engenheiro civil
neyton@yahoo.com
http://tbn2.blogspot.com
licença de uso: free, mas mantenha os créditos.
|;


;liga as funções VL*
(vl-load-com)

;define uma nova função:
(DEFUN C:ADDVERTPL (/ SS PL LST ent vla pt pproj dist)
  ;controle de erros e undo e redo
  ;veja http://tbn2.blogspot.com para habilitar esta subrotina
  ;(tbn:error-init nil)

  

  ;pede a seleção de cogo points
  (SETQ SS (SSGET '((0 . "AECC_COGO_POINT"))))

  ;pede a seleção de uma polilinha 2d
  (SETQ PL (vlax-ename->vla-object (CAR (ENTSEL "\nSelecione a polilinha"))))

  ;pede a distancia de busca
  (setq dist (getdist "\nQual a distancia de busca <2>")
    dist (if dist dist 2))
  

  ;cria uma lista de coordenadas ((param (coordx cordy)) ...)
  (SETQ LST NIL)
  (
REPEAT (SSLENGTH SS)
  
    (
SETQ ;pega o primeiro ponto
          ENT (SSNAME SS 0)
      VLA (vlax-ename->vla-object ENT)

      ;calcula suas coordenadas
      PT  (LIST (vlax-get-property VLA "easting")
            (
vlax-get-property VLA "northing"))

      ;projeta o ponto na polilinha, usando p plano xy como referencia
      pproj   (VLAX-CURVE-GETCLOSESTPOINTTOPROJECTION PL PT '(0 0 1)))

    ;se a distancia do ponto projetado ao cogopoint for menor que uma distancia
    (IF    (< (DISTANCE PT pproj) dist)
      (
SETQ LST (CONS (LIST (VLAX-CURVE-GETPARAMATPOINT PL pproj)
                PT)
              LST)))

    ;passa pro proximo cogopoint
    (SSDEL ENT SS)
  )
 ;fim do repeat


  

  (SETQ ;ordena a lista
        LST (VL-SORT LST '(LAMBDA (A B) (< (CAR A) (CAR B))))

    ;monda uma lista de coordenadas '(x y x1 y1 x2 y2....)
    lst (APPLY 'APPEND (MAPCAr 'CADR lst))

    ;cria uma safearray da lista acima
    lst (VLAX-SAFEARRAY-FILL
          (VLAX-MAKE-SAFEARRAY
        VLAX-VBDOUBLE

        (CONS 0 (1- (LENGTH LST))))
          LST))
  ;faz a polilinha adotar as coordenadas colculadas
  (VLA-PUT-COORDINATES PL lst)

  ;reastaura o controle para o autocad
  ;(tbn:error-restore)
)

(
prompt
"ADDVERTPL carregado!!!
visite: http:\\\\tbn2net.appspot.com
"
)
(
princ)



Simples né?

Este programinha tem o intuito de mostrar como pode ser útil saber programar.... Imagine conectar os pontos "na mão"???

Curte aí!!!

LinkWithin

Related Posts Plugin for WordPress, Blogger...