这样的圆拖拉变形
如图,在输入指定的红色中心线总长度后,可以动态拖拉成不同长宽,保证4MM不变,怎么做到啊?输入的值如果能设置为中心线或外围线,内圈线的值更好,需要lisp的程序
(DEFUN C:TT (/ PT ZC ERR LOOP GR CODE PC L1 R PTT ANG P1 P2 P3 P4 EC E1
E2)
(SETQ Pt (GETPOINT "\n插入中心点"))
(if (not pt)
(vl-exit-with-value 0)
)
(setq zc (getreal "\n输入周长"))
(FOREACH X (LIST "CENTER2" )
(setq
err (vl-catch-all-apply
'vla-Load
(list (vla-get-Linetypes
(vla-get-ActiveDocument (vlax-get-acad-object))
)
X
"acad.lin"
)
)
)
(if(vl-catch-all-error-p err)
(if (= (vl-catch-all-error-message err)
"Automation Error. Duplicate record name"
)
(alert (strcat "A line type named '" X "' already exists."))
)
)
)
(setqloop t)
(WHILE LOOP
(setq gr (grread t 15 0)
code (car gr)
Pc (cadr gr)
)
(cond
((= code 5) ; 鼠标移动
(redraw)
(FOREACHX (LIST EC E1 E2)
(if X
(entdel X)
)
)
(setq l1 (distance pt pc)
r (/ (- zc l1 l1) 2 pi)
)
(IF (> R 4)
(PROGN
(SETQ ptt pc
ANG (ANGLE PT PTT)
p1(polar pt (+ ANG (* 0.5 pi)) r)
p2(polar pt (+ ANG (* 1.5 pi)) r)
p3(polar ptt (+ ANG (* 1.5 pi)) r)
p4(polar ptt (+ ANG (* 0.5 pi)) r)
ec(entmakex(LIST
'(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
'(90 . 5)
'(70 . 1)
(CONS 10 P1)
'(42 . 0.0)
(CONS 10 P4)
'(42 . -1.0)
(CONS 10 P3)
'(42 . 0.0)
(CONS 10 P2)
'(42 . -1.0)
)
)
)
(VLA-OFFSET (vlax-ename->vla-object EC) 2)
(SETQ E1 (ENTLAST))
(VLA-OFFSET (vlax-ename->vla-object EC) -2)
(SETQ E2 (ENTLAST))
(VLA-PUT-COLOR(vlax-ename->vla-object EC)1)
(VLA-PUT-Linetype(vlax-ename->vla-object EC)"CENTER2")
)
)
)
((= code 3) ; 鼠标左键
(redraw)
(setq loop nil)
)
((= code 2) ; 鼠标左键
(redraw)
(setq loop nil)
)
)
)
)
其实,没啥用,lisp函数grread的缺陷,没办法支持捕捉,只能看着好玩。想要精准捕捉,还是要net或者c++
看你这三个图红色中心线总长度不相等吧,动态拖动总长度可变? ssyfeng 发表于 2023-6-16 22:04
看你这三个图红色中心线总长度不相等吧,动态拖动总长度可变?
总长度是相等的,就是用户输入的指定值长度,拖动不变,总长度等于输入值 1.拖动描述不清楚,怎么拖动?夹点拖动?。2.长度保持不变,谁可以变?圆弧,直线? 本帖最后由 戏男 于 2023-6-17 09:07 编辑
liuhe 发表于 2023-6-17 08:17
1.拖动描述不清楚,怎么拖动?夹点拖动?。2.长度保持不变,谁可以变?圆弧,直线?
F:\5象这样,能以中心点变化更好 戏男 发表于 2023-6-17 09:02
象这样,能以中心点变化更好
老板提了这么多需求,直接联系我打包一站式为您解决了。 动态块,固定周长 SdlFreeCAD 发表于 2023-6-30 11:23
老板提了这么多需求,直接联系我打包一站式为您解决了。
:lol:lol:lol:lol 戏男 发表于 2023-6-30 19:01
需要加QQ1005144760
页:
[1]
2