ivde
发表于 2015-10-4 23:37:34
hastan 发表于 2015-10-4 12:27 static/image/common/back.gif
做的到就可以
现学了下 G 版的 RxApi
需要G版的 API 库
尚需优化,输出自己增加
(defun c:tt (/ ss dis ps box ss v pb sss m n p0 pls pts _pi2 trilst)
(if (and (setq dis (getdist "\nDistance of Axis: "))
(setq ps (ssget "+.:S" '((0 . "*Polyline"))))
(setq pl (ssname ps 0))
(setq pls (xlrx-curve-getstretchpoints pl))
(setq ss (ssget "x" '((0 . "insert") (2 . "99"))))
(setq sss (XLRX-TriAngle ss ps nil t))
)
(progn
(setq box (list (apply 'mapcar (cons 'min pls))
(apply 'mapcar (cons 'max pls))
)
v (mapcar 'abs (apply 'mapcar (cons '- box)))
pb (car box)
m (fix (/ (car v) dis))
n (fix (/ (cadr v) dis))
p0 pb
trilst (mapcar 'xlrx-curve-getstretchpoints
(xlrx-pickset->list sss)
)
)
(repeat m
(setq pts (cons (setq p0 (polar p0 0.0 dis)) pts))
)
(setq pts (cons pb (reverse pts))
_pi2 (/ pi 2)
)
(mapcar
'(lambda (b / stri)
(if (setq stri
(vl-member-if
'(lambda (c)
(apply 'xlrx-point-getTriIntersElev (cons b c))
)
trilst
)
)
(apply 'xlrx-point-getTriIntersElev (cons b (car stri)));_能计算高程的点
(entmake (list '(0 . "point") (cons 10 b)));_三角网外部的点
)
)
(apply
'append
(mapcar '(lambda (x / p ptl)
(setq p x)
(repeat n
(setq ptl (cons (setq p (polar p _pi2 dis)) ptl))
)
(vl-remove-if
'(lambda (a)
(not (XLRX-Point-IsInPoly1 a pls))
)
(cons x (reverse ptl))
)
)
pts
)
)
)
)
)
(princ)
)
hastan
发表于 2015-10-5 19:15:10
ivde
发表于 2015-10-5 19:56:05
置顶帖子
XLRX_API for CAD2004~2014函数库 2015.08.27更新
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=113010&mobile=yes
hastan
发表于 2015-10-5 21:33:14
hastan
发表于 2015-10-5 21:38:04
ivde
发表于 2015-10-5 22:13:22
(apply 'xlrx-point-getTriIntersElev (cons b (car stri)));_能计算高程的点
这部分点就可以输出了
hastan
发表于 2015-10-6 19:27:04
ivde
发表于 2015-10-6 21:54:54
已经算出来了
hastan
发表于 2015-10-6 22:45:09
liqiuyulove
发表于 2015-10-7 11:25:45
好东西啊 真神奇