明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 667|回复: 16

[提问] 请教各位大佬代码修改的思路

[复制链接]
发表于 2025-1-4 16:58:43 | 显示全部楼层 |阅读模式
打算做一个多段线生成铝板的代码,但只能实现正方向拐角圆角的大小,在反方向拐角的圆角大小是反的,请求指导一下修改的思路;
另外现在的代码,当画出两条或以上的多段线后,再运行选择其中一条多段线生成铝板,出现图片中的结果,请问代码中哪里出问题?
  1. (defun C:FP ()
  2.   (vl-load-com)
  3.   (setq S1 (entsel "\n选择线:"))
  4.   (setq PO (getpoint "\n指定偏移方向:"))
  5.   (command "OFFSET" 3 S1 PO "");偏移铝板厚度3mm
  6.   (setq S2 (entlast))
  7.   (command "FILLET" "R" 4 "");圆角4mm
  8.   (command "FILLET" "P" S1)
  9.   (command "FILLET" "R" 1 "");圆角1mm
  10.   (command "FILLET" "P" S2)
  11.   (command "FILLET" "R" 0 "");恢复圆角0mm
  12.   (setq PT1 (vlax-curve-getStartPoint (car S1)));获取S1开始点
  13.   (setq PT2 (vlax-curve-getEndPoint   (car S1)));获取S1结束点
  14.   (setq PT3 (vlax-curve-getStartPoint  S2));获取S2开始点
  15.   (setq PT4 (vlax-curve-getEndPoint    S2));获取S2结束点
  16.   (command "PLINE" PT1 PT3 "")
  17.   (setq S3 (entlast))
  18.   (command "PLINE" PT2 PT4 "")
  19.   (setq S4 (entlast))
  20.   (command "PEDIT" "M" S1 S2 S3 S4 "" "J" 0.0 "")
  21.   (setq SS (entlast))
  22.   (if (null (tblsearch "layer" "Alum._ Panel"))
  23.       (command "layer" "m" "Alum._ Panel"  "C" "150" "" "L" "" "" ""))
  24.   (if (null (tblsearch "layer" "Hatch_Alum."))
  25.       (command "layer" "m" "Hatch_Alum."   "C" "253" "" "L" "" "" ""))
  26.   (command "chprop" SS "" "La" "Alum._ Panel" "")
  27.   (command "layer" "s" "Hatch_Alum." "")
  28.   (command "-bhatch" "P" "SOLID" 1 0 "s" SS "" "")
  29.   (command "layer" "s" "0" "");返回0层
  30.   (princ)
  31. )



本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2025-1-5 21:00:47 | 显示全部楼层
chen3732088 发表于 2025-1-4 18:00
自己试了下,先圆角再偏移就解决了

也是不了内外问题。。。。和楼主第一个图片一样

  1. (defun C:FP ()
  2.   (vl-load-com)
  3.   (setq S1 (entsel "\n选择线:"))
  4.   (setq PO (getpoint "\n指定偏移方向:"))
  5.   (command "FILLET" "R" 4 "");圆角4mm
  6.   (command "FILLET" "P" S1)
  7.   (command "OFFSET" 3 S1 PO "");偏移铝板厚度3mm
  8.   (setq S2 (entlast))
  9.   (command "FILLET" "R" 1 "");圆角1mm
  10.   (command "FILLET" "P" S2)
  11.   (command "FILLET" "R" 0 "");恢复圆角0mm
  12.   (setq PT1 (vlax-curve-getStartPoint (car S1)));获取S1开始点
  13.   (setq PT2 (vlax-curve-getEndPoint   (car S1)));获取S1结束点
  14.   (setq PT3 (vlax-curve-getStartPoint  S2));获取S2开始点
  15.   (setq PT4 (vlax-curve-getEndPoint    S2));获取S2结束点
  16.   (if (null (tblsearch "layer" "Alum._ Panel"))
  17.       (command "layer" "m" "Alum._ Panel"  "C" "150" "" "L" "" "" ""))
  18.   (command "chprop" S1 "" "La" "Alum._ Panel" "")
  19.   (command "chprop" S2 "" "La" "Alum._ Panel" "")
  20.   (princ)
  21. )
回复 支持 反对

使用道具 举报

发表于 2025-1-5 17:32:25 | 显示全部楼层
  1. (defun c:tt ()
  2.   "倒角优化"
  3.   (setvar "cmdecho" 0)
  4.   (or dd (setq dd 20.))
  5.   (setq dd (Udist 7 "" "倒角距离<输入或鼠标直接量取>" dd nil))
  6.   (setvar 'CHAMFERA dd)
  7.   (setvar 'CHAMFERB dd)
  8.   (command "chamfer" "u")
  9.   (princ)
  10. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-6 08:36:25 | 显示全部楼层
675513233 发表于 2025-1-5 20:56
好像不行,我不需要填充和铝板线头尾闭合连线,能否改一下给我看看。谢谢大哥

抱歉,这种也不行,我的思路是错的,当时快下班没试验过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-4 17:21:56 | 显示全部楼层
能不能偏移后打散,再判断两线与X轴之间的角度?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-4 18:00:59 | 显示全部楼层
自己试了下,先圆角再偏移就解决了
回复 支持 反对

使用道具 举报

发表于 2025-1-4 23:16:17 | 显示全部楼层
反方向的话S1对应的就是圆角1mm了,不是4mm
回复 支持 反对

使用道具 举报

发表于 2025-1-4 23:21:09 | 显示全部楼层
完美 发表于 2025-1-4 23:16
反方向的话S1对应的就是圆角1mm了,不是4mm

刚才理解错楼主的意思了,抱歉,请忽略我的回答
回复 支持 反对

使用道具 举报

发表于 2025-1-4 23:36:28 | 显示全部楼层
(command "fillet" "r" 4 “”) 类似都多了一个回车

点评

谢谢院长指导  发表于 2025-1-6 08:37
回复 支持 反对

使用道具 举报

发表于 2025-1-5 20:56:52 | 显示全部楼层
chen3732088 发表于 2025-1-4 18:00
自己试了下,先圆角再偏移就解决了

好像不行,我不需要填充和铝板线头尾闭合连线,能否改一下给我看看。谢谢大哥
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-22 17:46 , Processed in 0.198206 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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