如果括号块的水平长度为1.0,则可以使用以下内容:
- ([color=BLUE]defun[/color] c:addbrackets ( [color=BLUE]/[/color] ang blk dis enx inc pt1 pt2 sel )
- ([color=BLUE]if[/color]
- ([color=BLUE]and[/color]
- ([color=BLUE]setq[/color] blk (LM:ssget [color=MAROON]"\nSelect Bracket Block: "[/color] '([color=MAROON]"_+.:E:S"[/color] ((0 . [color=MAROON]"INSERT"[/color])))))
- ([color=BLUE]setq[/color] sel (LM:ssget [color=MAROON]"\nSelect Lines for Brackets: "[/color] '(((0 . [color=MAROON]"LINE"[/color])))))
- )
- ([color=BLUE]progn[/color]
- ([color=BLUE]setq[/color] blk ([color=BLUE]assoc[/color] 2 ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] blk 0))))
- ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] inc ([color=BLUE]sslength[/color] sel))
- ([color=BLUE]setq[/color] enx ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] inc ([color=BLUE]1-[/color] inc))))
- pt1 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 10 enx))
- pt2 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 11 enx))
- ang ([color=BLUE]angle[/color] pt1 pt2)
- dis ([color=BLUE]distance[/color] pt1 pt2)
- )
- ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]<[/color] ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.0) ang) ([color=BLUE]<=[/color] ang ([color=BLUE]/[/color] ([color=BLUE]*[/color] 3.0 [color=BLUE]pi[/color]) 2.0)))
- ([color=BLUE]setq[/color] ang ([color=BLUE]+[/color] ang [color=BLUE]pi[/color]))
- )
- ([color=BLUE]entmake[/color]
- ([color=BLUE]list[/color] '(0 . [color=MAROON]"INSERT"[/color]) blk
- ([color=BLUE]cons[/color] 10
- ([color=BLUE]polar[/color]
- ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( a b ) ([color=BLUE]/[/color] ([color=BLUE]+[/color] a b) 2.0)) pt1 pt2)
- ([color=BLUE]-[/color] ang ([color=BLUE]/[/color] [color=BLUE]pi[/color] 2.0))
- ([color=BLUE]/[/color] dis 4.0)
- )
- )
- ([color=BLUE]cons[/color] 50 ang)
- ([color=BLUE]cons[/color] 41 dis)
- ([color=BLUE]cons[/color] 42 dis)
- ([color=BLUE]cons[/color] 43 dis)
- )
- )
- )
- )
- )
- ([color=BLUE]princ[/color])
- )
- [color=GREEN];; ssget - Lee Mac[/color]
- [color=GREEN];; A wrapper for the ssget function to permit the use of a custom selection prompt[/color]
- [color=GREEN];;[/color]
- [color=GREEN];; Arguments:[/color]
- [color=GREEN];; msg - selection prompt[/color]
- [color=GREEN];; params - list of ssget arguments[/color]
- ([color=BLUE]defun[/color] LM:ssget ( msg params [color=BLUE]/[/color] sel )
- ([color=BLUE]princ[/color] msg)
- ([color=BLUE]setvar[/color] 'nomutt 1)
- ([color=BLUE]setq[/color] sel ([color=BLUE]vl-catch-all-apply[/color] '[color=BLUE]ssget[/color] params))
- ([color=BLUE]setvar[/color] 'nomutt 0)
- ([color=BLUE]if[/color] ([color=BLUE]not[/color] ([color=BLUE]vl-catch-all-error-p[/color] sel)) sel)
- )
- ([color=BLUE]princ[/color])
|