Compile Time Changes

The nurb field in DwgSpline now refers to cm.geometry.brep.BrepBSplineCurve instead of ANurbsCurve. The export methods in Snapper has changed arguments.

DWG import dialog

The dwg import dialog has been overhauled, in that process changes has been made to both functionality of the dialog and it's interface. Settings have generally changed from using last applied from/to coresettings to storing the DwgSettingsEnv in each DwgSnapper and using those settings on all modifications from the import dialog. Presets have been introduced and you can register presets via this function:

 /*
 * Register predefined dwg setting.
 */
public void regPredefinedDwgSetting(DwgSettingsEnv env, bool replace=false) {

Snapper interface

The ExportPaperDwgDialog class has been removed entirely since papers now can be exported from the ExportDwgDialog. When exporting to dwg the user now has the possibility to export 2D-view, 3D-view and/or Papers from paper view (current or all). Due to these changes, some methods have been removed and some have been changed.

These two methods in Snapper now have one single argument. This is to facilitate the need for more arguments now and in the future. The export() method is the method to override in case you want non-default dwg-export behaviour.

    /**
     * Export snapper.
     */
    extend public ExportData export(SnapperExportEnv env) {
	return stdSnapperExport(env);
    }


    /**
     * Export graphical snapper.
     */
    extend public ExportData systemExport(SnapperExportEnv env) {
	if (hasGraphicalSpecial)
	  return stdSnapperExport(env);
	else
	  return export(env);
    }

All the old arguments are contained within the SnapperExportEnv. New is the LayerSet which is used when using ViewMode filtered dwg export. If possible filter your snapper graphics using this filter to avoid returning unnecessary data. The SnapperExportEnv extends CorePropObj to facilitate the need for more arguments in the future.

/**
 * Snapper export env.
 */
public class SnapperExportEnv extends CorePropObj {
    /**
     * Export 2D graphics.
     */
    public bool twoDim;

    /**
     * Export 3D graphics.
     */
    public bool threeDim;

    /**
     * Export item tags.
     */
    public bool itemTags;

    /**
     * The wanted detail of the exported graphics.
     */
    public detailLevel detail;

    /**
     * The wanted layer of the export.
     */
    public LayerSet layer : copy=reference;

    /**
     * Create a new Snapper export env.
     */
    public constructor(bool twoDim=true, bool threeDim=true,
		       bool itemTags=true, detailLevel detail=detailLevel.super,
		       LayerSet layer=normalLayerSet) {
	this.twoDim = twoDim;
	this.threeDim = threeDim;
	this.itemTags = itemTags;
	this.detail = detail;
	this.layer = layer;
    }
}

Public dwg functions

The following public functions have been removed entirely

public void userDwgPaperExport(Window app, Space space, bool initVisible=true, bool applyAndClose=false)

public void userPaperDwgExportToTarget(Window app, Space space, bool initVisible=true, bool applyAndClose=false, Url url=null)

Both could be replaced by the functions

public void userDwgExport(Window app, Space space, bool initVisible=true, bool applyAndClose=false)

public void userDwgExportToTarget(Window app, Space space, bool initVisible=true, bool applyAndClose=false, Url url=null)

DwgExporter class

The constructor() has changed

    public constructor(Space mainSpace, PaperSpace[] paperSpaces=null, bool export2D=true, bool export3D=true, ExportFilterBar exportFilter=null)

Previously it only took a Space as an argument and now a Space and a seq of PaperSpace(s). Any of them can be null. If you only want to export papers then only pass in PaperSpace objects. 2D and 3D only applies to 'Space'.

Also due to this change, the following methods in DwgExporter now takes a Space as an argument.

    extend public void collectSnappers(Space s, SnapperFilter filter=null)

    extend public rect getViewBound(Space s)

DwgSnapper

/**
 * Set env settings.
 */
extend public void setEnvSettings() {

Has been replaced with:

/**
 * Apply settings from env.
 */
extend public void applySettings(DwgSettingsEnv env) {