马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 lucas3 于 2016-11-18 14:12 编辑
- ;获得曲线等分N段的点表 ;by qjchen
- (defun fy-GetDivPt (ent times / end i lineobj plst start)
- ;times:将线段等分(100段)来获取线段上的点
- (vl-load-com)
- (setq lineObj (vlax-ename->vla-object ent)
- start (vlax-curve-getstartparam lineObj)
- end (vlax-curve-getendparam lineObj)
- i 0
- )
- (while (< i times)
- (setq plst (append plst(list (vlax-curve-getpointatparam lineObj (* i (/ (- end start) times))))) i (1+ i))
- )
- plst
- )
测试代码:
- (setq ent (car(entsel)))
- (fy-GetDivPt ent 100)
拿了直线,圆, 矩形, 样条曲线 ,都没有问题
为什么云线就有问题?
从下面的结果可以看出, 里面有很多nil - _$ (fy-GetDivPt ent 100)
- ((1708.63 1079.09 0.0) (1708.86 1080.87 0.0) (1709.99 1082.26 0.0) (1711.69 1082.84 0.0) nil nil nil (1712.54 1082.96 0.0) (1713.35 1084.44 0.0) (1714.82 1085.28 0.0) (1716.51 1085.21 0.0) nil nil nil (1717.14 1085.32 0.0) (1718.11 1086.74 0.0) (1719.69 1087.43 0.0) (1721.39 1087.18 0.0) nil nil nil (1721.84 1087.52 0.0) (1722.68 1089.02 0.0) (1724.19 1089.85 0.0) (1725.91 1089.76 0.0) nil nil nil (1726.73 1090.09 0.0) (1728.42 1090.48 0.0) (1730.07 1089.91 0.0) (1731.16 1088.55 0.0) nil nil nil (1732.24 1088.47 0.0) (1734.08 1087.58 0.0) (1735.17 1085.86 0.0) nil nil nil nil (1736.29 1083.44 0.0) (1737.47 1081.94 0.0) (1737.69 1080.04 0.0) nil nil nil nil (1738.09 1077.57 0.0) (1738.69 1075.69 0.0) (1738.2 1073.77 0.0) nil nil nil nil (1737.59 1071.32 0.0) (1737.15 1069.66 0.0) (1735.91 1068.49 0.0) nil nil nil nil (1734.04 1066.56 0.0) (1732.37 1065.54 0.0) (1730.42 1065.56 0.0) nil nil nil (1729.46 1065.92 0.0) (1727.98 1064.7 0.0) (1726.08 1064.44 0.0) (1724.33 1065.23 0.0) nil nil nil (1723.61 1065.6 0.0) (1722.0 1064.56 0.0) (1720.08 1064.52 0.0) (1718.43 1065.51 0.0) nil nil nil (1717.71 1065.75 0.0) (1716.05 1065.33 0.0) (1714.41 1065.85 0.0) (1713.31 1067.16 0.0) nil nil nil (1712.57 1067.36 0.0) (1710.82 1067.64 0.0) (1709.49 1068.81 0.0) (1708.97 1070.5 0.0) nil nil nil (1707.99 1071.5 0.0) (1706.71 1074.02 0.0) (1706.94 1076.83 0.0))
- _$ (fy-GetDivPt ent 100)
- ((1755.85 1085.77 0.0) (1755.83 1087.56 0.0) (1756.82 1089.05 0.0) (1758.48 1089.74 0.0) nil nil nil (1759.01 1090.73 0.0) (1759.99 1092.23 0.0) (1761.65 1092.91 0.0) nil nil nil (1762.93 1092.95 0.0) (1764.1 1094.35 0.0) (1765.86 1094.85 0.0) (1767.6 1094.29 0.0) nil nil nil (1768.6 1095.06 0.0) (1770.36 1095.72 0.0) (1772.19 1095.27 0.0) nil nil nil (1773.27 1094.82 0.0) (1774.88 1095.63 0.0) (1776.67 1095.39 0.0) (1778.02 1094.19 0.0) nil nil nil (1779.44 1094.12 0.0) (1781.03 1093.17 0.0) (1781.82 1091.49 0.0) nil nil nil (1782.33 1090.38 0.0) (1783.65 1089.09 0.0) (1784.02 1087.28 0.0) nil nil nil nil (1784.5 1084.58 0.0) (1784.94 1082.79 0.0) (1784.31 1081.06 0.0) nil nil nil (1784.02 1079.85 0.0) (1783.79 1078.01 0.0) (1782.58 1076.62 0.0) nil nil nil nil (1780.26 1073.94 0.0) (1778.23 1072.44 0.0) (1775.71 1072.34 0.0) nil nil nil (1774.49 1071.88 0.0) (1772.9 1071.01 0.0) (1771.09 1071.18 0.0) nil nil nil (1769.95 1071.92 0.0) (1768.51 1070.84 0.0) (1766.72 1070.75 0.0) (1765.18 1071.69 0.0) nil nil nil (1764.14 1071.14 0.0) (1762.25 1070.52 0.0) (1760.34 1071.07 0.0) nil nil nil (1759.18 1071.9 0.0) (1757.36 1072.0 0.0) (1755.91 1073.09 0.0) (1755.33 1074.82 0.0) nil nil nil (1754.18 1075.57 0.0) (1753.12 1077.11 0.0) (1753.09 1078.98 0.0) nil nil nil (1753.29 1080.36 0.0) (1752.95 1082.59 0.0) (1753.91 1084.63 0.0))
-
|