明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2393|回复: 12

画双线求修改

[复制链接]
发表于 2020-6-24 08:05:16 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 yangchao2005090 于 2020-6-24 08:25 编辑

下面是论坛的代码,能否实现自己命令行输入两边的偏移距离(输入一次比如,100,自动两侧偏移100,如果能够记忆功能最好,比如下次直接是100),生成中心线保留
  1. ;;http://bbs.mjtd.com/thread-180485-1-1.html
  2. (defun c:tt (/ en lay)
  3.   (command "-layer" "m" "aa" "c" 1 ""  "L" "continuous" "" "");创建新层  
  4.   (setq lay(getvar "clayer"))
  5.   (setvar "clayer"  "aa")
  6.   (setvar "OSMODE" 15359)
  7.   (command "_.PLINE")
  8.   (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  9.   (setq en( vlax-ename->vla-object (entlast)))
  10.   (vla-offset en 50)
  11.   (vla-offset en -50)
  12.   (entdel en)
  13.   (setvar "clayer" lay)
  14. )


最佳答案

查看完整内容

;;原位生成中心线? (defun c:tt (/ en lay) (if (null dist) (setq dist (getreal "\n输入偏移距离: ")) (setq dist (getreal (strcat "\n输入偏移距离: "))) ) (if (null dist) (setq dist 100.0)) (if (= (tblseARCh "layer" "aa") nil) (progn(command "-layer" "m" "aa" "c" 1 "" "L" "continuous" "" "")(setq lay (getvar "clayer"))(setvar "clayer" "aa")) (progn(setq lay (getvar " ...
发表于 2020-6-24 08:05:17 | 显示全部楼层
;;原位生成中心线?
(defun c:tt (/ en lay)
  (if (null dist)
    (setq dist (getreal "\n输入偏移距离<100>: "))
    (setq dist (getreal (strcat "\n输入偏移距离<" (rtos dist 2 2) ">: ")))
  )
  (if (null dist) (setq dist 100.0))
  (if (= (tblseARCh "layer" "aa") nil)
    (progn(command "-layer" "m" "aa" "c" 1 ""  "L" "continuous" "" "")(setq lay (getvar "clayer"))(setvar "clayer"  "aa"))
    (progn(setq lay (getvar "clayer"))(setvar "clayer"  "aa"))
  )
  (setvar "OSMODE" 15359)
  (command "_.PLINE")
  (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  (setq en( vlax-ename->vla-object (entlast)))
  (vla-offset en dist)
  (vla-offset en (- dist))
  (if lay (setvar "clayer" lay))
  (princ)
)
回复

使用道具 举报

发表于 2020-6-24 09:10:39 | 显示全部楼层
;;
(defun c:tt (/ en lay)
  (or dist
      (setq dist (getreal "\n输入偏移距离<100>: "))
  )
  (if (null dist) (setq dist 100.0))
  (if (= (tblseARCh "layer" "aa") nil)
    (progn(command "-layer" "m" "aa" "c" 1 ""  "L" "continuous" "" "")(setq lay (getvar "clayer"))(setvar "clayer"  "aa"))
    (progn(setq lay (getvar "clayer"))(setvar "clayer"  "aa"))
  )
  (setvar "OSMODE" 15359)
  (command "_.PLINE")
  (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  (setq en( vlax-ename->vla-object (entlast)))
  (vla-offset en dist)
  (vla-offset en (- dist))
  (vla-delete en)
  (if lay (setvar "clayer" lay))
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2020-6-24 13:47:32 | 显示全部楼层
satan421 发表于 2020-6-24 09:10
;;
(defun c:tt (/ en lay)
  (or dist

您好,这个好像有点问题,再次输入命令tt时,不提示输入偏移距离
回复

使用道具 举报

 楼主| 发表于 2020-6-24 13:52:19 | 显示全部楼层
satan421 发表于 2020-6-24 09:10
;;
(defun c:tt (/ en lay)
  (or dist

还有可否沿着参考中心线原位生成中心线,也就是此命令沿着参考线生成一条线,然后依据偏移距离一边生成一条线,共三条线
回复

使用道具 举报

发表于 2020-6-24 19:33:04 | 显示全部楼层
本帖最后由 1028695446 于 2020-6-24 19:40 编辑

我来试试,在satan421的基础上修改的
偏移距离正值保留原线,并改改线型为 中心线
偏移距离负值删除原线

本帖子中包含更多资源

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

x

点评

如果改成动态的就更好了。  发表于 2021-7-26 22:22
回复

使用道具 举报

 楼主| 发表于 2020-6-24 21:59:31 | 显示全部楼层
1028695446 发表于 2020-6-24 19:33
我来试试,在satan421的基础上修改的
偏移距离正值保留原线,并改改线型为 中心线
偏移距离负值删除原线
...

这个也很好,也谢谢你
回复

使用道具 举报

发表于 2020-8-6 21:34:34 | 显示全部楼层
这个也很好,也谢谢你
回复

使用道具 举报

发表于 2021-10-23 16:16:38 | 显示全部楼层
这个很好用,很喜欢
回复

使用道具 举报

发表于 2021-12-20 10:29:57 | 显示全部楼层
太好了,佩服佩服,这可以做画平面公路使用,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 07:56 , Processed in 0.192713 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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