这是我的版本,使用一个字段:
- [color=GREEN];; Link Dimension to Attribute - Lee Mac[/color]
- [color=GREEN];; Prompts for selection of a Dimension and references the Dimension[/color]
- [color=GREEN];; value using a Field located in a selected block attribute.[/color]
- ([color=BLUE]defun[/color] c:Dim2Att ( [color=BLUE]/[/color] *error* ad at el en g1 g2 gr ms ob p1 st )
-
- ([color=BLUE]defun[/color] *error* ( msg )
- ([color=BLUE]if[/color] en ([color=BLUE]redraw[/color] en 4))
- ([color=BLUE]if[/color] ad ([color=BLUE]vla-endundomark[/color] ad))
- ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]strcase[/color] msg) [color=MAROON]"*BREAK,*CANCEL*,*EXIT*"[/color]))
- ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nError: "[/color] msg))
- )
- ([color=BLUE]redraw[/color]) ([color=BLUE]princ[/color])
- )
-
- ([color=BLUE]while[/color]
- ([color=BLUE]progn[/color] ([color=BLUE]setvar[/color] 'ERRNO 0) ([color=BLUE]setq[/color] en ([color=BLUE]car[/color] ([color=BLUE]entsel[/color] [color=MAROON]"\nSelect Dimension to Link: "[/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]eq[/color] 'ENAME ([color=BLUE]type[/color] en))
- ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]wcmatch[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 ([color=BLUE]entget[/color] en))) [color=MAROON]"*DIMENSION"[/color]))
- ([color=BLUE]princ[/color] [color=MAROON]"\nObject is not a Dimension."[/color])
- )
- )
- )
- )
- )
- ([color=BLUE]if[/color] en
- ([color=BLUE]progn[/color]
- ([color=BLUE]setq[/color] ad ([color=BLUE]vla-get-activedocument[/color] ([color=BLUE]vlax-get-acad-object[/color]))
- el ([color=BLUE]entget[/color] en)
- p1 ([color=BLUE]trans[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 11 el)) en 1)
- ob ([color=BLUE]vlax-ename->vla-object[/color] en)
- st ([color=BLUE]strcat[/color]
- [color=MAROON]"%<\\AcObjProp Object(%<\\_ObjId "[/color]
- ([color=BLUE]if[/color]
- ([color=BLUE]and[/color]
- ([color=BLUE]vl-string-search[/color] [color=MAROON]"64"[/color] ([color=BLUE]getenv[/color] [color=MAROON]"PROCESSOR_ARCHITECTURE"[/color]))
- ([color=BLUE]vlax-method-applicable-p[/color] ([color=BLUE]vla-get-utility[/color] ad) 'getobjectidstring)
- )
- ([color=BLUE]vla-getobjectidstring[/color] ([color=BLUE]vla-get-utility[/color] ad) ob [color=BLUE]:vlax-false[/color])
- ([color=BLUE]itoa[/color] ([color=BLUE]vla-get-objectid[/color] ob))
- )
- ([color=BLUE]if[/color] ([color=BLUE]eq[/color] [color=MAROON]""[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 1 el)))
- [color=MAROON]">%).Measurement \\f "%lu6">%"[/color]
- [color=MAROON]">%).TextOverride>%"[/color]
- )
- )
- )
- ([color=BLUE]vla-startundomark[/color] ad)
- ([color=BLUE]redraw[/color] en 3)
- ([color=BLUE]princ[/color] ([color=BLUE]setq[/color] ms [color=MAROON]"\nSelect Attribute to Link to Dimension: "[/color]))
- ([color=BLUE]while[/color]
- ([color=BLUE]progn[/color]
- ([color=BLUE]setq[/color] gr ([color=BLUE]grread[/color] [color=BLUE]t[/color] 13 2)
- g1 ([color=BLUE]car[/color] gr)
- g2 ([color=BLUE]cadr[/color] gr)
- )
- ([color=BLUE]cond[/color]
- ( ([color=BLUE]=[/color] 5 g1)
- ([color=BLUE]redraw[/color])
- ([color=BLUE]grdraw[/color] p1 g2 3 1)
- [color=BLUE]t[/color]
- )
- ( ([color=BLUE]=[/color] 3 g1)
- ([color=BLUE]redraw[/color])
- ([color=BLUE]if[/color] ([color=BLUE]setq[/color] at ([color=BLUE]car[/color] ([color=BLUE]nentselp[/color] g2)))
- ([color=BLUE]if[/color] ([color=BLUE]eq[/color] [color=MAROON]"ATTRIB"[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 0 ([color=BLUE]entget[/color] at))))
- ([color=BLUE]progn[/color]
- ([color=BLUE]vla-put-textstring[/color] ([color=BLUE]vlax-ename->vla-object[/color] at) st)
- ([color=BLUE]vl-cmdf[/color] [color=MAROON]"_.updatefield"[/color] at [color=MAROON]""[/color])
- ([color=BLUE]princ[/color] ms)
- )
- ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nObject is not an Attribute."[/color] ms))
- )
- ([color=BLUE]princ[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nMissed, try again."[/color] ms))
- )
- [color=BLUE]t[/color]
- )
- )
- )
- )
- ([color=BLUE]redraw[/color] en 4)
- ([color=BLUE]redraw[/color])
- ([color=BLUE]vla-endundomark[/color] ad)
- )
- )
- ([color=BLUE]princ[/color])
- )
- ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color])
|