Extender Sample Lines

Sabe aquelas horas que voce precisa "extender" uma sample line até algum lugar, para que a seção mostre tudo o que voce quer?

Já reparou como pode ficar lento estrechar uma a uma na mão?

É... Eu também reparei... Bom, vamos tentar agilizar isso com o programinha abaixo:

(defun C:EXTENDSECTION (/ e1 e2 ss pt p2 d dmax align
            sta offset vertex v fun
)
  (
tbn:error-init nil)
  (
prompt "\nSelecione a polilinha até onde extender")
  (
setq e1 (vlax-ename->vla-object
         (ssname (ssget ":S" '((0 . "LWPOLYLINE")))
             0)))
  (
prompt "\nSelecione as sample lines")
  (
setq    ss (ssget '((0 . "AECC_SAMPLE_LINE"))))
  (
repeat (sslength ss)
    (
setq e2    (vlax-ename->vla-object (ssname ss 0))
      align (vlax-get-property
          (vlax-get-property e2 "Parent")
          "Parent")
      pt    (vlax-safearray->list
              (vlax-variant-value
               (vla-IntersectWith
            e1
            e2

            acExtendOtherEntity)))
      pt    (list (car pt) (cadr pt) 0.0)
      dmax 0)
    (
vlax-invoke-method align
      "StationOffset" (car pt) (cadr pt) 'sta 'offset)
    (
setq fun (if (> offset 0) > <)
      vertex nil)
     
   
    (
vlax-for v (vlax-get-property e2 "vertices")
      (
setq off (vlax-get-property v "stationoffset"))
      (
if (fun off dmax) (setq vertex v dmax off)))
     
    (
if vertex
      (vlax-put-property vertex "location"
    (vlax-3d-point pt)))
   
    (
ssdel (ssname ss 0) ss)
    )
  (
tbn:error-restore))


 

Link(s) da(s) subrotina(s) usada(s):
tbn:error-init, tbn:error-restore


Pra usar é simples:

Tenha um alinhamento com sample lines (é claro)
desenhe uma polilinha que servirá como referencia para esticar as sample lines

chame o comando ( após carregar a lisp, certo? ) EXTENDSECTION

ele irá pedir para selecionar essa polilinha, depois as seções.

Pronto.

Se você testou e gostou, deixe um comentário!!!
Se não gostou, deixe mesmo assim

Se você não sabe o que é a sample line, bem... leia os tutoriais de seções, hehehe

2 comentários:

  1. Olá galera.
    Bem estou com a versão 2011 e nao me lembro de precisar fazer isso nas outras versões..kkk, mas na 2011 dá pra fazer da seguinte forma:
    (Depois de fazer o alinhamento, definir as simples lines)
    Selecione uma delas, clique botão direiro e escolha a opção "simple line group properties", na aba "simple line" vocês vão encontrar uma tabela com dotas as seções, ai faz o seguinte:

    a)Selecione a primeira coluna da linha "left ofset", role a janela até o final e selecione "left ofset", de um clique em uma celula para edição, altere o valor e de um enter rsrsrs.
    Para cancelar a seleção, só dar um clique com a seta pra cima ou pra baixi, aquelas setas que tem entre a barra de espaço e o teclado numerico..rsrs

    Vocês podem fazer por intervalos também.
    Abraço a todos que leram esse comentário.

    ResponderExcluir
  2. ah, ta me gozando???

    hehehehe caraca, nem tinha percebido isso !!!!!

    muito boa a sua dica, gabaritou, hehehe

    ResponderExcluir