smlib::assembly-import error on point
Created by: reiniervandijk
1585: STEP import fails on points. Error message.
!! This section threw error: No methods applicable for generic function #<standard-generic-function gdl-slots::item> with args (nil) of classes (null) !!
Imported comments:
By reiniervandijk on 2013-11-01 06:53:12 UTC
Showstopper at the moment.
By genworks on 2013-11-01 16:57:45 UTC
Note that this is still officially an unexported/unsupported interface. But we are eager to bring it into production as soon as possible.
By the way, was this actually working in smlib::assembly-import in 1581 and stopped working in 1585?
If it's convenient, can you provide a test case (a simple GDL object with a STEP output, which fails to round-trip back in with smlib::assembly-import)? If this isn't convenient, that's fine we can set one up here -- but it's best to work with an exact case that is failing for you just to eliminate the chance of missing something.
By genworks on 2013-11-01 21:29:11 UTC
I think we do need a test case for this. The attached example (containing some curves and two points) is round-tripping out and in through all combinations of the flat and assembly based step writers/readers:
(in-package :gdl-user)
(defparameter *step-points-path* *load-pathname*)
(define-object smiley (base-object)
:objects
((circle :type 'arc-curve
:radius 10)
(smile :type 'arc-curve
:radius 7
:start-angle (degrees-to-radians 190)
:end-angle (degrees-to-radians 350)
:center (translate (the center) :front (* (the circle radius) 0.05)))
(eyes :type 'point
:sequence (:size 2)
:center (translate (the center)
:rear (* (the circle radius) 0.3)
(ecase (the-child index)
(0 :left)
(1 :right)) (* (the circle radius) 0.42))))
:functions
((step-out!
()
(with-format (step (merge-pathnames "smiley-flat.step" *step-points-path*))
(write-the cad-output-tree)))
(step-out-assy!
()
(with-format (step (merge-pathnames "smiley-assy.step" *step-points-path*)
:assembly? t)
(write-the cad-output-tree)))))
(define-object smiley-in (base-object)
:objects
((native-flat-1 :type 'step-reader
:file-name (merge-pathnames "smiley-flat.step" *step-points-path*))
(native-flat-2 :type 'step-reader
:file-name (merge-pathnames "smiley-assy.step" *step-points-path*))
(native-assy-1 :type 'smlib::assembly-import
:file-name (merge-pathnames "smiley-assy.step" *step-points-path*))
(native-assy-2 :type 'smlib::assembly-import
:file-name (merge-pathnames "smiley-flat.step" *step-points-path*))))
By genworks on 2014-02-11 18:45:19 UTC
Closing the issue, pending a replicatable example.