I have never created a custom object before & what I'm trying to achieve seems like a good candidate, yet most of what I want to accomplish should be able to be handled via dynamic blocks manipulated through my vb.net routine.
What I'm wanting to do is use a user selected polyline as a basis for inserting other geometry. It would be at different spacings along the polyline & also be different geometry, so a simple implimentation of the measure command is not what I'm looking for.
I could do this by processing the polyline info as required to establish base points & directions, & then add/modify nested blocks as required in my dynamic block.
The thing is, I'd like to have it so that if the user modifies the original polyline, the related stuff would update based on re-processing the changed polyline.
Could I be able to do this by somehow (through an XDATA or XRECORD assignment (?)) linking the original polyline to my program?
Or might it be better to create a custom object that would have a a fully functional polyline subentity along with a bunch of other stuff that still seems best implimented via dynamic blocks (such as variable length lines, patterns over a small variable area (hatch isn't adequate in this case), symbols, dimensions, text and attributes)?
What you're proposing sounds most suitable for using reactors with standard AutoCAD objects. Whether doing it with reactors or a custom object, this will require advanced ObjectARX skills and a significant amount of work.
Can you achieve what you want through the UI using dimensional and geometric constraints? If you can create the constraints via the UI, then you can do the same via the API.
Reactors (or overrules) as Owen suggests are another option.
Think very carefully about going down the custom entity route if you've never implemented a custom entity before, and even more so if you're not familiar with C++. Custom objects can create a world of pain for you and your customers if you make even a small implementation mistake.
thanks for the tips.
I think what I'll do is store the polyline segment data w/in the block so that the polyline could be recreated if the user needs to edit it, & then my "attached" geometry will be adjusted accordingly to fit the "new" polyline.