Automatic Drawing Generation 0.9.1

Automatic Drawing Generation is a GObject-based library that provides a non-interactive Cairo canvas specifically designed for generating technical drawings. It is intended to be used by software developers to integrate mass customization applications or to supersede parametric CAD workflows.

Tags gtk cad cairo canvas 2d 2d drafting
License GNU LGPL
State beta

Recent Releases

0.9.128 Apr 2017 07:45 minor feature: Build: remove obsolete configure-win 32,64 script. Build: add copyright helper script. Doc: update copyright line for 2017. Adg: do not force wrong type on adg_path_append_cairo_path. Build: make distcheck for gobject-introspection. Cpml: dump argument type. Adg: reverse arc rendering. Tests: for new adg_path_arc(). Cpml: cosmetic changes for CpmlLine. Cpml: add cpml_primitive_type() API. Cpml: return only real intersections between primitives and segments. Cpml: rename curve test internal functions for consistency. Tests: add basic CpmlArc testing. Tests: check cpml_arc_to_curves() with different n_curves. Cpml: add intersection circle-line. Tests: CPML tests for TravisCI. Adg: new adg_path_append_trail() API. Adg: do not warn on adg_trail_put_segment out of range. Adg: reflect all the segments. Adg: set segment as out paramenter in adg_trail_put_segment(). Adg: apply AdgEdges on multisegment paths. Adg: new API adg_trail_n_segments(). Adg: start from the last segment when reflecting. Test: adg_trail_n_segments() with a single segment path. Test: use conversion macros when testing AdgTrail. Adg: change behavior of AdgEdges. Adg: properly handle multisegment paths in adg_path_reflect(). Adg: new API adg_path_join(). Test: protect /adg/path/method/line-to against common crashes. Adg: add floating entity concept and API. Adg: set AdgTitleBlock floating by default. Adg: add AdgDimStyle:rounding. Adg: new API adg_path_remove_primitive(). Adg: improve adg_path_remove_primitive() behavior. Adg: round angular dimensions to 3 digits. Adg: update cp whenever a path rescan occurs. Adg: provide example on how to customize a style. Adg: new API adg_object_clone(). Adg: new API adg_style_clone(). Adg: drop custom dimension dresses. Demo: update to latest changes. Adg: add geometry handling to AdgDim. Adg: add wrappers for common geometry notices. Adg: modernize geometry computation for linear dimensions. Adg: modernize geometry computation for angular dimensions. Adg: modernize
0.9.003 Jan 2017 08:05 minor feature: Doc: correct typo in NEWS. Build: share dist flags. Build: initial import of build/build-win 32,64 . Build: rename USRDIR to HOSTPRE. Build: include Lua support in the NSIS installer. Cpml: cast to int in primitive to avoid clang warning. Build: enable GTK+2 and GTK+3 build testing in TravisCI. Build: GTK+3 is called libgtk-3-dev in TravisCI. Build: use INTROSPECTION_ GIRDIR,TYPELIBDIR . Build: make cairo-gobject requirement optional. Doc: introspection clean up. Adg: add DECIMALS property to AdgDimStyle. Adg: implement DECIMALS in AdgLDim. Tests: use adg_assert_isapprox where relevant. Demo: remove gtk_adjustment_value_changed(). Tests: update tracker URL. Tests: ref_sink before unref a GtkWidget. Tests: improve GTK+ testing for GTK+3. Build: move fallback code on its own. Adg: type of va_start last parameter. Adg: refactor AdgPath code for calculating primitive length. Adg: reduce complexity of REMAPPED macro in AdgPath. Tests: add new test on AdgPath.has_current_point. Adg: use GPtrArray in adg_path_append_valist. Tests: improve adg_path_reflect() testing. Tests: test also adg_model_set_named_pair_explicit(). Adg: set AdgDimStyle:decimals to 2 by default. Adg: 0 is a valid value for AdgDimStyle:decimals. Adg: default value initialization of AdgDimStyle:decimals. Adg: use AdgDimStyle:decimals in AdgADim. Adg: add AdgDimStyle:number-arguments property. Adg: implement adg_dim_style_format(). Adg: default AdgDimStyle values. Adg: add adg_dim_get_text() helper method. Tests: include adg_dim_set_limits(). Adg: use adg_dim_get_text() where relevant. Adg: new ADG_DRESS_DIMENSION_ANGULAR dress. Tests: include adg_rdim_new_full_from_model(). Tests: add required casting to test-adim. Adg: new ADG_DRESS_DIMENSION_RADIUS dress. Doc: add installation instructions to Adg: remove space between R and the quote in AdgRDim. Adg: new ADG_DRESS_DIMENSION_DIAMETER dress. Build: raise GLib dependency to 2.14.0. Adg: new adg_single_strchr() API. Adg: doc typo in AdgThreeState
0.8.008 Mar 2015 11:45 minor feature: The code shared by tests has been moved on an internal library (libadgtest) shared by both CPML and ADG. The test coverage is now checked by leveraging the Coveralls service provided by GitHub. The percentage has been raised from 53 to 94 . A fistful of bugs found while improving the test coverage has been corrected, most notably cpml_extents_is_inside(), cpml_segment_reverse() and some intersection algorithm. Children widgets now own weak references to parents, avoiding the circular dependency introduced by strong references. The overall sanity of the ADG library has been improved by adding additional checks where needed. The CPML library is not subject to those checks because by design it is not supposed to be sane.
0.7.624 Jan 2015 07:05 minor feature: Page margins and paddings are now managed consistently across the different surfaces and their behavior has been documented. The NSIS script for generating the Windows installers has been subject to many improvements: it can now optionally install ADG and CPML manuals (either in HTML and in PDF format) and the localization data (only italian for now). It should also handle the application icons properly. The adg_canvas_export() function can save a canvas to a file in one command. It needs a patched gobject-introspection though: see bug #743364. The localization infrastructure has been improved up to the point gettextize and intltool are no more required.
0.7.512 Jan 2015 11:29 cleanup: The algorithm to use for offsetting B├ęzier curves is now selectable by calling the non-reentrant cpml_curve_offset_algorithm() function. A new offsetting algorithm (BAIOCA) has been implemented. It tries to minimize the error between the offset curve and the ideal offset point on evenly spaced t values. The source code has been revamped to minimize the warnings raised by new versions of gcc, gtk-doc and gobject-introspection. The internal sources have been refactored to handle GTK+2 and GTK+3 differences with the same codebase.