Rocket Space 2D Mac OS

broken image


Quartz 2D is a two-dimensional drawing engine accessible in the iOS environment and from all Mac OS X application environments outside of the kernel. You can use the Quartz 2D application programming interface (API) to gain access to features such as path-based drawing, painting with transparency, shading, drawing shadows, transparency layers, color management, anti-aliased rendering, PDF document generation, and PDF metadata access. Whenever possible, Quartz 2D leverages the power of the graphics hardware.

Icons and skins of order to Mac-like using RocketDock the Windows.Windows を RocketDock を使って Mac 風にする為の アイコンとスキン. Space Rocket Exploration gives you the ability to feel the exctiment of traveling to space and exploring planets like you never have felt and seen before. The game has astonishing graphics and physics that simulate space how it's in the real life! First part of the game is where you have to build your own rocket and launch it in the launch area!

In Mac OS X, Quartz 2D can work with all other graphics and imaging technologies—Core Image, Core Video, OpenGL, and QuickTime. It's possible to create an image in Quartz from a QuickTime graphics importer, using the QuickTime function GraphicsImportCreateCGImage. See QuickTime Framework Reference for details. Moving Data Between Quartz 2D and Core Image in Mac OS X describes how you can provide images to Core Image, which is a framework that supports image processing.

Similarly, in iOS, Quartz 2D works with all available graphics and animation technologies, such as Core Animation, OpenGL ES, and the UIKit classes.

The first happened May 17, 2004, by the Civilian Space eXploration Team (CSXT). This is the only known amateur rocket to make it past 100 km. For a more complete list, see HobbySpace. Note that any team that has managed to make it that close usually has corporate sponsorships, and often has failures. It's really hard to get a rocket that high up. Share your Rocket League inventory, competitive rank, and Rocket Pass tier on any connected platform! In-game events and limited time modes! From Haunted Hallows to Frosty Fest, enjoy limited time events that feature festive in-game items that can be unlocked by playing online! Keep on the lookout for limited time modes and arenas.

The Page

Quartz 2D uses the painter's model for its imaging. In the painter's model, each successive drawing operation applies a layer of 'paint' to an output 'canvas,' often called a page. The paint on the page can be modified by overlaying more paint through additional drawing operations. An object drawn on the page cannot be modified except by overlaying more paint. This model allows you to construct extremely sophisticated images from a small number of powerful primitives.

Figure 1-1 shows how the painter's model works. To get the image in the top part of the figure, the shape on the left was drawn first followed by the solid shape. The solid shape overlays the first shape, obscuring all but the perimeter of the first shape. The shapes are drawn in the opposite order in the bottom of the figure, with the solid shape drawn first. As you can see, in the painter's model the drawing order is important.

The page may be a real sheet of paper (if the output device is a printer); it may be a virtual sheet of paper (if the output device is a PDF file); it may even be a bitmap image. The exact nature of the page depends on the particular graphics context you use.

Drawing Destinations: The Graphics Context

A graphics context is an opaque data type (CGContextRef) that encapsulates the information Quartz uses to draw images to an output device, such as a PDF file, a bitmap, or a window on a display. The information inside a graphics context includes graphics drawing parameters and a device-specific representation of the paint on the page. All objects in Quartz are drawn to, or contained by, a graphics context.

You can think of a graphics context as a drawing destination, as shown in Figure 1-2. When you draw with Quartz, all device-specific characteristics are contained within the specific type of graphics context you use. In other words, you can draw the same image to a different device simply by providing a different graphics context to the same sequence of Quartz drawing routines. You do not need to perform any device-specific calculations; Quartz does it for you.

