马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
阵列就是X,Y两方向的实体的拷贝组合。- (defun c:tt()
- (if (and (setq xnum (getint "\nX方向数量<退出>:"))
- (setq xdis (getreal "\nX方向间距<退出>:"))
- (setq ynum (getint "\nY方向数量<退出>:"))
- (setq ydis (getreal "\nY方向间距<退出>:"))
- (setq ss (ssget))
- )
- (progn
- (setq mat0 (xdrx_matrix_identity 3)
- vx (getvar "ucsxdir")
- vy (getvar "ucsydir")
- vec_x (xdrx_vector_product vx xdis);;向量(方向)乘以距离
- vec_y (xdrx_vector_product vy ydis);;阵列的X方向Y方向同当前的UCS
- )
- (setq i 1)
- (xdrx_setmark);;设置标记为以后取得新生成实体选择集
- (repeat (1- xnum)
- (setq mat_x (xdrx_matrix_setTransLation mat0 (xdrx_vector_product vec_x i));;每次拷贝的平移变换矩阵
- i (1+ i)
- )
- (xdrx_entity_transformedcopy ss mat_x);;拷贝变换(留下原来的选择集)
- )
- (setq ss1 (xdrx_getss);;获取新生成的实体选择集
- ss (xdrx_pickset_union ss ss1);;加上原来的选择集,准备Y方向变换
- )
- (setq i 1)
- (repeat (1- ynum)
- (setq mat_y (xdrx_matrix_setTransLation mat0 (xdrx_vector_product vec_y i))
- i (1+ i)
- )
- (xdrx_entity_transformedcopy ss mat_y)
- )
- )
- )
- (princ)
- )
|