aloy 发表于 2022-7-5 17:06:05

插入时旋转块

大家好,
 
我有一系列的线路从一端连接到另一端。我想做两件事:
 
1) 在每条直线中心附近的垂直平分线上放置一个文本,给出直线的长度。
 
2) 在与该线对齐的每条线的中心插入一个块(箭头)。
 
我可以做第二个,但第一个不适用于以下情况,无论我用什么角度来代替0,
块以相同的原始旋转显示。

;(setq plst1(list pt pt1 alfa dis))
;(setq plist(cons plst1 plist))
(defun draw1()

(mapcar '(lambda(a) (command "_insert" "arrow" (car a) 1 1 0)) plist)

(mapcar '(lambda(a) (command "_text" "_non"(car a) 0.6 (* (caddr a) 57.3) (rtos (cadddr a) 2 2))) plist)

(princ)
)
 
有办法解决这个问题吗?。
 
提前感谢。
 
芦荟

Tharwat 发表于 2022-7-5 17:28:17

你好
 
为了对齐块,我们应该知道块的旋转。
 
如果你能上传一张显示结果的样本图,那将非常有帮助。

David Bethel 发表于 2022-7-5 17:50:44

我建议查看(entmake)箭头插入
 

;|
Assuming :
   The BLOCK "ARROW" exists in the current drawing
   The arrow direction points 0 degrees X axis WCS
   sp = Start Point
   ep = End Point
|;

(entmake (list (cons 0 "INSERT")
                (cons 2 "ARROW")
                (cons 10 (mapcar '(lambda (a b) (* (+ a b) 0.5)) sp ep))
                (cons 50 (angle sp ep))))


 
 
-大卫

aloy 发表于 2022-7-5 17:52:04

感谢David和Tharwat的回复。
 
将代码修改如下:
 
(mapcar’(lambda(a)(entmake(list(cons 0“INSERT”)(cons 2“ARROW”)(cons 10(car a))(cons 50(caddr aϨ)))plist)
 
效果完美。这是一张照片。

David Bethel 发表于 2022-7-5 18:16:39

很高兴它成功了-大卫
页: [1]
查看完整版本: 插入时旋转块