[求助]让对象沿着曲线移动、但始终和曲线切线垂直?
本帖最后由 作者 于 2009-11-27 22:30:14 编辑 <br /><br /> <p>RT,不知道哪位高手能开发一个程序,最好是在移动的同时也能复制。 </p><p>沿着曲线移动这个简单,但关键是怎么让移动的对象,始终和曲线切线垂直?</p>太好了!正好用上! 本帖最后由 作者 于 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/> (vl-load-com)<br/> (setq CURVE-OBJ (vlax-ename->vla-object<br/> (car (setq ENT (entsel "\nSelect Curve: ")))<br/> )<br/> )<br/> (setq ANG (angle '(0 0 0)<br/> (vlax-curve-getfirstderiv<br/> CURVE-OBJ<br/> (vlax-curve-getparamatpoint<br/> CURVE-OBJ<br/> (setq PT2 (osnap (cadr ENT) "NEA"))<br/> )<br/> )<br/> )<br/> )<br/> (command "_.INSERT" "BB" PT2 "10" "" (/ (* ANG 180) pi))<br/> (setq BOOLEAN t)<br/> (setq ENT (entget (entlast)))<br/> (while BOOLEAN<br/> (setq MOTION (grread t 15 0))<br/> (setq CODE (car MOTION))<br/> (cond<br/> ((= CODE 5) ;滑鼠遊移<br/> (setq PT (cadr MOTION))<br/> (if (not (equal PT PT2))<br/> (progn<br/> (setq PT1 (vlax-curve-getclosestpointto CURVE-OBJ PT))<br/> (setq ENT (subst (cons 10 PT1) (assoc 10 ENT) ENT))<br/> (setq ANG (+ (* 1.5 pi) (angle PT1 PT)))<br/> (setq ENT (subst (cons 50 ANG) (assoc 50 ENT) ENT))<br/> (setq ENT (entmod ENT)<br/> PT2 PT<br/> )<br/> )<br/> )<br/> )<br/> ((= CODE 3) ;滑鼠左鍵按下 <br/> (setq BOOLEAN NIL)<br/> )<br/> )<br/> )<br/> (princ)<br/>)</p> 重發如上 good 多谢分享,学习了...下来使用一下. very good 厉害,有捕捉点更好了!!! 下来试试下来试试下来试试 可以讓對象改成是建立的相機嘛
因為想看3d圖
页:
[1]
2