You are on page 1of 4

Um blag sobre cultura, poltica, memes e software livre!

GNU LibreDWG: libertando arquivos CAD


Este post uma adaptao de uma matria escrita para a Revistra Esprito Livre, a ser publicada
em breve.
por
Rodrigo pitanga Rodrigues da Silva (pitanga@members.fsf.org) *
Felipe juca Corra da Silva Sanches (juca@members.fsf.org) *
Suporte ao formato de arquivos DWG ainda uma das principais funcionalidades ausentes nos
emergentes softwares livres para CAD, arquitetura, engenharia e georreferenciamento. Nessa
palestra, vamos apresentar os problemas relacionados ao formato DWG, as razes que dificultavam
sua resoluo pela comunidade do software livre e o processo que nos permitiu identific-lo como
recurso prioritrio. Finalmente, vamos descrever o processo de desenvolvimento e a evoluo da
LibreDWG, uma implementao livre desse formato, passando de um projeto praticamente inativo a
um pacote do Projeto GNU ativamente mantido e desenvolvido por programadores de vrias partes
do mundo. Tambm explicaremos como a existncia de um grupo de estudos de software livre na
universidade proporcionou condies favorveis ao sucesso do projeto.
Introduo
Todo engenheiro ou arquiteto usurio de software livre provavelmente j se deparou com a falta de
opes de softwares livres para CAD ou, ainda, do estgio prematuro da maioria das opes
existentes. De acordo com a Wikipdia, Computer-Aided Design (CAD) (em ingls), ou desenho
assistido por computador, o nome genrico de sistemas computacionais utilizados pela
engenharia, geologia, arquitetura, e design para facilitar o projeto e desenho tcnicos. No caso do
design, este pode estar ligado especificamente a todas as suas vertentes (produtos como vesturio,
eletroeletrnicos, automobilsticos, etc.), de modo que os jarges de cada especialidade so
incorporados na interface de cada programa.
Sabendo dessa deficincia e no intuito de evitar que um escritrio de engenharia e extenso
universitria recm convertido ao software livre voltasse a instalar softwares proprietrios
procurando suprir suas necessidades de CAD, foi iniciado um projeto de pesquisa para mapear as
principais solues livres existentes nessa rea, identificar as deficincias que impedem que
usurios CAD migrem para elas e, finalmente, atuar ativamente para que essas deficincias deixem
de existir, seja apenas relatando bugs e feature requests junto s comunidades ou por meio da
implementao de novos recursos.
A busca
Nossa pesquisa apresentou um resultado muito claro: de todas as ferramentas analisadas, cerca de
duas dezenas, em variados nveis de maturidade, nenhuma suportava o formato DWG. DWG um
formato de arquivos criado na dcada de 70 usado por padro para o armazenamento de dados do
AutoCAD, a principal sute CAD (proprietria) do mercado. Devido popularidade do AutoCAD, a
grande maioria dos arquivos CAD so distribudos e compartilhados nesse formato e,
consequentemente, inacessveis para usurios de software livre.

Considerando o lock-in[0] proporcionado pelo DWG como uma barreira sua entrada no mercado
CAD, alguns concorrentes da Autodesk, com o intuito de viabilizar a migrao de usurios para
suas prprias ferramentas tambm elas proprietrias -, formaram um consrcio chamado Open
Design Alliance[1], que teve entre seus objetivos realizar um processo de engenharia reversa do
formato de arquivos DWG. Este processo culminou com a publicao de uma especificao nooficial do formato DWG[2]. Trata-se de um documento de cerca de 180 pginas que contm os
detalhes tcnicos sobre como a informao de um projeto, composto por desenhos, partes, vistas,
definies, etc, armazenada dentro de um arquivo DWG. Alm da especificao, publicada em seu
website, a ODA desenvolveu uma biblioteca chamada DWGDirect que implementa o formato. No
entanto, a biblioteca no livre. Apesar de inicialmente distribuda gratuitamente o que, por sua
vez, impeliu vrios desenvolvedores de programas CAD livres a utilizarem-na em seus projetos
hoje ela est disponvel apenas para membros do consrcio, cujo grau de associao mnimo
(usurio final) demanda uma taxa anual de US$1500,00. No apropriado aqui condenar o fato de a
biblioteca ser paga, afinal, software livre no quer dizer necessariamente software gratuito; mas sim
alertar sobre as possveis armadilhas do software proprietrio e gratuito, em geral conhecido como
freeware.
Resultados
Depois de algum tempo procurando por bibliotecas livres para manipulao de arquivos no formato
DWG, chegamos LibDWG[3], uma biblioteca coincidentemente escrita por um brasileiro e que j
suportava cerca de 20% da especificao OpenDWG. Mas essa biblioteca possua uma
caracterstica muito peculiar, que, para a maioria dos possveis colaboradores, seria um entrave:
toda a documentao, nomes de variveis e comentrios do cdigo foram escritos em Esperanto
apenas as palavras reservadas do C em ingls. Sem julgar os mritos do Esperanto, consideramos
que a dificuldade em aprender uma nova lngua antes de comear a programar seria uma barreira
evoluo de um software livre, e, usufruindo dos direitos proporcionados pela licena GNU
GPLv3[4], foi criado um fork do projeto que seria progressivamente traduzido para o ingls, a
lingua franca no meio hacker.
Aps algumas semanas de pesquisas sobre a lngua original e de traduo, praticamente todo o
cdigo j estava traduzido para o ingls e devidamente publicado. A partir da, passou-se
impelementao dos pontos faltantes da especificao, como os objetos grficos do DWG, e suporte
a outras verses alm da R2000, at ento a nica suportada a cada duas ou trs verses do
AutoCAD a Autodesk cria uma nova verso do formato, potencialmente incompatvel com e
substancialmente diferente, nos aspectos internos, das verses anteriores. Nascia, assim, a
LibreDWG[5].
LibreDWG e o Projeto GNU
A Free Software Foundation mantm uma lista de projetos considerados prioritrios para o
movimento do software livre[6]. Tendo j trabalhado por alguns dias na LibreDWG, descobrimos
que um destes projetos prioritrios era a implementao de bibliotecas livres que substitussem a
biblioteca proprietria da Open Design Alliance. A LibDWG, assim como outras iniciativas que
tambm pretendiam implementar o formato mas ainda no o haviam feito, como a VectorSection[7],
era citada entre possveis projetos. Como j tnhamos alguma proximidade com a Free Software
Foundation e o Projeto GNU, resolvemos atender solicitao feita pelo prprio Richard Stallman,

