运行后我注意到:
1.“指定圆的直径[半径]:”;结果是之后的圆半径
它被画出来了。
2.“指定圆的直径[Radius]- : " ; if I select R then </prevoious></p>
- <p> nothing happened.</p>
- <p> Can you make: if I select R then, "Specify Radius of Circle [code]: "</previous></p>
- <p> </p>
- <p> 3. The (dtext) height of number is set at 0.20 (default). </p>
- <p> I suggest, the number's height will be the same to diameter of circle so it looks</p>
- <p> proportion.</p>
- <p> </p>
- <p>Thanks!</p>
- <p> </p>
- <p>Notview</p>
-
- <p>Tharwat, I follow your code and test it in a polyline having four vertex but what I've notice is the last number also occupies the number 1 vertex.. is it possible to do the numbering just up to 4 and not 5? in 4 vertex polyline? thanks!</p>
-
- <p> </p>
- <p>If you have used the command rectang to draw a square polyline , the code should work as expected , but if you use the command polyline to draw a square polyline just draw the four point and use the option close to close the square without picking the the start point once again to close the polyline .</p>
-
- <p>Perhaps try something like this:</p>
- <p> </p>
- <p></p>
- [code]
- ([color=BLUE]defun[/color] c:polycir ( [color=BLUE]/[/color] ans cnt inc lst opt sel )
- ([color=BLUE]while[/color]
- ([color=BLUE]progn[/color]
- ([color=BLUE]if[/color] ([color=BLUE]=[/color] [color=MAROON]"Diameter"[/color] opt)
- ([color=BLUE]progn[/color]
- ([color=BLUE]initget[/color] [color=MAROON]"Radius"[/color])
- ([color=BLUE]setq[/color] ans ([color=BLUE]getdist[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nSpecify Diameter [Radius]"[/color] ([color=BLUE]if[/color] *rad* ([color=BLUE]strcat[/color] [color=MAROON]" <"[/color] ([color=BLUE]rtos[/color] ([color=BLUE]*[/color] 2.0 *rad*)) [color=MAROON]">: "[/color]) [color=MAROON]": "[/color]))))
- )
- ([color=BLUE]progn[/color]
- ([color=BLUE]initget[/color] [color=MAROON]"Diameter"[/color])
- ([color=BLUE]setq[/color] ans ([color=BLUE]getdist[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nSpecify Radius [Diameter]"[/color] ([color=BLUE]if[/color] *rad* ([color=BLUE]strcat[/color] [color=MAROON]" <"[/color] ([color=BLUE]rtos[/color] *rad*) [color=MAROON]">: "[/color]) [color=MAROON]": "[/color]))))
- )
- )
- ([color=BLUE]cond[/color]
- ( ([color=BLUE]null[/color] ans)
- ([color=BLUE]setq[/color] ans *rad*)
- [color=BLUE]nil[/color]
- )
- ( ([color=BLUE]=[/color] 'str ([color=BLUE]type[/color] ans))
- ([color=BLUE]setq[/color] opt ans)
- )
- ( ([color=BLUE]=[/color] [color=MAROON]"Diameter"[/color] opt)
- ([color=BLUE]setq[/color] ans ([color=BLUE]/[/color] ans 2.0)
- *rad* ans
- )
- [color=BLUE]nil[/color]
- )
- ( ([color=BLUE]setq[/color] *rad* ans)
- [color=BLUE]nil[/color]
- )
- )
- )
- )
- ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]numberp[/color] ans) ([color=BLUE]setq[/color] sel ([color=BLUE]ssget[/color] '((0 . [color=MAROON]"LWPOLYLINE"[/color])))))
- ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] inc ([color=BLUE]sslength[/color] sel))
- ([color=BLUE]setq[/color] cnt 0
- lst [color=BLUE]nil[/color]
- )
- ([color=BLUE]foreach[/color] grp ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] inc ([color=BLUE]1-[/color] inc))))
- ([color=BLUE]if[/color] ([color=BLUE]and[/color] ([color=BLUE]=[/color] 10 ([color=BLUE]car[/color] grp)) ([color=BLUE]not[/color] ([color=BLUE]member[/color] ([color=BLUE]cdr[/color] grp) lst)))
- ([color=BLUE]progn[/color]
- ([color=BLUE]entmake[/color] ([color=BLUE]list[/color] '(0 . [color=MAROON]"CIRCLE"[/color]) grp ([color=BLUE]cons[/color] 40 ans)))
- ([color=BLUE]entmake[/color]
- ([color=BLUE]list[/color]
- '(0 . [color=MAROON]"TEXT"[/color])
- ([color=BLUE]cons[/color] 01 ([color=BLUE]itoa[/color] ([color=BLUE]setq[/color] cnt ([color=BLUE]1+[/color] cnt))))
- ([color=BLUE]cons[/color] 40 ans)
- ([color=BLUE]cons[/color] 07 ([color=BLUE]getvar[/color] 'textstyle))
- grp
- ([color=BLUE]cons[/color] 11 ([color=BLUE]cdr[/color] grp))
- '(72 . 1)
- '(73 . 2)
- )
- )
- ([color=BLUE]setq[/color] lst ([color=BLUE]cons[/color] ([color=BLUE]cdr[/color] grp) lst))
- )
- )
- )
- )
- )
- ([color=BLUE]princ[/color])
- )
在运行程序之前设置当前层(我认为不需要额外的层提示)。
@Tharwat:注意,您的代码允许选择2D(粗)或3D多段线,但只能处理LWD多段线。 |