求输入一个值算出曲线多少等分的近似值等分并画线
本帖最后由 kwok 于 2012-8-30 10:14 编辑通过选一条的曲线或在图上用鼠标点2点作总距离让近似值来等分,并在等分位加线(线的长度可以自定),俩头不用加线,
把等分位画的线指定到指定图层"01",
通过输入一个A值来算曲线可以分成多少份,分多少分通过计算由软件定,可以是比A多或少,找最相近的B值,A≈B±n
谢谢!
附上上面的示意图.
Try
(defun C:test ()
(setq p1 (getpoint "\n P1: ") ; 提示自己改
p2 (getpoint "\n P2: ")
vv (angle p1 p2)
v1 (+ vv (* Pi 0.5))
dd (distance p1 p2)
aa (getint "\n A值: ")
nn (/ dd aa)
nn (atoi (rtos nn 2 0))
dd (/ dd nn)
nn (1- nn)
)
(repeat nn
(setq p1 (polar p1 vv dd)
p2 (polar p1 v1 10)
)
(entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2) '(8 . "01")))
)
)
选一条的曲线时要得到怎样的结果图呢? 本帖最后由 xyp1964 于 2012-8-30 08:33 编辑
;; 输入一个值算出曲线多少等分的近似值等分并画线
;; 伪源码需要e派工具箱(XCAD)的支持
(defun c:tt (/ ss i s1)
(CMDLA0)
(setq d1 (Udist 7 "" "间距<输入或鼠标直接量取>" d1 nil))
(setq d2 (Udist 7 "" "线长<输入或鼠标直接量取>" d2 nil))
(princ"\n选择曲线: ")
(setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))
i-1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
(foreach pt (cdr (reverse (cdr(xyp-get-CurveDivNumPtlst s1(+ (fix (/ (xyp-get-CurveLength s1) d1)) 1)))))
(xyp-Faxian s1 pt d2)
)
)
(CMDLA1)
) 此类问题论坛里答案很多!在搜索栏键入“等分曲线”,会出来一堆结果!
参见:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92651 Andyhon 发表于 2012-8-30 08:05 static/image/common/back.gif
选一条的曲线时要得到怎样的结果图呢?
附上图了,谢谢. Gu_xl 发表于 2012-8-30 08:43 static/image/common/back.gif
此类问题论坛里答案很多!在搜索栏键入“等分曲线”,会出来一堆结果!
参见:
http://bbs.mjtd.com/foru ...
是需要通过输入一个数值来算这段距离大概可以分多少份,等份出来的每段距离是近似值,
单纯的等分等距就直接div或me了.谢谢 您的样图还只是 用鼠标点2点作总距离(直线例) xyp1964 发表于 2012-8-30 08:32 static/image/common/back.gif
画的垂直线段没有放到指定层,如01层. ...可以当作是直线例...
选一条的曲线 时置之不理
页:
[1]
2