明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1673|回复: 4

[讨论] 简易的圆内对象裁剪lisp。。就差一点了。。请大侠解决。。谢谢。。

[复制链接]
发表于 2013-3-6 21:42:46 | 显示全部楼层 |阅读模式
网上找了好多圆内对象裁剪,我这自创了个简易的裁剪。。
(defun c:kxy()
(setq bj  10.0 )   ;;设定半径
(setq py 7.0)      ;;设定矩形边长
(setvar "osmode" 0)
(setq pkxy (getpoint "Where?" ))    ;;以下在圆内构造一个矩形
(setq zb1 (list  (- (car pkxy) py)   (- (cadr pkxy) py)      ))         
(setq zb2 (list  (+ (car pkxy) py)   (- (cadr pkxy) py)      ))         
(setq zb4 (list  (- (car pkxy) py)   (+ (cadr pkxy) py)      ))         
(setq zb3 (list  (+ (car pkxy) py)   (+ (cadr pkxy) py)      ))           
(command "circle" pkxy bj )
   
(command "trim" kxyy  "f" zb1 zb2 zb3 zb4 zb1 ""  "" )   ;;此行运行不了
(command "trim" kxyy  "c" zb1 zb3  " ")                        ;;此行也运行不了

(prin1)
)  

就是最后trim运用的不好。。求解决。。谢谢。
 楼主| 发表于 2013-3-6 22:15:38 | 显示全部楼层
我是菜鸟。。没有大侠指导嘛。。
 楼主| 发表于 2013-3-7 08:07:44 | 显示全部楼层
大侠休息了。。后来自己发现问题了。。惭愧惭愧。。少了句定义。。最终可用代码如下,

(defun c:kxy()

(setq  osmode (getvar "osmode")  )
(setvar "cmdecho" 0)
   
(setq bj  1.0 )   ;;设定半径
(setq py (/ bj 1.6 ))   ;;设定半径
(setq pkxy (getpoint "Where?" ))    ;;以下在圆内构造一个矩形
(setvar "osmode" 0)

(setq zb1 (list  (- (car pkxy) py)   (- (cadr pkxy) py)      ))         
(setq zb2 (list  (+ (car pkxy) py)   (- (cadr pkxy) py)      ))         
(setq zb4 (list  (- (car pkxy) py)   (+ (cadr pkxy) py)      ))         
(setq zb3 (list  (+ (car pkxy) py)   (+ (cadr pkxy) py)      ))           

(command "circle" pkxy bj )
(setq kxyy (entlast))

(command "trim" kxyy  "" )
(command  "f" zb1 zb2 zb3 zb4 zb1 "" "")

(setvar "osmode" osmode)


(prin1)
)  
发表于 2013-3-9 20:00:05 | 显示全部楼层
看来自己成长为大侠了!!!!
发表于 2013-4-10 11:41:37 | 显示全部楼层
执行程序就提示点一个点就完了 没看到有什么效果!!   希望源码都能附个动画
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 08:16 , Processed in 0.175826 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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