6
19
7
初来乍到
使用道具 举报
5
1334
1410
限制会员
(defun c:ID_1-sour+IN_1-dest->NEAR-dest ( / s b1 sourval1 b2 sourval2 destval ) (vl-load-com) (prompt "\nPick (SL-Dev) block reference...") (setq s (ssget "_+.:E:S" '((0 . "INSERT") (66 . 1)))) (while (or (not s) (vlax-property-available-p (setq b1 (vlax-ename->vla-object (ssname s 0))) 'Path) (/= (vla-get-effectivename b1) "SL-Dev")) (prompt "\nMissed or wrong block reference pick or picked xref... Try picking (SL-Dev) block reference again...") (setq s (ssget "_+.:E:S" '((0 . "INSERT") (66 . 1)))) ) (foreach att (append (vlax-invoke b1 'getattributes) (vlax-invoke b1 'getstaticattributes)) (if (= (vla-get-tagstring att) "ID_1") (setq sourval1 (vla-get-textstring att)) ) ) (while t (prompt "\nPick (SL-Con) block reference... ESC to terminate and finish picking (SL-Con) block references...") (setq s (ssget "_+.:E:S:L" '((0 . "INSERT") (66 . 1)))) (while (or (not s) (vlax-property-available-p (setq b2 (vlax-ename->vla-object (ssname s 0))) 'Path) (/= (vla-get-effectivename b2) "SL-Con")) (prompt "\nMissed or wrong block reference pick or picked xref... Try picking (SL-Con) block reference again...") (setq s (ssget "_+.:E:S:L" '((0 . "INSERT") (66 . 1)))) ) (foreach att (append (vlax-invoke b2 'getattributes) (vlax-invoke b2 'getstaticattributes)) (if (= (vla-get-tagstring att) "IN_1") (setq sourval2 (vla-get-textstring att)) ) ) (setq destval (strcat sourval1 " " sourval2)) (foreach att (append (vlax-invoke b2 'getattributes) (vlax-invoke b2 'getstaticattributes)) (if (= (vla-get-tagstring att) "NEAR") (vla-put-textstring att destval) ) ) ) (princ))
114
1万
中流砥柱
([color=BLUE]defun[/color] c:combatt ( [color=BLUE]/[/color] ent id1 idx in1 sel ) ([color=BLUE]while[/color] ([color=BLUE]progn[/color] ([color=BLUE]setvar[/color] 'errno 0) ([color=BLUE]setq[/color] ent ([color=BLUE]car[/color] ([color=BLUE]entsel[/color] [color=MAROON]"\nSelect SL-DEV block <exit>: "[/color]))) ([color=BLUE]cond[/color] ( ([color=BLUE]=[/color] 7 ([color=BLUE]getvar[/color] 'errno)) ([color=BLUE]princ[/color] [color=MAROON]"\nMissed, try again."[/color]) ) ( ([color=BLUE]null[/color] ent) [color=BLUE]nil[/color]) ( ([color=BLUE]/=[/color] [color=MAROON]"INSERT"[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 ([color=BLUE]entget[/color] ent)))) ([color=BLUE]princ[/color] [color=MAROON]"\nSelected object is not a block."[/color]) ) ( ([color=BLUE]/=[/color] [color=MAROON]"SL-DEV"[/color] ([color=BLUE]strcase[/color] (LM:al-effectivename ent))) ([color=BLUE]princ[/color] [color=MAROON]"\nSelected block is not an "SL-DEV" block."[/color]) ) ( ([color=BLUE]not[/color] ([color=BLUE]setq[/color] id1 (LM:getattributevalue ent [color=MAROON]"ID_1"[/color]))) ([color=BLUE]princ[/color] [color=MAROON]"\nBlock does not contain "ID_1" attribute."[/color]) ) ) ) ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] id1 ([color=BLUE]setq[/color] sel ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"INSERT"[/color]) '(66 . 1) ([color=BLUE]cons[/color] 2 ([color=BLUE]apply[/color] '[color=BLUE]strcat[/color] ([color=BLUE]cons[/color] [color=MAROON]"SL-CON"[/color] ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]strcat[/color] [color=MAROON]",`"[/color] x)) (LM:getanonymousreferences [color=MAROON]"SL-CON"[/color]) ) ) ) ) ) ) ) ) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] idx ([color=BLUE]sslength[/color] sel)) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] ent ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] idx ([color=BLUE]1-[/color] idx))) in1 (LM:getattributevalue ent [color=MAROON]"IN_1"[/color]) ) (LM:setattributevalue ent [color=MAROON]"NEAR"[/color] ([color=BLUE]strcat[/color] id1 in1)) ) ) ) ([color=BLUE]princ[/color]))[color=GREEN];; Get Anonymous References - Lee Mac[/color][color=GREEN];; Returns the names of all anonymous references of a block.[/color][color=GREEN];; blk - [str] Block name/wildcard pattern for which to return anon. references[/color]([color=BLUE]defun[/color] LM:getanonymousreferences ( blk [color=BLUE]/[/color] ano def lst rec ref ) ([color=BLUE]setq[/color] blk ([color=BLUE]strcase[/color] blk)) ([color=BLUE]while[/color] ([color=BLUE]setq[/color] def ([color=BLUE]tblnext[/color] [color=MAROON]"block"[/color] ([color=BLUE]null[/color] def))) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]=[/color] 1 ([color=BLUE]logand[/color] 1 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 70 def)))) ([color=BLUE]setq[/color] rec ([color=BLUE]entget[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 330 ([color=BLUE]entget[/color] ([color=BLUE]tblobjname[/color] [color=MAROON]"block"[/color] ([color=BLUE]setq[/color] ano ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 2 def))) ) ) ) ) ) ) ) ([color=BLUE]while[/color] ([color=BLUE]and[/color] ([color=BLUE]not[/color] ([color=BLUE]member[/color] ano lst)) ([color=BLUE]setq[/color] ref ([color=BLUE]assoc[/color] 331 rec)) ) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]entget[/color] ([color=BLUE]cdr[/color] ref)) ([color=BLUE]wcmatch[/color] ([color=BLUE]strcase[/color] (LM:al-effectivename ([color=BLUE]cdr[/color] ref))) blk) ) ([color=BLUE]setq[/color] lst ([color=BLUE]cons[/color] ano lst)) ) ([color=BLUE]setq[/color] rec ([color=BLUE]cdr[/color] ([color=BLUE]member[/color] ([color=BLUE]assoc[/color] 331 rec) rec))) ) ) ) ([color=BLUE]reverse[/color] lst)) [color=GREEN];; Effective Block Name - Lee Mac[/color][color=GREEN];; ent - [ent] Block Reference entity[/color]([color=BLUE]defun[/color] LM:al-effectivename ( ent [color=BLUE]/[/color] blk rep ) ([color=BLUE]if[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]setq[/color] blk ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 2 ([color=BLUE]entget[/color] ent)))) [color=MAROON]"`**"[/color]) ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]setq[/color] rep ([color=BLUE]cdadr[/color] ([color=BLUE]assoc[/color] -3 ([color=BLUE]entget[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 330 ([color=BLUE]entget[/color] ([color=BLUE]tblobjname[/color] [color=MAROON]"block"[/color] blk) ) ) ) '([color=MAROON]"acdbblockrepbtag"[/color]) ) ) ) ) ([color=BLUE]setq[/color] rep ([color=BLUE]handent[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 1005 rep)))) )