Hi all,
I am having to work around a Civil 3D plotting issue that appears when using my raster format plotter (I use the "TIFF Version 6 (CCITT G4 2D Compression)" plot device.
The details of the problem are not important to my question but they can be found here:
and here:
I am relatively new to muddling with objects. I need to know, can I modify point styles and point label styles text size and scaling parameters using vlisp?
I did this:
(vlax-dump-object (vlax-get-property (vlax-get-property aeccdoc "PointLabelStyles") "item" 0))
and many of the items in the dump are marked as read-only (RO). Does that mean that they cannot be modified or is it just that those object identifiers are read-only?
If the text and scaling parameters can be modified using vlisp, how would I go about doing it?
Any help would be greatly appreciated.
Here is the dump:
; IAeccLabelStyle: IAeccLabelStyle Interface
; Property values:
; Application (RO) = #<VLA-OBJECT IAeccApplication 000000004dab2d40>
; BlockComponents (RO) = #<VLA-OBJECT IAeccLabelStyleBlockComponents 000000004daa97d0>
; Children (RO) = #<VLA-OBJECT IAeccLabelStyles 000000004e4fc7d8>
; CreatedBy = "Autodesk"
; DateCreated (RO) = "2/24/2006 2:26:49 AM"
; DateModified (RO) = "6/6/2011 9:36:09 AM"
; Descendants (RO) = #<VLA-OBJECT IAeccLabelStyles 000000004e4fd398>
; Description = ""
; DirectionArrowComponents (RO) = #<VLA-OBJECT IAeccLabelStyleDirectionArrowComponents 000000004daaa910>
; Document (RO) = #<VLA-OBJECT IAeccDocument 000000004daaaa90>
; DraggedComponentStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedComponentStyle 000000004daa9fb0>
; DraggedLeaderStyle (RO) = #<VLA-OBJECT IAeccLabelDraggedLeaderStyle 000000004daaa610>
; Handle (RO) = "1909"
; HasExtensionDictionary (RO) = 0
; LabelProperties (RO) = #<VLA-OBJECT IAeccLabelStyleProperties 000000004daaaa30>
; LineComponents (RO) = #<VLA-OBJECT IAeccLabelStyleLineComponents 000000004dab3670>
; ModifiedBy (RO) = "CFrancis"
; Name = "Point Number Only"
; ObjectID (RO) = 133
; ObjectID32 (RO) = 133
; ObjectName (RO) = "AeccDbLabelStyleCollector"
; OwnerID (RO) = 134
; OwnerID32 (RO) = 134
; Parent (RO) = #<VLA-OBJECT IAeccLabelStyle 000000004e106e70>
; TextComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTextComponents 000000004dab3700>
; TickComponents (RO) = #<VLA-OBJECT IAeccLabelStyleTickComponents 000000004daa9b90>
; Type (RO) = 15
(vlax-dump-object (vlax-get-property (vlax-get-property aeccdoc "PointLabelStyles") "item" 0) T)
Not using Civil 3D but my first question is are there any methods for modifying or getting them?
like (vla-gettextcomponents...)
That's the kind of thing that I don't know and I need to know. I can get the objects shown in the dump and I suspect I can drill to the specific things I want to change. I was hoping that someone has done this or similar things and can jump start my efforts so I don't have to stumble through it by trial and error. I especially don't want to spend time on it if the things I want to change are read only. In my early days I spent a lot of time sorting out the extended entity data on viewports and coding to modify it only to find that viewports cannot be modified. I don't want to do that again.
First, just an FYI, there's a forum specific to C3D customization: http://forums.autodesk.com/t5/AutoCAD-Civil-3D-Customization/bd-p/190
Second, there are only a handful of people brave (or crazy) enough to try using LIsp with C3D, I'm one of them but have been doing so less & less (.NET is much easier).
THe reason you are seeing many things read-only is beacuse they are container objects. Once you get them, THEY may be editable, so don't let that (RO) stop you from looking deeper.
For the Text Components of a label, this IS an editable value, but it will take a bit of drilling to get to it.....and remember, each component can each have a different value so you will likely want to change each one.
If you take this to the C3D customization forum, I'll see what I can dig up for you.
Thanks, I'll do that.