These graphics contexts are available to your application:

  • A bitmap graphics context allows you to paint RGB colors, CMYK colors, or grayscale into a bitmap. A bitmap is a rectangular array (or raster) of pixels, each pixel representing a point in an image. Bitmap images are also called sampled images. See Creating a Bitmap Graphics Context.

  • A PDF graphics context allows you to create a PDF file. In a PDF file, your drawing is preserved as a sequence of commands. There are some significant differences between PDF files and bitmaps:

    • PDF files, unlike bitmaps, may contain more than one page.

    • When you draw a page from a PDF file on a different device, the resulting image is optimized for the display characteristics of that device.

    • PDF files are resolution independent by nature—the size at which they are drawn can be increased or decreased infinitely without sacrificing image detail. The user-perceived quality of a bitmap image is tied to the resolution at which the bitmap is intended to be viewed.

    See Creating a PDF Graphics Context.

  • A window graphics context is a graphics context that you can use to draw into a window. Note that because Quartz 2D is a graphics engine and not a window management system, you use one of the application frameworks to obtain a graphics context for a window. See Creating a Window Graphics Context in Mac OS X for details.

  • A layer context (CGLayerRef) is an offscreen drawing destination associated with another graphics context. It is designed for optimal performance when drawing the layer to the graphics context that created it. A layer context can be a much better choice for offscreen drawing than a bitmap graphics context. See Core Graphics Layer Drawing.

  • When you want to print in Mac OS X, you send your content to a PostScript graphics context that is managed by the printing framework. See Obtaining a Graphics Context for Printing for more information.

Quartz 2D Opaque Data Types

The Quartz 2D API defines a variety of opaque data types in addition to graphics contexts. Because the API is part of the Core Graphics framework, the data types and the routines that operate on them use the CG prefix.

Quartz 2D creates objects from opaque data types that your application operates on to achieve a particular drawing output. Figure 1-3 shows the sorts of results you can achieve when you apply drawing operations to three of the objects provided by Quartz 2D. For example:

  • You can rotate and display a PDF page by creating a PDF page object, applying a rotation operation to the graphics context, and asking Quartz 2D to draw the page to a graphics context.

  • You can draw a pattern by creating a pattern object, defining the shape that makes up the pattern, and setting up Quartz 2D to use the pattern as paint when it draws to a graphics context.

  • You can fill an area with an axial or radial shading by creating a shading object, providing a function that determines the color at each point in the shading, and then asking Quartz 2D to use the shading as a fill color.

The opaque data types available in Quartz 2D include the following:

  • CGPathRef, used for vector graphics to create paths that you fill or stroke. See Paths.

  • CGImageRef, used to represent bitmap images and bitmap image masks based on sample data that you supply. See Bitmap Images and Image Masks.

  • CGLayerRef, used to represent a drawing layer that can be used for repeated drawing (such as for backgrounds or patterns) and for offscreen drawing. See Core Graphics Layer Drawing

  • CGPatternRef, used for repeated drawing. See Patterns.

  • CGShadingRef and CGGradientRef, used to paint gradients. See Gradients.

  • CGFunctionRef, used to define callback functions that take an arbitrary number of floating-point arguments. You use this data type when you create gradients for a shading. See Gradients.

  • CGColorRef and CGColorSpaceRef, used to inform Quartz how to interpret color. See Color and Color Spaces.

  • CGImageSourceRef and CGImageDestinationRef, which you use to move data into and out of Quartz. See Data Management in Quartz 2D and Image I/O Programming Guide.

  • CGFontRef, used to draw text. See Text.

  • CGPDFDictionaryRef, CGPDFObjectRef, CGPDFPageRef, CGPDFStream, CGPDFStringRef, and CGPDFArrayRef, which provide access to PDF metadata. See PDF Document Creation, Viewing, and Transforming.

  • CGPDFScannerRef and CGPDFContentStreamRef, which parse PDF metadata. See PDF Document Parsing.

  • CGPSConverterRef, used to convert PostScript to PDF. It is not available in iOS. See PostScript Conversion.

Graphics States

Quartz modifies the results of drawing operations according to the parameters in the current graphics state. The graphics state contains parameters that would otherwise be taken as arguments to drawing routines. Routines that draw to a graphics context consult the graphics state to determine how to render their results. For example, when you call a function to set the fill color, you are modifying a value stored in the current graphics state. Other commonly used elements of the current graphics state include the line width, the current position, and the text font size.

The graphics context contains a stack of graphics states. When Quartz creates a graphics context, the stack is empty. When you save the graphics state, Quartz pushes a copy of the current graphics state onto the stack. When you restore the graphics state, Quartz pops the graphics state off the top of the stack. The popped state becomes the current graphics state.

To save the current graphics state, use the function CGContextSaveGState to push a copy of the current graphics state onto the stack. To restore a previously saved graphics state, use the function CGContextRestoreGState to replace the current graphics state with the graphics state that's on top of the stack.

Note that not all aspects of the current drawing environment are elements of the graphics state. For example, the current path is not considered part of the graphics state and is therefore not saved when you call the function CGContextSaveGState. The graphics state parameters that are saved when you call this function are listed in Table 1-1.

