算两点间距离,并定数等分这段距离
根据选取第一点,再选取第二点,算出两点间距离,然后输入定数等分数量将这段距离定数等分 (defun c:tt ()(vl-load-com)
(setvar "CMDECHO" 0)
(setqp1 (getpoint "\n第一点:")
p2 (getpoint p1 "\n第二点:")
)
;;;两点距离
(princ
(strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
)
;;;等分数量:
(setq n (getint "\n等分数量:"))
;;;等分子函数,根据两点点及等分数量得出等分点列表
(defun tt-df (p1 p2 n)
(if(> (1- n) 0)
(cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
(tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
p2
(1- n)
)
)
)
)
;;;等分点列表
(setq lst (tt-df p1 p2 n))
;;; 起点、终点、等分点处画园
(mapcar '(lambda (x)
(vla-AddPoint
(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
(vlax-3d-point x)
)
)
(append (list p1) lst (list p2))
)
(prin1)
)
这个很简单的,自己琢磨一下就行了 (defun c:tt ()
(setvar "CMDECHO" 0)
(setqp1 (getpoint "\n第一点:")
p2 (getpoint p1 "\n第二点:")
)
;;;两点距离
(princ
(strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
)
;;;等分数量:
(setq n (getint "\n等分数量:"))
;;;等分子函数,根据两点点及等分数量得出等分点列表
(defun tt-df (p1 p2 n)
(if(> (1- n) 0)
(cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
(tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
p2
(1- n)
)
)
)
)
;;;等分点列表
(setq lst (tt-df p1 p2 n))
;;; 起点、终点、等分点处画园
(mapcar '(lambda (x) (vl-cmdf "CIRCLE" x 1.0))
(append (list p1) lst (list p2))
)
(prin1)
)
cie0588 发表于 2013-5-22 12:54 static/image/common/back.gif
;等分点处画点
(mapcar '(lambda (x) (vl-cmdf "point" x ))
(append (list p1) lst (list p2))
)
(prin1)
)
请问cie0588 应如何修改才能在等分点处画点?谢谢
726613 发表于 2013-5-22 13:20 static/image/common/back.gif
;等分点处画点
(mapcar '(lambda (x) (vl-cmdf "point" x ))
(append (list p1) lst (list p2) ...
我画点一般用vla方法:(vla-AddPoint
(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
(vlax-3d-point x)
) 726613 发表于 2013-5-22 13:20 static/image/common/back.gif
;等分点处画点
(mapcar '(lambda (x) (vl-cmdf "point" x ))
(append (list p1) lst (list p2) ...
增加这一句:“(command "pdmode""3" "pdsize" "1")“
(command "pdmode""3" "pdsize" "1")
(mapcar '(lambda (x) (vl-cmdf "point" x ))
(append (list p1) lst (list p2))
)
(prin1)
)
应如何修改才能在等分点处画点?如下图
请高手指点,谢谢 cie0588 发表于 2013-5-22 13:51 static/image/common/back.gif
我画点一般用vla方法:(vla-AddPoint
(vla-get-modelspace
(vla-get-activedocument (vlax- ...
我对vla一点也不懂,请问如何放在上面程序里 ;;; 起点、终点、等分点处画园
(mapcar '(lambda (x)
(vla-AddPoint
(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
(vlax-3d-point x)
)
)
(append (list p1) lst (list p2))
) cie0588 发表于 2013-5-22 14:13 static/image/common/back.gif
;;; 起点、终点、等分点处画园
(mapcar '(lambda (x)
(vla-AddPoint
应如何处理?
页:
[1]
2