0 Members and 1 Guest are viewing this topic.
(defun C:mPOLY (/ colr ename ent i lay ltyp obj ss typ wid) (if (setq ent (nentsel "\nSelect source polyline: ")) (progn (setq obj (vlax-ename->vla-object (car ent)) typ (substr (vla-get-objectname obj) 5) ) (if (vl-position (strcase typ) '("POLYLINE" "2DPOLYLINE")) (progn (if (vl-catch-all-error-p (setq wid (vl-catch-all-apply 'vla-get-ConstantWidth (list obj)))) (progn (princ "\nWidth varies, setting to ") (princ (setq wid 0)) ) ) (setq lay (vla-get-layer obj) ltyp (vla-get-Linetype obj) colr (vla-get-color obj) ) (while (progn (prompt "\nSelect plines to change.") (setq ss (ssget '((0 . "Polyline,LWpolyline")))) (if (null ss) (princ "\nNothing selected, Try again.") ) ) ) (setq i -1) (while (setq ename (ssname ss (setq i (1+ i)))) ;; update plines (setq obj (vlax-ename->vla-object ename)) (vla-put-ConstantWidth obj wid) (vla-put-layer obj lay) (vla-put-Linetype obj ltyp) (vla-put-color obj colr) ) ) ; progn (prompt "\nNot a polyline") ) ) ) (princ))
;; Match Polyline.lsp;; CAB 01/08/2007;; Honer Locked Layers(defun C:mPOLY () (MatchPOLY nil));; Over ride locked layers(defun C:mPOLYL () (MatchPOLY t));; Main function;; match Properties;; layer;; linetype;; global width(defun MatchPOLY (UnLock / colr ename ent i lay ltyp obj ss typ wid Locked lokt doc FoundLocked Layers ) (vl-load-com) (if (setq ent (entsel "\nSelect source polyline: ")) (progn (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object))) ) (if UnLock ; Unlock layers (vlax-for lay (vla-get-layers doc) (if (= (vla-get-lock lay) :vlax-true) (progn (setq lokt (cons lay lokt)) (vla-put-lock lay :vlax-false) ) ) ) ) (setq obj (vlax-ename->vla-object (car ent)) typ (substr (vla-get-objectname obj) 5) lay (vla-get-layer obj) Layers (vla-get-Layers doc) ) (if (and (vl-position (strcase typ) '("POLYLINE" "2DPOLYLINE")) (= (vla-get-Lock (vla-Item Layers lay)) :vlax-false)) (progn (if (vl-catch-all-error-p (setq wid (vl-catch-all-apply 'vla-get-constantwidth (list obj))) ) (progn (princ "\nWidth varies, setting to ") (princ (setq wid 0)) ) ) (setq ltyp (vla-get-linetype obj) colr (vla-get-color obj) ) (setq FoundLocked 0) (if (/= locked :vlax-true) (progn (while (progn (prompt "\nSelect plines to change.") (setq ss (ssget '((0 . "Polyline,LWpolyline")))) (if (null ss) (princ "\nNothing selected, Try again.") ) ) ) (setq i -1) (while (setq ename (ssname ss (setq i (1+ i)))) ;; update plines (setq obj (vlax-ename->vla-object ename)) (setq objlay (vla-get-layer obj)) (if (= (vla-get-Lock (vla-Item Layers objlay)) :vlax-true) (setq FoundLocked (1+ FoundLocked)) (progn (vla-put-constantwidth obj wid) (vla-put-layer obj lay) (vla-put-linetype obj ltyp) (vla-put-color obj colr) ) ) ) ) ) (if lokt ; relock layers (foreach lay lokt (vla-put-lock lay :vlax-true) ) ) (if (not (zerop FoundLocked)) (prompt (strcat "\nFound " (itoa FoundLocked) " objects on locked layers.") ) ) (vla-endundomark doc) ) ; progn (prompt "\nNot a polyline, or Locked layer.") ) ) ) (princ))
Maybe this would be better.Still not much testingCode: [Select];; Match Polyline.lsp;; CAB 12/24/2006............................
;; Match Polyline.lsp;; CAB 12/24/2006............................
JB,just for interest, what does the help in LDD show for MATCHPROP ?
Maybe this would be better.Still not much testingCode: [Select];; Match Polyline.lsp;; CAB 12/24/2006;; Honer Locked Layers(defun C:mPOLY () (MatchPOLY nil));; Over ride locked layers(defun C:mPOLYL () (MatchPOLY t))Hi,I am getting the following when selecting the source, it IS a pline and not on a locked layer.Regards,JBCommand: mpolySelect source polyline:Not a polyline, or Locked layer.
;; Match Polyline.lsp;; CAB 12/24/2006;; Honer Locked Layers(defun C:mPOLY () (MatchPOLY nil));; Over ride locked layers(defun C:mPOLYL () (MatchPOLY t))Hi,I am getting the following when selecting the source, it IS a pline and not on a locked layer.Regards,JBCommand: mpolySelect source polyline:Not a polyline, or Locked layer.