本帖最后由 vitalgg 于 2024-10-12 14:58 编辑
能。
步骤:
1、批量选圆
2、生成圆上8点。ssget 围栏选文字。
3、文字从上到下排序,合并文字
- (setq ents-circle (pickset:to-list (ssget '((0 . "circle")))))
- (foreach
- circle% ents-circle
- ;; 生成8分围栏点
- (setq pts (curve:circle2pts circle% 8))
- ;; 合并文字
- (if (setq txts(pickset:to-list (ssget "cp" pts '((0 . "text")))))
- (progn
- (entity:make-text
- (string:from-list
- (mapcar '(lambda(x)
- (entity:getdxf x 1))
- (pickset:sort
- txts
- "Yx"
- 0))
- "-")
- (polar
- (entity:getdxf circle% 10)
- 0
- (entity:getdxf circle% 40))
- (* 0.3 (entity:getdxf circle% 40))
- 0 0.72 0 "lb")
- )))
运行以上代码,需@lisp函数库支持,扫码了解更多。
|