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/

Facilitar trabalho com pontos no autocad!!!!

Dúvidas sobre o AutoCAD...

Moderador: Moderadores

Avatar do usuário
Wilson_ecv
Bronze 1/3
Bronze 1/3
Mensagens: 116
Registrado em: Seg 18 Out 2004 12:00:00 am
Localização: Florianópolis-SC

Mensagem por Wilson_ecv » Seg 24 Jan 2005 3:04:06 pm

JÁ ESCLARECI MINHA DUVIDA SOBRE O MODO DE EDITAR OS PONTOS EM .TXT OK!!!!!
VALEU!!!!!!

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Seg 24 Jan 2005 3:07:24 pm

Wilson escreveu:

Cara, vc pode explicar melhor esse esquema de POLE#1!!!!!
Por acaso se eu escrever as coordenadas do modo q vc especificou eles vão aparecer com o texto "1" escrito!?
Abração!!!!!!
ps.: pode deixar que eu não esqueci de encaminhar os arquivos ok!!!!!!!

Wilson,

vc substitui POLE#1 pelo texto que desejar.

Eu estava arrumando a lisp pra fazer isso.

Assim q eu acabar eu posto aqui.

[]s,

Rogério

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Seg 24 Jan 2005 3:46:58 pm

Wilson, segue a lisp. Dá uma olhada e diga o q acha.

Lisp:
Copie o arquivo abaixo e salve como XYZ.lsp.

