明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2038|回复: 6

修改F命令 Z轴归0倒角

[复制链接]
发表于 2012-12-28 23:35:13 | 显示全部楼层 |阅读模式
画图的时候 得用到捕捉 ,如果一个图块 Z轴不为0的话,对象捕捉和这个块有关的点(端点,中点,交点。。。)都会有个Z坐标,如果用F命令的话,会出现 两直线不共面的情况。


  1. (defun c:ff()
  2.    (setvar "cmdecho" 0)
  3.    (setvar "blipmode" 0)
  4.    (graphscr)
  5.    (prompt "倒角 Z轴归零:") (terpri)

  6.    (princ "选择第一条线")
  7. (setq s (ssget))
  8.    (setq len (sslength s))
  9.    (setq index 0)

  10.    (repeat len
  11.       (setq a (entget (ssname s index)))

  12.       (setq b10 (assoc 10 a))
  13.       (setq b11 (assoc 11 a))

  14.       (setq x10 (cadr b10))
  15.       (setq y10 (caddr b10))

  16.       (setq x11 (cadr b11))
  17.       (setq y11 (caddr b11))

  18.       (setq b101 (cons 10 (list x10 y10 0)))
  19.       (setq b111 (cons 11 (list x11 y11 0)))

  20.       (setq a (subst b101 b10 a))
  21.       (entmod a)
  22.       (setq a (subst b111 b11 a))
  23.       (entmod a)

  24.       (setq index (+ index 1))
  25.    )
  26.    (princ "第一条线Z轴已归0")
  27.    (princ "选择第二条线")
  28. (setq s2 (ssget))
  29.    (setq len2 (sslength s2))
  30.    (setq index2 0)

  31.    (repeat len2
  32.       (setq a2 (entget (ssname s2 index2)))

  33.       (setq b10 (assoc 10 a2))
  34.       (setq b11 (assoc 11 a2))

  35.       (setq x10 (cadr b10))
  36.       (setq y10 (caddr b10))

  37.       (setq x11 (cadr b11))
  38.       (setq y11 (caddr b11))

  39.       (setq b101 (cons 10 (list x10 y10 0)))
  40.       (setq b111 (cons 11 (list x11 y11 0)))

  41.       (setq a2 (subst b101 b10 a2))
  42.       (entmod a2)
  43.       (setq a2 (subst b111 b11 a2))
  44.       (entmod a2)

  45.       (setq index2 (+ index2 1))
  46.    )
  47.    (princ "第二条线Z轴已归0")
  48.    (princ "倒角成功")
  49. (command "FILLET" s s2)

  50.    (princ)
  51. )

代码十分丑陋,望高手出手。。。

   (princ "选择第一条线")
(setq s (ssget))

想用
entsel  代替,用不了噢?得怎么写才对
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-12-29 08:07:07 | 显示全部楼层
  1. (defun c:ff()
  2. (setvar "cmdecho" 0)
  3. (setvar "blipmode" 0)
  4. (graphscr)
  5. (princ "倒角 Z轴归零:")
  6. (setq s (entsel "\n选择第一条线"))
  7. (setq s2 (entsel "\n选择第二条线"))
  8. (command "_.MOVE" s s2 "" "0,0,0" "0,0,1e99")
  9. (command "_.MOVE" s s2 "" "0,0,0" "0,0,-1e99")
  10. (princ "二条线Z轴已归0\n倒角成功")
  11. (command "FILLET" s s2)
  12. (princ)
  13. )

点评

如果是pl倒角主不成功,不知为什么,line线就绝对可以.  发表于 2013-1-3 00:12
太给力啦,原来还能这么用的。。。1e99太亮了  发表于 2012-12-29 18:54

评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 很热心!!!

查看全部评分

发表于 2013-1-1 13:14:33 | 显示全部楼层
本帖最后由 millermin 于 2013-1-1 13:16 编辑

这两种归零方法我都用过,感觉效果不彻底。试用一小段时间就会发现失败的案例。所以后来我还是用flatten程序。这是et工具,你很容易获得他的源码。有兴趣可以看我的贴。
http://bbs.mjtd.com/thread-99491-1-1.html

发表于 2013-1-1 15:59:35 | 显示全部楼层
millermin 发表于 2013-1-1 13:14
这两种归零方法我都用过,感觉效果不彻底。试用一小段时间就会发现失败的案例。所以后来我还是用flatten程序 ...

可以把用flatten后来倒角的码贴上来学习一下么
.
发表于 2013-1-1 19:36:05 | 显示全部楼层
归零:
沿Z轴平移1E99,再平移-1E99,搞定。
发表于 2013-1-2 02:23:14 | 显示全部楼层
kwok 发表于 2013-1-1 15:59
可以把用flatten后来倒角的码贴上来学习一下么
.

供参考,仅适合我自己,所以你自己再调整。

(defun c:ppl( )
(vl-load-com)
(setvar "cmdecho" 0)  

  (setq sal "\nENTER DRAWINGS SCALE")
  (setq rad(* 0.6 sal))

  (setq pln1-data(entsel "\nCHOOSE the 1st LINE:"))
  (setq pln1(car pln1-data))
  (setq pt1(cadr pln1-data) )   ; osnap ***  "nea"
  
(setq pln1 (flt pln1))

(while (/= "")
  
     (setq pln2-data (entsel "\nCHOOSE the 2nd LINE:"))
     (setq pln2(car pln2-data))
     (setq pln2 (flt pln2))
     (command "EXPLODE" pln2 )      
     (setq pln2 (entlast))
     (setq pt2(cadr pln2-data) )

     (setvar "osmode" 0)
     (command "fillet" "r" rad )
     (command  "fillet" (list pln1 pt1) (list pln2 pt2) )
     (setq pt1 pt2)
     (setvar "osmode" 15359)  
  )

(princ)
)


(defun flt(ob)
(acet-autoload2 '("FLATTENSUP.LSP" (acet-flatn ss hide)))
(setq ss (ssadd))
(ssadd ob ss)
(setq ss (acet-flatn ss t))
(setq ob (ssname ss 0))
)
 楼主| 发表于 2013-1-14 02:01:03 | 显示全部楼层
ygp820601 发表于 2013-1-1 19:36
归零:
沿Z轴平移1E99,再平移-1E99,搞定。

但是 如果是 大于1E99貌似就不行了。我画图中,就用LE99这个F还是经常出现 不行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-1 23:56 , Processed in 0.182568 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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