Table 1-1 Parameters that are associated with the graphics state

Parameters

Discussed in this chapter

Current transformation matrix (CTM)

Clipping area

Line: width, join, cap, dash, miter limit

Accuracy of curve estimation (flatness)

Anti-aliasing setting

Color: fill and stroke settings

Alpha value (transparency)

Rendering intent

Color space: fill and stroke settings

Text: font, font size, character spacing, text drawing mode

Blend mode

Paths and Bitmap Images and Image Masks

Quartz 2D Coordinate Systems

A coordinate system, shown in Figure 1-4, defines the range of locations used to express the location and sizes of objects to be drawn on the page. You specify the location and size of graphics in the user-space coordinate system, or, more simply, the user space. Coordinates are defined as floating-point values.

Because different devices have different underlying imaging capabilities, the locations and sizes of graphics must be defined in a device-independent manner. For example, a screen display device might be capable of displaying no more than 96 pixels per inch, while a printer might be capable of displaying 300 pixels per inch. If you define the coordinate system at the device level (in this example, either 96 pixels or 300 pixels), objects drawn in that space cannot be reproduced on other devices without visible distortion. They will appear too large or too small.

Quartz accomplishes device independence with a separate coordinate system—user space—mapping it to the coordinate system of the output device—device space—using the current transformation matrix, or CTM. A matrix is a mathematical construct used to efficiently describe a set of related equations. The current transformation matrix is a particular type of matrix called an affine transform, which maps points from one coordinate space to another by applying translation, rotation, and scaling operations (calculations that move, rotate, and resize a coordinate system).

The current transformation matrix has a secondary purpose: It allows you to transform how objects are drawn. For example, to draw a box rotated by 45 degrees, you rotate the coordinate system of the page (the CTM) before you draw the box. Quartz draws to the output device using the rotated coordinate system.

A point in user space is represented by a coordinate pair (x,y), where x represents the location along the horizontal axis (left and right) and y represents the vertical axis (up and down). The origin of the user coordinate space is the point (0,0). The origin is located at the lower-left corner of the page, as shown in Figure 1-4. In the default coordinate system for Quartz, the x-axis increases as it moves from the left toward the right of the page. The y-axis increases in value as it moves from the bottom toward the top of the page.

Some technologies set up their graphics contexts using a different default coordinate system than the one used by Quartz. Relative to Quartz, such a coordinate system is a modified coordinate system and must be compensated for when performing some Quartz drawing operations. The most common modified coordinate system places the origin in the upper-left corner of the context and changes the y-axis to point towards the bottom of the page. A few places where you might see this specific coordinate system used are the following:

  • In Mac OS X, a subclass of NSView that overrides its isFlipped method to return YES.

  • In iOS, a drawing context returned by an UIView.

  • In iOS, a drawing context created by calling the UIGraphicsBeginImageContextWithOptions function.

The reason UIKit returns Quartz drawing contexts with modified coordinate systems is that UIKit uses a different default coordinate convention; it applies the transform to Quartz contexts it creates so that they match its conventions. If your application wants to use the same drawing routines to draw to both a UIView object and a PDF graphics context (which is created by Quartz and uses the default coordinate system), you need to apply a transform so that the PDF graphics context receives the same modified coordinate system. To do this, apply a transform that translates the origin to the upper-left corner of the PDF context and scales the y-coordinate by -1.

Using a scaling transform to negate the y-coordinate alters some conventions in Quartz drawing. For example, if you call CGContextDrawImage to draw an image into the context, the image is modified by the transform when it is drawn into the destination. Similarly, path drawing routines accept parameters that specify whether an arc is drawn in a clockwise or counterclockwise direction in the default coordinate system. If a coordinate system is modified, the result is also modified, as if the image were reflected in a mirror. In Figure 1-5, passing the same parameters into Quartz results in a clockwise arc in the default coordinate system and a counterclockwise arc after the y-coordinate is negated by the transform.

Rocket Space 2D Mac OS

It is up to your application to adjust any Quartz calls it makes to a context that has a transform applied to it. For example, if you want an image or PDF to draw correctly into a graphics context, your application may need to temporarily adjust the CTM of the graphics context. In iOS, if you use a UIImage object to wrap a CGImage object you create, you do not need to modify the CTM. The UIImage object automatically compensates for the modified coordinate system applied by UIKit.