;NAME: xyzpoint.lsp
;PROJECT: General
;OBJECTIVE: read an ASCII file with point and
; print it in AutoCAD
;ACAD VERSION: AutoLISP for AutoCAD 14, 2000
;VERSION: Octuber 22 2001
;AUTOR: Hector Monroy, M.S. Civil Eng. , M.S. Computer and Systems Eng.
;[email protected]
;modified: January, 24 2005 by...
;RZS
;-------------------------------------------------------------------------
;FUNCTION: xyztopoint
;OBJECTIVE: read an ASCII file with points
; The points format must be
; x_coordinate tab y_coordinate tab z_coordinate tab [description]
;PARAMETERS: nil
;WARNING:
;RETURN: nil
;comando inicial: XYZ
;-------------------------------------------------------------------------
;(defun c:XYZ ()(c:XYZtoPoint))
;(defun c:XYZtoPoint( / fileXYZ fltTextHeight strLine lstXYZ strText)
(defun c:XYZ ()
(setq #osmode (getvar "osmode"))
(setvar "osmode" 0)
(defun dtr (d)(* pi (/ d 180.0))) ; end defun dtr
(setq hstyle (cdr (assoc 40 (tblsearch "style" (getvar "TEXTSTYLE")))))
(setq #TEXTSTYLE (getvar "TEXTSTYLE"))
;-------------------------------------------------------------------------
;seta a altura do texto em STYLE em zero enquanto executa
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq StyList (vla-get-TextStyles ActDoc))
(setq StyObj (vla-Item StyList #TEXTSTYLE));;#TEXTSTYLE = the style name you want to change.
(vla-put-Height StyObj 0.0);;TEXT HEIGHT
;-------------------------------------------------------------------------
(setvar "PDMODE" 35);muda a exibição do ponto
(setq fileXYZ(open (getfiled "XYZ reader" "" "txt" 8) "r"))
(setq fltTextHeight(getreal "\n Type text heigth <1>:"))
(if (= fltTextHeight nil) (setq fltTextHeight 1))
;-------------------------------------------------------------------------
(while (setq strLine(read-line fileXYZ))
(setq lisLine(tolist strLine))
(if lisLine
(progn
(setq lstXYZ (mapcar 'atof (list (car lisLine)(cadr lisLine)(caddr lisLine))))
(setq X (car(mapcar 'atof (list (car lisLine)(cadr lisLine)(caddr lisLine)))))
(setq Y (cadr(mapcar 'atof (list (car lisLine)(cadr lisLine)(caddr lisLine)))))
(setq Z (caddr(mapcar 'atof (list (car lisLine)(cadr lisLine)(caddr lisLine)))))
;(setq COORDS (strcat (RTOS X) "," (RTOS Y) "," (RTOS Z)))
(setq COORDS (strcat "X="(RTOS X) "," " Y=" (RTOS Y) "," " Z=" (RTOS Z)))
;(princ lstXYZ)
(if (eq (length lisLine) 4)
(setq strText(cadddr lisLine))
(setq strText "Pnt")
);endIF
;-----------------------------------------------------------------------------------
;Localização dos textos
(setq PT_TXT1 (polar lstXYZ (dtr 90) (* 1.5 fltTextHeight)));;acima da coordenada
(setq PT_TXT2 (polar lstXYZ (dtr -90) (* 1.5 fltTextHeight)));;abaixo da coordenada
;(setq NUM 1)
;-----------------------------------------------------------------------------------
(command "_POINT" lstXYZ)
;-----------------------------------------------------------------------------------
(command "_TEXT" PT_TXT1 fltTextHeight 0 strText)
(command "_TEXT" PT_TXT2 fltTextHeight 0 COORDS)
(command "_TEXT" lstXYZ fltTextHeight 0 "TEXTO OPCIONAL")
;-----------------------------------------------------------------------------------
);endTRUE
);endIF
);endWhile
(close fileXYZ)
;-------------------------------------------------------------------------
(vla-put-Height StyObj hstyle);;;RESTAURA A ALTURA DO TEXTSTYLE CORRENTE ARMAZENADA
(setvar "osmode" #osmode)
;-------------------------------------------------------------------------
(princ "\n Use PDMODE or DDPTYPE to change points apearance!")
(princ)
);endDefun
;-------------------------------------------------------------------------
;Funcion: toList
(defun toList (str / str lst str1 va total str2)
(setq lst nil)
(setq str1 "")
(setq va 1)
(setq total (strlen str))
(repeat total
(setq str2(substr str va 1))
(if (/= str2 "\t")
(setq str1(strcat str1 str2))
(if (>= (strlen str1) 0)
(progn
(setq lst (append lst (list str1)))
(setq str1 "")
);endprogn
);endifFANSE
);endif
(setq va(1+ va))
);endrepeat
(if (> (strlen str1) 0)
(setq lst (append lst (list str1)))
);endif
lst
);endDefun
;-------------------------------------------------------------------------

O arquivo texto:
Essa configuração de texto é necessária para que a lisp leia os dados.
O espaço entre textos tem q ser uma tabulação (tecla TAB do teclado):
; Veja o esquema na linha abaixo:
x_coordinate tab y_coordinate tab z_coordinate tab [description]
Seria um TDF - Tab Delimited File

Copie o texto abaixo e salve como COORDS.TXT ou outro qualquer.

10 43 111 PONTO 1
20 23 234 PONTO 2
34 55 123 PONTO 3
54 34 432 PONTO 4
34 22 123 PONTO 5
23 41 432 PONTO 6
Abraço,

Rogério

Confia ao SENHOR as tuas obras, e teus pensamentos serão estabelecidos. Provérbios - 16 v. 3
Leia: http://www.espada.eti.br/n2093.asp

Avatar do usuário
ronaldo
Concreto
Concreto
Mensagens: 58
Registrado em: Dom 01 Fev 2004 11:00:00 pm

Mensagem por ronaldo » Seg 24 Jan 2005 8:13:07 pm

Facilitar trabalho com pontos no autocad!
Este é o título da postagem do Wilson. Pois bem. Não estou vendo nada disto!
Esta última rotina foi de encardir! Se tiver de digitar os pontos na formatação proposta eu me suicido!

É importante lembrar que os formatos CDF , SDF etc foram aplicados no AutoCad
para a manipulação de arquivos de dados provenientes do Dbase e do Lotus1-2-3!
Então vamos moderar!
A 1a. pergunta é :
Wlison , voce vai ler a formatação a partir de uma Planilha , de um Banco de Dados ou de um arquivo simples Txt qualquer?
Se for o último caso esqueça esta rotina.!
Veja os tópicos anteriores sobre a discussão em torno do uso de SYM e STR , das brigalhadas entre eu e o HugoPaulo! Este assunto já foi discutido por mim umas 4 vezes!
Só lamento que agora eu não tenha tempo de investigar em quais tópicos eu apresentei isto!

ronaldo

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Seg 24 Jan 2005 9:00:43 pm

Ronaldo,

Eu gostaria de ver sua proposta, só que funcionando.

Pra vc ficar criticando o que os outros fazem, no mínimo vc tem q fazer coisa melhor.

Partindo de um principiante, como eu, essa rotina tá é muito boa. Não tem nenhum que converter nenhum STR ou sei lá o que da vida, que precisa pra fazer funcionar suas rotinas.

O texto no final é opcional, e existem lisps separadas por vírgula.

De encardir mesmo é vc ter que copiar uma rotina pro mesmo diretório do desenho pra que ela funcione, como vc fez.

Se vc á tão bom assim, poste uma rotina que funcione.

E pare de ser ranzinza.

Tenho dito.

Um abraço,

Rogério

Rogério
Abraço,

Rogério

Confia ao SENHOR as tuas obras, e teus pensamentos serão estabelecidos. Provérbios - 16 v. 3
Leia: http://www.espada.eti.br/n2093.asp

Avatar do usuário
ronaldo
Concreto
Concreto
Mensagens: 58
Registrado em: Dom 01 Fev 2004 11:00:00 pm

Mensagem por ronaldo » Ter 25 Jan 2005 7:22:51 am

Rogério, - parte 1
A sua rotina não tem nada de errado! E nem voce é nenhum principiante!
Mas aprenda uma coisa de quem passou anos vendendo rotinas de programação para topógrafo:
- Voce faz a rotina para se enquadrar na maneira que ele trabalha e não como voce gostaria que fosse!
Um topógrafo recém casado traz as anotações dos pontos lidos no teodolito numa caderneta suja de terra e pede para esposa transcrever no computador por que ele já tem outro trabalho no campo. A pobre coitada ,que nunca foi secretária e não tá nem aí prum computador , vai pegar uma lista de 200 pontos numa formatação com tabulação ou aspas.! Tá bravo!
E aí, Para atender ao cliente voce tem que converter STR ou sei lá o que da vida, que precisa pra fazer para funcionar sua rotina!!
ronaldo


continua ...

Avatar do usuário
Rogerio
Master
Master
Mensagens: 2034
Registrado em: Ter 23 Mar 2004 12:00:00 am

Mensagem por Rogerio » Ter 25 Jan 2005 10:42:26 am

Tudo bem, Ronaldo.

Então vc tem q criticar e falar a razão da crítica. Se vc postar somente a crítica, fica-se a impressão que vc faz críticas sistemáticas e sem motivo.

Pra piorar, eu teste a rotina postada várias vezes no micro da empresa, em desenhos novos e outros, e rodou perfeitamente. Em casa, não deu.

Eu ainda não consegui descobrir o motivo.

Eu me considero iniciante sim, porque só consigo fazer pequenos programas, não complexos, e conheço pouqíssimo sobre como usar as funções autolisp.

[]s,

Rogério


Abraços,

Rogério

Avatar do usuário
Wilson_ecv
Bronze 1/3
Bronze 1/3
Mensagens: 116
Registrado em: Seg 18 Out 2004 12:00:00 am
Localização: Florianópolis-SC

Mensagem por Wilson_ecv » Ter 25 Jan 2005 11:55:08 am

Se o titulo do forum não foi do gosto de todos eu posso reformulá-lo agora mesmo.
Lá vai:
" Métodos para facilitar, aumentando a produtividade, a inserção de pontos no autocad, sem ter de digitar milhares de vezes várias coordenadas de pontos e sua respectiva identificação, com auxílio das linguagens de programação "

Acho que assim fica claro que os lisp indicados, bem como as programações feitas por todos, são de grande utilidade em função do novo titulo do fórum!!!!!!!
E aos amigos de plantão gostaira de avisar que estarei, nesta tarde, encaminhando os arquivos com pontos e o projeto semi-completo ok!!!!!!!!!!
Abraços e até mais!!!!!!!

Avatar do usuário
ronaldo
Concreto
Concreto
Mensagens: 58
Registrado em: Dom 01 Fev 2004 11:00:00 pm

Mensagem por ronaldo » Ter 25 Jan 2005 12:17:14 pm

meu caro Wilson_cv
Não critiquei o titulo da sua postagem. O título é resumido e suficiente.
No meu ponto de vista todos os comentários são bem vindos. As discussões aumentam o grau de conhecimento!
Podes crer que a rotina do Rogério é totalmente utilizável tanto quanto aminha. Isto tudo depende de ponto de vista , do gosto ou objetivo

Rogério
Para piorar, eu teste a rotina postada várias vezes no micro da empresa, em desenhos novos e outros, e rodou perfeitamente. Em casa, não deu. ...

De qual rotina voce está falando? esta sua desta postagem ou a minha (chapa.txt)?

Não fique nervoso! A crítica foi só para começar!nâo conseguí escrever tudo de uma vez!
ronaldo

Avatar do usuário
hugopaulo
Master
Master
Mensagens: 1873
Registrado em: Dom 29 Fev 2004 12:00:00 am

Idiossincrasias

Mensagem por hugopaulo » Ter 25 Jan 2005 12:35:11 pm

ronaldo escreveu:Facilitar trabalho com pontos no autocad!
Este é o título da postagem do Wilson. Pois bem. Não estou vendo nada disto!
Esta última rotina foi de encardir! Se tiver de digitar os pontos na formatação proposta eu me suicido!
É importante lembrar que os formatos CDF , SDF etc foram aplicados no AutoCad
para a manipulação de arquivos de dados provenientes do Dbase e do Lotus1-2-3!
Então vamos moderar!
A 1a. pergunta é :
Wlison , voce vai ler a formatação a partir de uma Planilha , de um Banco de Dados ou de um arquivo simples Txt qualquer?
Se for o último caso esqueça esta rotina.!
Veja os tópicos anteriores sobre a discussão em torno do uso de SYM e STR , das brigalhadas entre eu e o HugoPaulo! Este assunto já foi discutido por mim umas 4 vezes!
Só lamento que agora eu não tenha tempo de investigar em quais tópicos eu apresentei isto!

ronaldo
Não estou tomando partido aqui em torno de A ou B mas não concordo com certas colocações porque não é este o caminho da harmonia. Vou estender um pouco.

Uma das coisas mais difíceis da Arte de Programar é conceito de Abstração ( não vou "ensiná-lo" aqui ). O caso relatado das "brigalhadas" ( conceito do Ronaldo ) pelas minhas discordâncias mostra o quanto é amargo não sabermos aceitar colocações técnicas e corretas em cima de um assunto "exagerado" ( que eu prefiro chamar de "redundante" ).

Nunga "briguei" com ninguém por causa de conhecimentos embora até pareça mas vou ao ponto.

Continuo acreditando firmemente que a propalada conversão de SYM para STR é desnecessária (discussão em torno do uso de SYM e STR.

Quer me parecer até hoje que o Ronaldo não entendeu a abstração do SYMBOL e Type SYM do AutoLISP.

Nunca escrevi nas referidas "brigalhadas" que está errado mas sim que é desnecessário. Ao ver a reação do Ropgério, não posso deixar de me lembrar das reações do Ronaldo quando se sente "ofendido" e "achando" que alguém quer diminuir seus conhecimentos.
Pavio curto, precipitação em responder às vezes. Normal de uma certa forma.

Bom o próprio Ronaldo já reconheceu que sou Professor mas esqueceu que também sou Profissional de Engenharia e Analista deSistemas.

Como Professor ensino, como Profissional discordo baseado em pesquisa própria, consulta a terceiros, experiência e muito Raciocínio mas nunca desarmonizando a Verdade do Conhecimento com a interpretação subjetiva.

No caso do SYM e STR não abro mão que é um conceito subjetivo, até o momento que alguém prove que é necessário o uso de uma rotina de conversão como etos
como você costuma usar. Todas as rotinas que contiverem tal função eu retiro e a uso eficaz e eficientemente da mesma forma. É uma função "exagerada" ( eu costumo chamar de "redundante" ou "enfatizada" ). Poderia usála mas nesse caso acreditei ser melhor "dispensá-la". No mais uma curiosidade:

etos Espírito unificador que ocorre através de vários aspectos de uma cultura, como quando se diz, por exemplo, que uma ou outra coisa é própria da natureza humana.

E uma certeza: deixar de colocar a documentação dentro de qualquer programa na suposição que as rotinas são claríssimas para todos é nivelar principiantes com experts. É uma necessidade atuante e para mim obrigatória. Como Professor ensino, como Profissional uso. Vejam a mensagem de pablorico21 para mim:

---------------------------Mensagem de Hugo Paulo -------------------------------------------
hugopaulo:
"Não é a documentação existente que eu relato como temida ou detestada. É a documentação que colocamos ou devemos sempre colocar dentro das rotinas de programação explicando o que determinadass linhas ou grupo de linhas ( "statements" ) ou funções fazem e como são chamadas. A maioria quase absoluta ou não coloca porque não sabe ou porque não quer. O Ronaldo é um deles. E você ?
Além do mais não concordei com o nosso amigo dizer que é "exagerada" porque está correta. Prefiro dizer que está "redundante" ou "enfatizada".
Coloquei um exemplo a tempos atrás e você pode encontrar procurando pelo meu nome em pesquisar na homepage. Não lembro o nome do tópico. Depois sinalize que troco outras idéias contigo."
--------------------------Resposta de Pablo Rico ---------------------------------------------------
Desculpe a minha não compreensão das suas palavras (não sou tão técnico em informática quanto você). Concordo com você com relação a documentação das rotinas que fazemos. Imagine um sistema com mais de 100 páginas de código e poucas linhas de comentário!Não seria de fácil manutenção. Não posso dizer que documento 100% das minhas rotinas, as vezes a impolgação e o envolvimento com a implementação, me traz a sensação de que eu sempre saberei a lógica do código-fonte a qualquer tempo.O que é estupidamente errado. Isso dá uma dor de cabeça no futuro... Acho que você esta certo em ser rigido com a documentação do código, ajuda na manutenção.
Com relação ao seu exemplo.
Procurei pela palavra documentação no fórum .Encontrei um desafio seu(bem interessante por sinal), mas não entendi bem a que você se referiu quando sugeriu que eu procurasse.Foi com relação a documentação e manutenção de códigos-fonte?
Se você puder e quiser postar esta resposta no fórum, sinta-se a vontade. Pois não posso postar no fórum por problemas técnicos...
Obrigado pelo aprendizado.
E viva a Documentação! Façamos então uma campanha pela Documentação das nossas rotinas.
-------------------------------------------------------------------------------------------------------
NB. Intrepretem como quiserem.

Para o Rogério

Dê uma repassada no tópico tipo SYMBOL para tipo STR de autoria do Ronaldo já que ele citou e analise. Depois sinalize.

Repetindo: Não escrevo para modificar ninguém e sim para não permitir que ninguém me modifique. Se eu concordar... eu coloco aqui e mudo minhas declarações ( opiniões ) . Meu conhecimento NÃO.

"Só os postes e os burros não mudam de opinião"

"Sursum Corda"

Saudações a Todos!
hugopaulo
AutoLISP Não É LISP ==> VISUAL LISP não é Linguagem

Responder