Message 1 of 6
TRYING TO UNDERSTAND FUNCTION FOR SETTING PROPERTIES FOR CURRENTLY SELECTED OBJECTS
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
IM NEW TO LEARNING HOW TO WRITE LSP FILES AND IM TRYING TO IDENTIFY AND UNDERSTAND HOW TO USE THE FUNCTION FOR SETTING PROPERTIES FOR A GROUP OF ITEMS SELECTED. FOR INSTANCE, AFTER SELECTING A GROUP OF XREFS, SETTING THEM ALL TO THE LAYER NAMED XREF_LAYER, OR SETTING THEIR ROTATION TO 0.
(defun RED21 ()
(setq xref-keywords '("01" "02" "03" "04"))
(setq color 21)
(setq xrefs (vla-get-Xrefs (vla-get-ActiveDocument (vlax-get-acad-object))))
(vla-StartUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-StartOpenCloseTransaction (vla-get-ActiveDocument (vlax-get-acad-object)))
(foreach xref xrefs
(setq xref-path (vla-get-Path xref))
(setq xref-file-name (vl-filename-base xref-path))
(foreach xref-keyword xref-keywords
(if (vl-string-search xref-keyword xref-file-name)
(progn
(vla-Unload xref)
(vla-Bind xref-path)
(setq xref (tblsearch "BLOCK" (vlax-get-property (tblsearch "BLOCK" (vla-get-Name xref)) 'name)))
(setq layers (vla-get-Layers xref))
(foreach layer layers
(vla-put-Color layer color)
)
(vla-Reload xref)
(vla-Update xref)
)
)
)
)
(vla-EndOpenCloseTransaction (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-EndUndoMark (vla-get-ActiveDocument (vlax-get-acad-object)))
(prompt "Layer colors in matching xrefs updated to color 21.")
)
; Call the routine
(RED21)
WOULD IT BE THE SAME ROOT COMMAND BECAUSE THOSE ARE ALL PROPERTIES OF THE OBJECTS OR DO NUMBER PROPERTIES (LIKE INSERT POINT, SCALE AND ROTATION) HAVE A DIFFERENT FUNCTION THAN PROPERTIES LIKE OBJECT LAYER NAME, COLOR AND STYLE?