eram blocos. Condicoes estas para o CADMEMO funcionar.Bem, isso e problema? Sim, de certa forma. Se fosse converter tudo em PARCEL no Civil 3D, ainda teria de renomear os parcels gerados....A maneira mais rapida que consegui pensar pra isso e escrever um pequeno lisp para interpretar o projeto e criar as polilinhas e os blocos.O codigo fonte segue abaixo. Veja que usei o comando BPOLY para obter uma polilinha fechada e inseri o bloco necessario no centroide da polilinha.Para obter este centroide, usei uma REGION temporaria.Para rodar e bem simples, tenha os blocos:LOTE - bloco que informara o nome do lote, tem os atributos NOME, AREA, DESCQUADRA - bloco que informara o nome da quadra, tem o atributo NOMEAgora, carregue com o APPLOAD.Ao chamar o comando na linha de comando, serao pedidas as informacoes de nome do layer, bloco etc, caso voce queira reconfigurar os parametros do lisp.Bom, sem mais delongas, segue o codigo:;lembrar valores padrao:(setq txtl2pl:blocolote "LOTE" txtl2pl:layernomelote "DIM" txtl2pl:layerlote "LOTE" txtl2pl:escala 0.3 txtl2pl:areatpl "A={}m2" txtl2pl:raioerro 3 txtl2pl:layererro "_erro" txtl2pl:filtro "L.*" txtl2pl:attnome "NOME" txtl2pl:attarea "AREA" txtl2pl:attdesc "DESC" txtl2pl:desc "c3dmemo");programa que desenha polilinha e bloco com atributos(defun c:txtl2pl (/ ss ent pl bloco vla thisdrawing rg objArray rg Centroid att tag model tmp) ;controle de erros: (tbn:error-init nil) ;inicia ponteiros para o desenho atual e model space (setq thisdrawing (vla-get-activedocument (vlax-get-acad-object)) model (vla-get-modelspace thisdrawing)) ;reconfigura os valores padrao: (setq tmp (car (entsel (strcat "\nClique um texto para obter o layer do nome do" " lote ou clique enter para aceitar <" txtl2pl:layernomelote ">")))) (if tmp (setq txtl2pl:layernomelote (cdr (assoc 8 (entget tmp))))) (setq tmp (getstring (strcat "\nInforme o nome do bloco" " a inserir ou clique enter para aceitar <" txtl2pl:blocolote ">"))) (if (/= "" tmp) (setq txtl2pl:blocolote tmp)) (setq tmp (getstring (strcat "\nInforme o atributo do" " nome do lote, ou enter para aceitar <" txtl2pl:attnome ">"))) (if (/= "" tmp) (setq txtl2pl:attnome tmp)) (setq tmp (getstring (strcat "\nInforme o atributo da" " area do lote, ou enter para aceitar <" txtl2pl:attarea ">"))) (if (/= "" tmp) (setq txtl2pl:attarea tmp)) (setq tmp (getstring (strcat "\nInforme o atributo da descricao" " do lote, ou enter para aceitar <" txtl2pl:attdesc ">"))) (if (/= "" tmp) (setq txtl2pl:attdesc tmp)) (setq tmp (getstring (strcat "\nInforme uma descricao a aplicar," " ou enter para aceitar <" txtl2pl:desc ">"))) (if (/= "" tmp) (setq txtl2pl:desc tmp)) (setq tmp (getstring (strcat "\nInforme o layer da polilinha de" " lote, ou enter para aceitar <" txtl2pl:layerlote ">"))) (if (/= "" tmp) (setq txtl2pl:layerlote tmp)) (setq tmp (getstring (strcat "\nInforme o filtro de texto do" " nome do lote, ou enter para aceitar <" txtl2pl:filtro ">"))) (if (/= "" tmp) (setq txtl2pl:filtro tmp)) ;inicia a selecao dos textos a processar: (prompt (strcat "\nSelecione os textos do layer <" txtl2pl:layernomelote ">")) (setq ss (ssget (list '(0 . "TEXT") (cons 8 txtl2pl:layernomelote) (cons 1 txtl2pl:filtro)))) ;garante que exista o layer da polilinha e dos ;circulos de erro se ocorrerem: (vla-add (vla-get-layers thisdrawing) txtl2pl:layerlote) (vla-add (vla-get-layers thisdrawing) txtl2pl:layererro) ;repita em todos os textos: (repeat (sslength ss) ;pega o promeiro da lista (setq ent