Important: The above discussion is essential to understand if you plan to write applications that directly target Quartz on iOS, but it is not sufficient. On iOS 3.2 and later, when UIKit creates a drawing context for your application, it also makes additional changes to the context to match the default UIKIt conventions. In particular, patterns and shadows, which are not affected by the CTM, are adjusted separately so that their conventions match UIKit's coordinate system. In this case, there is no equivalent mechanism to the CTM that your application can use to change a context created by Quartz to match the behavior for a context provided by UIKit; your application must recognize the what kind of context it is drawing into and adjust its behavior to match the expectations of the context.

Memory Management: Object Ownership

Quartz uses the Core Foundation memory management model, in which objects are reference counted. When created, Core Foundation objects start out with a reference count of 1. You can increment the reference count by calling a function to retain the object, and decrement the reference count by calling a function to release the object. When the reference count is decremented to 0, the object is freed. This model allows objects to safely share references to other objects.

There are a few simple rules to keep in mind:

  • If you create or copy an object, you own it, and therefore you must release it. That is, in general, if you obtain an object from a function with the words 'Create' or 'Copy' in its name, you must release the object when you're done with it. Otherwise, a memory leak results.

  • If you obtain an object from a function that does not contain the words 'Create' or 'Copy' in its name, you do not own a reference to the object, and you must not release it. The object will be released by its owner at some point in the future.

  • If you do not own an object and you need to keep it around, you must retain it and release it when you're done with it. You use the Quartz 2D functions specific to an object to retain and release that object. For example, if you receive a reference to a CGColorspace object, you use the functions CGColorSpaceRetain and CGColorSpaceRelease to retain and release the object as needed. You can also use the Core Foundation functions CFRetain and CFRelease, but you must be careful not to pass NULL to these functions.



Copyright © 2001, 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-03-21

If you're looking for CAD software for Mac, you're not without options. We've found some standout Mac and cloud-based CAD platforms for you.

You're likely to hit a wall if you're searching for computer-aided design (CAD) software designed for Mac. There are plenty of CAD software options for Windows—you'll see many of them in our list of the top AutoCAD alternatives—but only a handful offer support for Mac.

And, if you think you'll bypass the issue by using a cloud-based CAD tool, you'll quickly find that CAD vendors haven't embraced the cloud as much as other types of software vendors have, so the offerings are still largely on-premise. According to Gartner's Hype Cycle for IT Evolution (full content available to Gartner clients), cloud-native CAD applications still have five to 10 years before they reach mainstream adoption.

But fear not, Mac users. We've done some digging and have put together this list of the top-rated CAD software for Mac. Read more about our methodology at the bottom of this article.

5 Best CAD Software for Mac (presented alphabetically)

Jump to:


  • CorelCAD

  • FreeCAD

  • Fusion 360

  • LibreCAD

  • Onshape

1. CorelCAD

CorelCAD offers 2D drafting and 3D design capabilities, such as the drawing constraints feature for creating different geometric shapes faster and the push and pull feature for 3D direct modeling.

3D modeling in CorelCAD (Source)

Common user feedback trends

Rocket space 2d mac os 11

It is up to your application to adjust any Quartz calls it makes to a context that has a transform applied to it. For example, if you want an image or PDF to draw correctly into a graphics context, your application may need to temporarily adjust the CTM of the graphics context. In iOS, if you use a UIImage object to wrap a CGImage object you create, you do not need to modify the CTM. The UIImage object automatically compensates for the modified coordinate system applied by UIKit.

Important: The above discussion is essential to understand if you plan to write applications that directly target Quartz on iOS, but it is not sufficient. On iOS 3.2 and later, when UIKit creates a drawing context for your application, it also makes additional changes to the context to match the default UIKIt conventions. In particular, patterns and shadows, which are not affected by the CTM, are adjusted separately so that their conventions match UIKit's coordinate system. In this case, there is no equivalent mechanism to the CTM that your application can use to change a context created by Quartz to match the behavior for a context provided by UIKit; your application must recognize the what kind of context it is drawing into and adjust its behavior to match the expectations of the context.

Memory Management: Object Ownership

Quartz uses the Core Foundation memory management model, in which objects are reference counted. When created, Core Foundation objects start out with a reference count of 1. You can increment the reference count by calling a function to retain the object, and decrement the reference count by calling a function to release the object. When the reference count is decremented to 0, the object is freed. This model allows objects to safely share references to other objects.