com quem havamos conversado em uma recente passagem pelo Brasil, e inscrever a LibreDWG
como candidata a se tornar um GNU package. Um package um subprojeto relativamente
independente que implementa alguma funcionalidade especfica do sistema GNU. Devido
relevncia do projeto e ao fato de ele estar na lista de projetos prioritrios da FSF, e aps
atendermos a algumas sugestes feitas pelo avaliador designado para nossa proposta, o projeto foi
aprovado. Um detalhe curioso que uma das condies para ser aprovado como pacote GNU que
o cdigo seja escrito em ingls.
Como contribuir
Para contribuir com a LibreDWG no necessrio ser um especialista em programao. O cdigo
todo escrito na linguagem C, alm de uma pseudolinguagem especfica ao formato DWG criada
com o auxlio de macros nada de outro mundo, como o cdigo do dropdown da GTK! Mesmo
quem no programador pode contribuir escrevendo documentao, testando a LibreDWG em seus
prprios arquivos (temos um conversor experimental de DWG para SVG, o formato de desenhos
vetoriais do W3C) ou ainda fornecendo arquivos DWG para nossa sute de testes. Em nosso wiki[8]
h um guia passo a passo sobre como instalar e utilizar a LibreDWG, alm dos principais canais de
contato. Estamos sempre abertos a sugestes e a auxiliar contribuidores e possveis usurios
interessados.
Estado atual e perspectivas
No momento, a LibreDWG conta com 6 contribuidores mais ou menos constantes, todos
voluntrios espalhados pelas mais diversas partes do mundo. J cobrimos cerca de 99% da
especificao OpenDWG para as verses R13, R14, R2000 e R2004. O suporte escrita deve ser
desenvolvido nos prximos meses com financiamento pelo programa Google Summer of Code -,
assim como bindings para que a biblioteca possa ser utilizada por programas escritos em outras
linguagens de programao, como Python e Perl. O projeto est prximo do lanamento de uma
verso alpha, e j est em vista a sua incluso no repositrio do Debian e seu uso em alguns
softwares livres, como o GRASS[10].
Concluso
Apesar de o desenvolvimento em si ter sido feito de maneira independente, todo o processo que
levou criao da LibreDWG ocorreu dentro do PoliGNU Grupo de Estudos de Software Livre
da Poli/USP[9]. Acreditamos que a atividade em grupo tenha sido essencial para o levantamento das
deficincias dos CADs livres e identificao de um item prioritrio no caso, o suporte ao
formato DWG. Seria interessante replicar o processo de fomento a grupos de estudos de software
livre por meio do desenvolvimento de outros itens estratgicos como os listados pela FSF.
[0] http://pt.wikipedia.org/wiki/Aprisionamento_tecnolgico
[1] http://opendesign.com
[2] http://opendesign.com/files/guestdownloads/DwgFormatSpec13-2007.rtf
[3] http://libdwg.sourceforge.net
[4] http://www.gnu.org/licenses/gpl.html
[5] http://gnu.org/software/libredwg
[6] http://www.fsf.org/campaigns/priority-projects/
[7] http://vectorsection.org/

[8] http://groups.fsf.org/wiki/LibreDWG
[9] http://polignu.org
[10] http://grass.osgeo.org
* membros fundadores do Grupo de Estudos de Software Livre da Poli/USP (PoliGNU) e
mantenedores da biblioteca livre GNU LibreDWG.
2010 Rodrigo Rodrigues da Silva e Felipe Corra da Silva Sanches
Este texto disponibilizado nos termos da licena Creative Commons Atribuio
Compartilhamento pela mesma licena, disponvel em http://creativecommons.org/licenses/bysa/3.0/br
Written by Rodrigo R. Silva
maio 8th, 2010 at 11:58 pm
Posted in Software Livre

You might also like