等分布点怎么定位起始点
本帖最后由 KO你 于 2021-12-23 18:33 编辑快捷键ss等分布点
(defun c:ss ()
(initget "D F")
(setq i (getkword "\n定数等分布点<D>;定距等分布点<F>"))
(cond
((= i "D") (command"divide"))
((= i "F") (command"measure")))
(princ))
等分布点怎么定位起点呢,经常在闭合的线上等分后位置不理想,
特别在不规则的线上更难实现效果,经常在布置灯具时遇到
相信不少制图同行因此苦恼
望路过的大师高手们高抬贵手
(defun div (ent num pt / I LEN LEN1 LEN2 LEN3 PTS)
(setq len (- (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent))
(vlax-curve-getDistAtParam ent (vlax-curve-getStartParam ent))
)
)
(setq len1 (/ len num))
(setq len2 (vlax-curve-getDistAtPoint ent pt))
(setq len3 (rem len2 len1))
(setq i -1)
(setq pts '())
(repeat num
(setq pts (cons (vlax-curve-getPointAtDist ent (+ len3 (* len1 (setq i (1+ i))))) pts))
)
(reverse pts)
) 还是无法选择起始点 修改多段线起始点论坛好像有类似代码 本帖最后由 KO你 于 2021-12-30 01:09 编辑
guosheyang 发表于 2021-12-26 15:59
修改多段线起始点论坛好像有类似代码
闭合的线不好弄,如果需要的布点起点不是在线的起始点呢,怎么定义,
我之所以追求<点取>"起点"等分 修改起始点,然后再点。或者先判定顺逆,判定选取点位置跟起点的位置关系 获取子段长度,等分子段就行,不要等分整条多段线
等分点获取方式1=子段长度-等分长度倍数的余数。可以通过0.5倍的等分长度来判断是否在中点,这个可以支持弧线段
等分点获取方式2=取子段的中点,分别向两边放样。这个对直线段比较简单
页:
[1]