greatzmy 发表于 2009-11-27 21:58:00

[求助]让对象沿着曲线移动、但始终和曲线切线垂直?

本帖最后由 作者 于 2009-11-27 22:30:14 编辑 <br /><br /> <p>RT,不知道哪位高手能开发一个程序,最好是在移动的同时也能复制。 </p><p>沿着曲线移动这个简单,但关键是怎么让移动的对象,始终和曲线切线垂直?</p>

xyp1964 发表于 2025-3-11 17:24:06


guankuiwu 发表于 2021-12-29 16:43:58

太好了!正好用上!

xianaihua 发表于 2009-11-28 10:26:00

龙龙仔 发表于 2009-11-28 16:58:00

本帖最后由 作者 于 2009-11-30 8:07:01 编辑 <br /><br /> <p>這個功能我好像有發過(但找不到...重發)</p><p>;;給個思路,如何實現實體沿Spline曲線"動態"移動?<br/>;;前幾日下載lcsfm樓主的機械標注工具程式,試用後發現其在程式中生成的<br/>;;實體如粗糙度(無名塊),在未確定標注點前可沿實體如Spline曲線"動態"<br/>;;移動,在移動過程中隨曲線變化可隨時變換粗糙度方向,這一功能如何在<br/>;;Lisp程式中實現,請大家給個思路...... </p><p>;;BY LUCAS(龍龍仔)<br/>;;只把沿曲線"動態"移動寫出,希望你能把它完整寫出<br/>;;需配合"123"圖塊(附件)<br/>(defun C:BB (/ ANG BOOLEAN CODE CURVE-OBJ ENT MOTION PT PT1 PT2)<br/>&nbsp; (vl-load-com)<br/>&nbsp; (setq&nbsp;CURVE-OBJ (vlax-ename-&gt;vla-object<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (car (setq ENT (entsel "\nSelect Curve: ")))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (setq&nbsp;ANG (angle '(0 0 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp; (vlax-curve-getfirstderiv<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CURVE-OBJ<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-curve-getparamatpoint<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CURVE-OBJ<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq PT2 (osnap (cadr ENT) "NEA"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (command "_.INSERT" "BB" PT2 "10" "" (/ (* ANG 180) pi))<br/>&nbsp; (setq BOOLEAN t)<br/>&nbsp; (setq ENT (entget (entlast)))<br/>&nbsp; (while BOOLEAN<br/>&nbsp;&nbsp;&nbsp; (setq MOTION (grread t 15 0))<br/>&nbsp;&nbsp;&nbsp; (setq CODE (car MOTION))<br/>&nbsp;&nbsp;&nbsp; (cond<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= CODE 5)&nbsp;&nbsp;&nbsp;;滑鼠遊移<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq PT (cadr MOTION))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (not (equal PT PT2))<br/>&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp; (setq PT1 (vlax-curve-getclosestpointto CURVE-OBJ PT))<br/>&nbsp;&nbsp;&nbsp; (setq ENT (subst (cons 10 PT1) (assoc 10 ENT) ENT))<br/>&nbsp;&nbsp;&nbsp; (setq ANG (+ (* 1.5 pi) (angle PT1 PT)))<br/>&nbsp;&nbsp;&nbsp; (setq ENT (subst (cons 50 ANG) (assoc 50 ENT) ENT))<br/>&nbsp;&nbsp;&nbsp; (setq ENT (entmod ENT)<br/>&nbsp;&nbsp; PT2 PT<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((= CODE 3)&nbsp;&nbsp;&nbsp;;滑鼠左鍵按下 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq BOOLEAN NIL)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>&nbsp; (princ)<br/>)</p>

龙龙仔 发表于 2009-11-30 08:08:00

重發如上

飞的妖儿 发表于 2010-6-6 09:16:00

good

xiaowen 发表于 2010-6-9 15:15:00

多谢分享,学习了...下来使用一下.

srm 发表于 2010-8-10 11:27:00

very good

lidaxiu 发表于 2012-1-10 18:02:34

厉害,有捕捉点更好了!!!

瀛州流水 发表于 2012-9-27 17:30:20

下来试试下来试试下来试试

jack11280 发表于 2012-10-7 10:33:48

可以讓對象改成是建立的相機嘛
因為想看3d圖
页: [1] 2
查看完整版本: [求助]让对象沿着曲线移动、但始终和曲线切线垂直?