明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

帖子
查看: 6398|回复: 12

[求助]求增强型偏移

  [复制链接]
发表于 2007-1-14 13:38:00 | 显示全部楼层 |阅读模式

取2点取一段距离,把这段距离长度按需要进行若干等分,把等分完的距离作为偏移距离,选取一个物体,拾取偏移方向,按需要的个数进行复数偏移

 望哪位朋友有业余时间,请帮忙下小弟,先道声谢谢了

发表于 2007-1-16 21:03:00 | 显示全部楼层

什么叫复数偏移

 楼主| 发表于 2007-1-17 10:52:00 | 显示全部楼层
复数偏移就是类似阵列命令
发表于 2007-1-17 18:19:00 | 显示全部楼层

;;增强型偏移 V1.0 by sailorcwx 2007.01
(defun c:offset1 ( / YH_DISTANCE YH_DISTANCE0 YH_NUMBER YH_OSMODE0 YH_POINT1 YH_POINT2 YH_POINT3 YH_SELECTION YH_TIMES )
  (setq YH_point1 (getpoint "\n选择第一个参考点 ")
 YH_point2 (getpoint YH_point1 "\n选择第二个参考点 ")
 YH_number (getint "\n输入等分数 ")
 YH_distance (/ (distance YH_point1 YH_point2) YH_number)
 YH_distance0 YH_distance
 YH_selection (entsel "\n选择偏移对象 ")
 YH_point3 (getpoint "\n选择偏移方向 ")
 YH_times (getint "\n输入偏移次数 ")
 YH_osmode0 (getvar "osmode")
 )
  (setvar "osmode" 0)
  (repeat YH_times
    (command "offset" YH_distance YH_selection YH_point3 "")
    (setq YH_distance (+ YH_distance YH_distance0))
    )
  (setvar "osmode" YH_osmode0)
  (princ)
  )

评分

参与人数 1明经币 +1 收起 理由
mccad + 1 【好评】好程序

查看全部评分

 楼主| 发表于 2007-1-17 20:05:00 | 显示全部楼层
非常感谢sailorcwx所编的程序,非常实用
 楼主| 发表于 2007-1-18 23:50:00 | 显示全部楼层
我觉得是否能再完善下,拾取2点为默认,或点击右键后(类似DLI)选取一个物体的长度为总距离来等分
发表于 2007-1-19 16:21:00 | 显示全部楼层
;;增强型偏移 V1.1 by sailorcwx 2007.01
;;====================================
;;1.offset的距离增加曲线周长等分算
;;2.定距离重复操作offset
;;====================================
(defun c:offset1 ( / YH_ENTLENGTH YH_ENTNAME YH_ENTSEL YH_DISTANCE YH_DISTANCE0 YH_NUMBER YH_OSMODE0 YH_POINT1 YH_POINT2 YH_POINT3 YH_SELECTION YH_TIMES )
  (setq YH_entlength nil
 YH_point1 (getpoint "\n选择第一个参考点或右键选择一个参考对象")
 )
  (if (= YH_point1 nil)
    (progn
      (setq YH_entsel (entsel "\n选择一个参考对象"))
      (if (= YH_entsel nil) (setq YH_entlength nil)
 (progn
   (setq YH_entname (car YH_entsel)
  YH_entlength (vlax-curve-getdistatparam YH_entname (vlax-curve-getendparam YH_entname))
  )
   )
 )
      )
    (progn
      (setq YH_point2 (getpoint YH_point1 "\n选择第二个参考点 ")
     YH_entlength (distance YH_point1 YH_point2)
     )
      )
    )
  (if (= YH_entlength nil) (princ "\n操作错误,程序退出...")
    (progn
      (setq YH_number (getint "\n输入等分数 ")
 YH_distance (/ YH_entlength YH_number)
 YH_distance0 YH_distance
     )
      (while (setq YH_selection (entsel "\n选择偏移对象 "))
 (setq YH_point3 (getpoint "\n选择偏移方向 ")
       YH_times (getint "\n输入偏移次数 ")
       YH_osmode0 (getvar "osmode")
       )
 (setvar "osmode" 0)
 (repeat YH_times
   (command "offset" YH_distance YH_selection YH_point3 "")
   (setq YH_distance (+ YH_distance YH_distance0))
   )
 (setvar "osmode" YH_osmode0)
 (setq YH_distance YH_distance0)
 )
      )
    )
  (princ)
  )
 楼主| 发表于 2007-1-19 23:11:00 | 显示全部楼层
在次感谢sailorcwx,此程序绝对实用!
发表于 2007-2-21 20:24:00 | 显示全部楼层
 

本人写的软件,完全可以满足你的要求,免费共享,本人的E-mail:zhangxinsu@yeah.net

一个辅助使用AutoCAD的工具软件,目的是为了方便工程量的计算和三维建模。

主要功能简介如下:

1、  计算菜单下的用途为获取图形中的长度、面积、体积等几何信息。

2、线段长度可计算连续的由多个图元对象组成的总长度

3、平面面积以点集和区域两种方式计算面积,点集计算以连续闭合的点形成的多边形(Closed Polyline)的面积;区域计算以连续的线段组成的region的面积,如线段不闭合则用直线将起点和终点连接使之闭合,要求所选线段应能用region命令创建区域。

4、  三维实体的体积计算所选实体的体积。

5、  实体的表面如由多块面拼接而成,可选出单独的一块查询其表面积。查询时如系曲面可点击曲面的构造线后得到,还可点击两个面交接的边线选择其中之一,在命令行中输入数字1后确定选择的面。

6、  网格建模可将网格曲面转换为包含这个曲面的实体。网格建模之一要求按行列顺序捕捉网格顶点然后按世界坐标系(WCS)的Z轴方向拉伸一定的高度,高度值必须设定大于网格顶点Z坐标在拉伸的Z方向的最大值。网格建模之二则先将网格转换为三角形的集合然后在各三角形的法矢方向扫琼拉伸。

7、  平移分布使对象沿起点和终点之间的直线方向以指定的数目复制。

切矢分布使对象沿曲线的路径和切矢以指定的数目复制并旋转,如同坐标的平移量,旋转的量为路径起点切矢旋转到曲线指定位置切矢的角度值。

8、  变更记录钮改变数据链中的当前记录,但不保存。数据保存必须通过保存菜单。

发表于 2007-3-27 23:28:00 | 显示全部楼层
能否不是等分,直接输入距离进行复数偏移?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-21 08:15 , Processed in 0.193650 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表