明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1117|回复: 3

[提问] 下面的程序只对直线有效 对多段线无效 应该怎么修改?

[复制链接]
发表于 2014-9-23 16:39:46 | 显示全部楼层 |阅读模式
本帖最后由 spp_wall 于 2014-9-24 12:18 编辑

(defun c:ff()
(setvar "cmdecho" 0);控制command回显,0.关闭回显 1.打开回显
(setvar "blipmode" 0);在AutoCAD中有时有交叉点标记在鼠标点击处产生,用BLIPMODE命令,在提示行下输入OFF可消除它
;(graphscr);显示 AutoCAD 图形屏幕
(setq s (entsel "\n选择第一条线"))
(setq s2 (entsel "\n选择第二条线"))
  (command "_.UCS" "")
(command "_.MOVE" s s2 "" "0,0,0" "0,0,1e99")
(command "_.MOVE" s s2 "" "0,0,0" "0,0,-1e99")
(command "_.fillet"  "r" "5"  "")
  (command "_.fillet" s s2  ) ;
(setvar "cmdecho" 1)
(princ)
)


改了几小时  还是无法实现  也许大师一下就解决了 谢谢 帮忙看看!

改成圆角 Z轴归零  对多段线也有效果!! 如果半径能改成可以自己选择就更好了!

自己完善了选择半径 见楼下 请高手再完善下:
1:现在有时候多段线进行倒圆角 会连成一条多段线 怎么在程序中最后分解多段线!
2:能不能进行半径的标注!


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-9-23 20:32:06 | 显示全部楼层
(command "_.fillet"  "r" "5" "")
(command "_.fillet" s s2)
==>
(command "_.fillet"  "r" "5")
(command "_.fillet" (cadr s) (cadr s2))
 楼主| 发表于 2014-9-23 20:51:24 | 显示全部楼层
ZZXXQQ 发表于 2014-9-23 20:32
(command "_.fillet"  "r" "5" "")
(command "_.fillet" s s2)
==>

可以用在多段线了 但是 怎么点完两条线 后还要再点一条线呢!
 楼主| 发表于 2014-9-24 12:17:13 | 显示全部楼层
(defun c:ff(/ s3 s4 )
(setvar "cmdecho" 0);控制command回显,0.关闭回显 1.打开回显
(setvar "blipmode" 0);在AutoCAD中有时有交叉点标记在鼠标点击处产生,用BLIPMODE命令,在提示行下输入OFF可消除它
;(graphscr);显示 AutoCAD 图形屏幕
(setq s (entsel "\n选择第一条线"))
(setq s2 (entsel "\n选择第二条线"))
;(setq ss(ssget s s2 ));根据选定对象创建选择集
;线段Z归零开始
  (command "_.UCS" "")
(command "_.MOVE" s s2 "" "0,0,0" "0,0,1e99")
(command "_.MOVE" s s2 "" "0,0,0" "0,0,-1e99");线段Z归零结束

;半径选择开始
(initget "A B C D E F G H I J")
(setq s3 (getkword "\n请选择半径[5(A)/10(B)/15(C)/20(D)/25(E)/30(F)/35(G)/40(H)/45(I)/50(J)]<A>:"))
(if (or (null s3) (= s3 "A")) (setq s4 "5")) ;设置半径
  (if (= s3 "B") (setq s4 "10"))
  (if (= s3 "C") (setq s4 "15"))
  (if (= s3 "D") (setq s4 "20"))
(if (= s3 "E") (setq s4 "25"))
(if (= s3 "F") (setq s4 "30"))
(if (= s3 "G") (setq s4 "35"))
(if (= s3 "H") (setq s4 "40"))
(if (= s3 "I") (setq s4 "45"))
(if (= s3 "J") (setq s4 "50"));半径选择结束

;圆角开始
(command "_.fillet"  "r" s4)
(command "_.fillet" (cadr s) (cadr s2));圆角结束


;分解开始(未完)
(setq el (entlast) )

(command "_explode" el);分解结束(未完)

;标注半径开始(未完)

;标注半径结束(未完)

(setvar "cmdecho" 1)
(princ)
)

自己完善了选择半径 请高手再完善下:
1:现在有时候多段线进行倒圆角 会连成一条多段线 怎么在程序中最后分解多段线!
2:能不能进行半径的标注!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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