There are a few simple rules to keep in mind:

  • If you create or copy an object, you own it, and therefore you must release it. That is, in general, if you obtain an object from a function with the words 'Create' or 'Copy' in its name, you must release the object when you're done with it. Otherwise, a memory leak results.

  • If you obtain an object from a function that does not contain the words 'Create' or 'Copy' in its name, you do not own a reference to the object, and you must not release it. The object will be released by its owner at some point in the future.

  • If you do not own an object and you need to keep it around, you must retain it and release it when you're done with it. You use the Quartz 2D functions specific to an object to retain and release that object. For example, if you receive a reference to a CGColorspace object, you use the functions CGColorSpaceRetain and CGColorSpaceRelease to retain and release the object as needed. You can also use the Core Foundation functions CFRetain and CFRelease, but you must be careful not to pass NULL to these functions.



Copyright © 2001, 2017 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2017-03-21

If you're looking for CAD software for Mac, you're not without options. We've found some standout Mac and cloud-based CAD platforms for you.

You're likely to hit a wall if you're searching for computer-aided design (CAD) software designed for Mac. There are plenty of CAD software options for Windows—you'll see many of them in our list of the top AutoCAD alternatives—but only a handful offer support for Mac.

And, if you think you'll bypass the issue by using a cloud-based CAD tool, you'll quickly find that CAD vendors haven't embraced the cloud as much as other types of software vendors have, so the offerings are still largely on-premise. According to Gartner's Hype Cycle for IT Evolution (full content available to Gartner clients), cloud-native CAD applications still have five to 10 years before they reach mainstream adoption.

But fear not, Mac users. We've done some digging and have put together this list of the top-rated CAD software for Mac. Read more about our methodology at the bottom of this article.

5 Best CAD Software for Mac (presented alphabetically)

Jump to:


  • CorelCAD

  • FreeCAD

  • Fusion 360

  • LibreCAD

  • Onshape

1. CorelCAD

CorelCAD offers 2D drafting and 3D design capabilities, such as the drawing constraints feature for creating different geometric shapes faster and the push and pull feature for 3D direct modeling.

3D modeling in CorelCAD (Source)

Common user feedback trends

Based on analyses of user reviews on Capterra, here's an overview of the areas of CorelCAD they like best, as well as those they feel could use improvement.

What users like:

  • The short learning curve: Users mention that the tool is easy to use and beginners don't have to spend a lot of time learning it.
  • Compatibility with multiple file types: Users like the fact that the tool is compatible with DWG, PDF, ACIS, DXF, STL, CDR, and other file formats.

What users think could be improved:

  • Software reliability issues: Some users mention that the software tends to crash at times.
  • Better dimension functionality: Some users would like a better dimensioning feature for more accurate drawings of angles and proportions.

Who can use CorelCAD

CorelCAD can be used by construction businesses for collaborative editing on multiple devices. It offers native iOS applications, which makes it easy for field crews to add annotations in graphics and share files using their iPhones and iPads. Additionally, the tool allows team members to leave recorded messages and instructions for colleagues embedded in the graphics using a voice note tool.

2. FreeCAD

FreeCAD is an open source CAD tool that works on Mac as well as Windows and Linux. It reads many common file formats such as STEP, IGES, STL, SVG, DXF, OBJ, IFC, and DAE.

Rocket Space 2d Mac Os Download

It offers different modules, including a drawing sheets module that converts 3D models into 2D views, a rendering module that can export 3D objects, and an architecture module for a BIM-like workflow.

3D model of a building in FreeCAD (Source)

Common user feedback trends

Based on analysis of user reviews on Capterra, here's an overview of the areas of FreeCAD they like best, as well as those they feel could use improvement.

What users like:

  • Feature-richness for a free tool: Users mention that, although it's free, the tool comes with a full set of features.
  • Reliability: Users mention that the tool does not demand a lot of CPU power and works well on devices with low RAM.

What users think could be improved:

  • Steep learning curve: Users mention that the tool is not the most user-friendly solution and can be difficult for beginners to learn.
  • Dependent on community for updates: Users mention that modules ignored by the community tend to become outdated quickly.

Rocket Space 2d Mac Os X

Who can use FreeCAD

FreeCAD appears to be best for hobbyists and home users. It's also good for users who don't have a high budget for software but still want to tinker with CAD modeling.

