明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 802|回复: 2

[已解答] 编了个双向偏移的小程序,却无法完美执行,求大神指点

[复制链接]
发表于 2016-7-31 18:14 | 显示全部楼层 |阅读模式
本帖最后由 satin 于 2016-7-31 23:13 编辑

;本意是定义一个函数std,对线段进行两个方向便移,这里已设定偏移值为100。
;但是下面的代码有时候执行,有时候不执行。有时候执行的很乱。
代码附在文后。
以下是执行的截图说明。

【代码全文】
(defun c:std()
  (setq width 100.0)
  (setq sl (ssget '((0 . "line"))));以交互方式得到一个选择集,图元类型限定为line。
  (setq ntotal (sslength sl))
  (setq n 0)
  (while (< n ntotal);
    (progn
      (setq e (ssname sl n)
          el (entget e)
          p1 (cdr (assoc 10 el))
          p2 (cdr (assoc 11 el))
          alf (angle p1 p2) ;polar函数中的旋转角度是从ucs的正方向算起,所以需要算出并加上基础直线的方向角。
          a90 (+ alf (angtof "90.0"))
          a270 (+ alf (angtof "270.0"));计算line方向旋转90度和270度后与x轴夹角
          p3 (polar p1 a90 width)
          p4 (polar p2 a90 width)
          p5 (polar p1 a270 width)
          p6 (polar p2 a270 width)
      )         
      (command "line" p3 p4 "");一个command语句是否只能使用一次AutoCAD命令
      (command "line" p5 p6 "")
    )
    (setq n (1+ n))
  )
  princ()
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2016-7-31 21:37 | 显示全部楼层
捕捉模式得关闭

可改用 entmake 函数
 楼主| 发表于 2016-7-31 23:13 | 显示全部楼层
Andyhon 发表于 2016-7-31 21:37
捕捉模式得关闭

可改用 entmake 函数

orz, 大神你真是一针见血啊。厉害。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 17:44 , Processed in 0.174589 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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