以下是两个让您开始使用的功能:
[color=GREEN];;----------------=={ Intersections in Set }==----------------;;[/color][color=GREEN];; ;;[/color][color=GREEN];; Returns a list of all points of intersection between ;;[/color][color=GREEN];; objects in a selection set ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Arguments: ;;[/color][color=GREEN];; ss - SelectionSet ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Returns: List of intersection points, or nil ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color]([color=BLUE]defun[/color] LM:IntersectionsInSet ( ss [color=BLUE]/[/color] i1 i2 ls o1 o2 ) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] i1 ([color=BLUE]sslength[/color] ss)) ([color=BLUE]setq[/color] o1 ([color=BLUE]vlax-ename->vla-object[/color] ([color=BLUE]ssname[/color] ss ([color=BLUE]setq[/color] i1 ([color=BLUE]1-[/color] i1))))) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] i2 i1) ([color=BLUE]setq[/color] o2 ([color=BLUE]vlax-ename->vla-object[/color] ([color=BLUE]ssname[/color] ss ([color=BLUE]setq[/color] i2 ([color=BLUE]1-[/color] i2)))) ls ([color=BLUE]append[/color] ls (LM:GroupByNum ([color=BLUE]vlax-invoke[/color] o1 'intersectwith o2 [color=BLUE]acextendnone[/color]) 3)) ) ) ) ls)[color=GREEN];;-----------------=={ Group by Number }==--------------------;;[/color][color=GREEN];; ;;[/color][color=GREEN];; Groups a list into a list of lists, each of length 'n' ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Author: Lee Mac, Copyright © 2010 - www.lee-mac.com ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Arguments: ;;[/color][color=GREEN];; l - List to process ;;[/color][color=GREEN];; n - Number of elements by which to group the list ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color][color=GREEN];; Returns: List of lists, each of length 'n' ;;[/color][color=GREEN];;------------------------------------------------------------;;[/color]([color=BLUE]defun[/color] LM:GroupByNum ( l n [color=BLUE]/[/color] r) ([color=BLUE]if[/color] l ([color=BLUE]cons[/color] ([color=BLUE]reverse[/color] ([color=BLUE]repeat[/color] n ([color=BLUE]setq[/color] r ([color=BLUE]cons[/color] ([color=BLUE]car[/color] l) r) l ([color=BLUE]cdr[/color] l)) r)) (LM:GroupByNum l n) ) ))
仔细阅读标题中的描述,包括参数/返回。
有了这些,大部分艰苦的工作已经完成,还有什么需要你去做:
[列表]
提示用户选择一组网格线
[/列表]
[列表] 将集合传递给上述适当的函数
[/列表]
[列表] 迭代返回的点列表,并在列表中的每个点插入一个块。
[/列表]