Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Linha e texto que funciona parecido como as dimensões

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Indionei.matos
Madeira
Madeira
Mensagens: 13
Registrado em: Qua 16 Out 2019 9:54:56 am

Linha e texto que funciona parecido como as dimensões

Mensagem por Indionei.matos » Qua 08 Abr 2020 8:47:43 pm

Boa noite Pessoal.

Mais uma pergunta para os experientes de plantão.

Seguinte:

Quero fazer uma linha, polilinha, com um comprimento qualquer e que tenha um texto com o valor do comprimento dela no sempre no meio dela, mesmo que eu dê um Stretch na linha, ou clique e altere o tamanho. Sei que dá de fazer com bloco dinâmicos, mas no ZWCAD não dá de fazer Blocos dinâmicos, então quero ver se dá de fazer com uma rotina de altoLisp ou visual Lisps.

Um exemplo para vocês entendem melhor seria como as cotas, dimensões. Depois de criadas normalmente, eu posso clicar nelas alterando os pontos de referência das cotas que os textos sempre ficam no centro e alteram o valor automaticamente.

Seria isso a principio.

Obrigado à todos.
Atenciosamente:
Indionei C. de matos

Avatar do usuário
Carlos Fernando
Madeira
Madeira
Mensagens: 20
Registrado em: Sex 29 Dez 2017 4:17:25 pm

Re: Linha e texto que funciona parecido como as dimensões

Mensagem por Carlos Fernando » Dom 12 Abr 2020 2:12:34 pm

Indionei
Faça o seguinte:
-Crie um estilo de cota com as linhas de cota e de chamada suprimidas, assim só
o texto da cota vai aparecer;
-defina nesse estilo o tipo de posição da cota que vc quiser: superior, centralizada(como vc disse),etc
-defina a altura do texto, o layer, etc
-coloque esse estilo de cota como atual

Agora execute a rotina abaixo.Se vc configurou o estilo de cota como eu disse vai aparecer somente
o texto. Para fazer as mudanças dinamicas que vc disse selecione tudo (a polilinha e os textos) e
faça as mudanças que quiser nos vértices (mude apenas os vértices e não o ponto de controle do meio da polilinha)
Os textos devem acompanhar as mudanças e permanecerem
no local que vc definiu nas configuraçoes do estilo de cota.

Código: Selecionar todos

;Nome do comando: dimpol
;Objetivo: desenhar uma polilinha e colocar o comprimento para cada trecho
;de acordo com o estilo de cota atual para o formato de cota alinhada
;Autor: Carlos Fernando - 12/04/2020
(defun c:dimpol(/ osmode l)
    (vl-load-com)
    (setq osmode (getvar "osmode"))
    (command "_pline")
    (while (> (getvar "cmdactive") 0) (command pause))
    (setq l  (mapcar 'cdr(vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (entlast)))))
    (mapcar '(lambda (x y) (command "_dimaligned" x y y)) l (cdr l))
    (setvar "osmode" osmode)
    (princ)
)
Abraço

Responder