FreeCAD could also be a good choice for businesses on a budget looking for a free and open-source option.

3. Fusion 360

Fusion 360 is a CAD tool from Autodesk with design functionalities such as sketching and 3D modeling. It also supports project management with features such as task management, document management, and collaborative image editing.

Document management in Fusion 360 (Source)

Common user feedback trends

Based on analysis of user reviews on Capterra, here's an overview of the areas of Fusion 360 they like best, as well as those they feel could use improvement.

Rocket Space 2d Mac Os Catalina

What users like:

  • Comprehensive design features: User mention that the tool offers all the functionalities necessary for 2D and 3D designing.
  • Availability of training resources: Users like the fact that the tool comes with ample documentation and tutorials.

What users think could be improved:

  • System crashes: Users mention that the tool tends to crash, especially when designing and rendering large files.
  • Steep learning curve: Users mention that it can take a lot of time to learn the advanced functionalities of the tool.

Who can use Fusion 360

Fusion 360 is part of the Autodesk ecosystem designed for the AEC industry. This makes the tool suitable for construction businesses that are already using, or intend to use, other Autodesk solutions. Using a software vendor that offers multiple solutions will especially benefit larger businesses that invariably need software that can scale with their growing requirements.

4. LibreCAD

LibreCAD is an open source CAD tool that supports Mac, Windows, and Linux operating systems. The tool comes with 2D drawing features such as a snap tool, dimensioning, and annotations. It also supports multiple file imports and exports.

2D drawing in LibreCAD (Source)

Common user feedback trends

Based on analysis of user reviews on Capterra, here's an overview of the areas of LibreCAD they like best, as well as those they feel could use improvement.

What users like:

  • Ease of use: Users mention that the tool offers an intuitive and easy-to-use interface.
  • Lots of tutorials: Users like the fact that there are ample video tutorials that help them get started with the tool.

What users think could be improved:

  • Software speed: Users mention that the software tends to lag, especially when trying to print designs.
  • Add support for 3D design: Users would like to see functionalities for creating 3D designs.

Who can use LibreCAD

LibreCAD is an exclusively 2D CAD tool for drawing and designing blueprints of buildings, layouts of parks, and the like. As a free tool, the solution can be used by small and midsize businesses across different industries, including manufacturing, engineering, architecture, and construction.

5. Onshape

Onshape is a cloud-only CAD solution that comes with features such as document management with version control, collaborative design creation/editing capabilities, and reporting dashboards to understand project status.

Importing documents in Onshape (Source)

Common user feedback trends

Based on analysis of user reviews on Capterra, here's an overview of the areas of Onshape they like best, as well as those they feel could use improvement.

What users like:

Rocket Space 2d Mac Os 11

  • Document version control: Users like the document management features of the tool, such as version history.
  • Intuitive interface: Users mention that the tool comes with an intuitive interface for easy image editing.

What users think could be improved:

  • Performance issues: Some users mention that the tool does not function well on non-Chrome browsers and has file loading issues.
  • Lack of features: Users mention that the tool should improve certain features such as 2D drawing and 3D surfacing.

Who can use Onshape

As a fully-cloud based tool, Onshape is ideal for businesses that need to manage design documents collaboratively with multiple stakeholders. The tool's collaboration functionalities include document sharing, document editing, comments, and file downloads in multiple CAD formats, such as Parasolid, ACIS, STEP, and IGES.

Next steps

This report offers a mix of Mac CAD solutions—from free tools that can help you with basic 2D drawing to advanced solutions offering extensive 3D modeling functionalities.

If these tools don't meet your needs, expand your search and check out more options. To help you, we've created a CAD software comparison page where you can explore products using different filters, such as features offered and pricing options.

If you're looking to understand the CAD software market better, we also recommend that you read the articles listed below:

Methodology

To be shortlisted, products had to fulfill the following criteria:

  • Products had to be compatible with Mac and offer core CAD software capabilities, such as:
    • 2D drawing or 3D modeling features
    • Collaborative editing of drawings
  • Products needed a minimum of 20 user reviews on Capterra (published in the last two years).
  • Products had to have a high overall rating (an average of at least 4 out of 5 on Capterra).

Note: The content in this piece that provides opinions and points of view expressed by users. It does not represent the views of Capterra.

Looking for Construction Management software? Check out Capterra's list of the best Construction Management software solutions.





broken image