明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 751|回复: 4

源码倒角反了

[复制链接]
发表于 2024-12-22 22:35:09 | 显示全部楼层 |阅读模式
直线和直线可以  直线和内弧可以 直线和外弧就反了方向了 有大神帮忙看下什么原因吗  附件和下面的代码一样的 谢谢了



  • (defun c:qaz ()
  •   (vl-load-com)
  • ;; 定义变量
  •   (setq angle 45.0)  ;; 扇形角度
  •   (setq radius 300)  ;; 扇形的半径
  • ;; 选择扇形的中心点
  •   (setq pt1 (getpoint "\n选择扇形的中心点: "))
  • ;; 计算扇形的端点
  •   (setq angle1 (/ angle 2))  ;; 计算扇形的一半角度
  •   ;; 计算两个端点的坐标(通过极坐标转换)
  •   (setq pt2 (polar pt1 (deg2rad (- 90 angle1)) radius)) ;; 第一个端点(左侧)
  •   (setq pt3 (polar pt1 (deg2rad (+ 90 angle1)) radius)) ;; 第二个端点(右侧])
  •         (setq midpoint (polar pt1 (deg2rad 90) radius)) ;; 中心点
  •         (setq midpoint1 (polar pt1 (deg2rad 90) 240)) ;; 中心点
  •   ;; 画扇形的两条边
  •   (command "LINE" pt2 pt1 "")  ;; 画从中心点到第一个端点的直线
  •   (setq line-entity1 (entlast))
  •   (command "LINE" pt3 pt1 "")  ;; 画从中心点到第二个端点的直线
  •   (setq line-entity2 (entlast))
  •         (command "LINE" pt2 pt3 "")  ;; 画从中心点到第二个端点的直线
  •   (setq line-entity3 (entlast))
  •   ;; 画弧线(扇形的弧)第一条弧长
  •   (command "ARC" pt2 midpoint pt3)
  •   ;; 获取刚绘制的圆弧的实体名称
  •   (setq arc-entity (entlast)) ; 获取图形数据库中最后绘制的实体,也就是刚画的圆弧
  •         (command "ARC" pt2 midpoint1 pt3)
  •         (setq arc-entity1 (entlast))
  •   ;; 调整倒角半径(负值:朝内侧)
  •   (setq A (getvar "FILLETRAD")) ; 获取默认倒角半径
  •   (setq B (getreal "\012请输入倒角半径:")) ; 提示新设置倒角
  •   (if (= B nil) (setq B A)) ; 如果没有设置就用A
  •         (setvar "FILLETRAD" B) ;
  •   ;(setvar "FILLETRAD" (- B)) ; 不能设置为负数报错
  •   ;; 执行倒角命令
  •   (command "_fillet" line-entity1 arc-entity)  ; 互换顺序也没用
  •   ;(command "_fillet" "R" 10 arc-entity5 line-entity4)
  •   (princ "\n倒圆角命令已执行完毕.")
  •   (princ)
  • )
  • (defun deg2rad (deg)
  •   (* pi (/ deg 180.0)))  ; 辅助函数:将角度转换为弧度

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2024-12-23 11:34:07 | 显示全部楼层
看的眼睛疼
回复 支持 0 反对 1

使用道具 举报

发表于 2024-12-23 17:42:09 | 显示全部楼层
xunifengshen 发表于 2024-12-23 16:54
厉害了大哥 倒角命令你用的中点对中点  我一直用对象  怪不得不对啊 那如果这个中点有两条直线通过 会不 ...
还可以更改点的位置或者
  1. (command "_fillet" (list line-entity1 (lm-mipt pt2 pt1)) (list arc-entity midpoint))

评分

参与人数 1金钱 +6 收起 理由
xunifengshen + 6 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-12-23 12:08:55 | 显示全部楼层
函数名不可设置为变量
  1. (vl-load-com)
  2. (defun c:qaz (/ a an angle1 arc-entity arc-entity1 b deg2rad line-entity1 line-entity2 line-entity3 lm-mipt midpoint midpoint1 pt1 pt2 pt3 radius)
  3.         (defun deg2rad (deg)
  4.                 (* pi (/ deg 180.0))
  5.         )
  6.         (defun lm-mipt(p1 p2)(mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2))
  7.         (setq an 45.0)
  8.         (setq radius 300)
  9.         (setq pt1 (getpoint "\n选择扇形的中心点: "))
  10.         (setq angle1 (/ an 2))
  11.         (setq pt2 (polar pt1 (deg2rad (- 90 angle1)) radius)) ;; 第一个端点(左侧)
  12.         (setq pt3 (polar pt1 (deg2rad (+ 90 angle1)) radius)) ;; 第二个端点(右侧])
  13.         (setq midpoint (polar pt1 (deg2rad 90) radius)) ;; 中心点
  14.         (setq midpoint1 (polar pt1 (deg2rad 90) 240)) ;; 中心点
  15.         (command "LINE" pt2 pt1 "")  ;; 画从中心点到第一个端点的直线
  16.         (setq line-entity1 (entlast))
  17.         (command "LINE" pt3 pt1 "")  ;; 画从中心点到第二个端点的直线
  18.         (setq line-entity2 (entlast))
  19.         (command "LINE" pt2 pt3 "")  ;; 画从中心点到第二个端点的直线
  20.         (setq line-entity3 (entlast))
  21.         (command "ARC" pt2 midpoint pt3)
  22.         (setq arc-entity (entlast)) ; 获取图形数据库中最后绘制的实体,也就是刚画的圆弧
  23.         (command "ARC" pt2 midpoint1 pt3)
  24.         (setq arc-entity1 (entlast))
  25.         (setq A (getvar "FILLETRAD")) ; 获取默认倒角半径
  26.         (setq B (getreal "\012请输入倒角半径:")) ; 提示新设置倒角
  27.         (if (= B nil) (setq B A)) ; 如果没有设置就用A
  28.         (setvar "FILLETRAD" B) ;
  29.         (command "_fillet" (lm-mipt pt2 pt1) midpoint)
  30.         (command "_fillet" (lm-mipt pt3 pt1) midpoint)
  31.         (princ "\n倒圆角命令已执行完毕.")
  32.         (princ)
  33. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-23 16:54:22 | 显示全部楼层
飞雪神光 发表于 2024-12-23 12:08
函数名不可设置为变量

厉害了大哥 倒角命令你用的中点对中点  我一直用对象  怪不得不对啊 那如果这个中点有两条直线通过 会不会产生混乱
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-22 02:15 , Processed in 0.199776 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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