只需一步,快速开始
无论改UCS或snapang都无法改变getcorner的绝对
使用道具 举报
晕,怎么就自己发表出来了
无论改UCS或snapang都无法改变getcorner的角度
可以用grread模拟斜向getcorner
但问题是无法方便的使用捕捉模式
还有可以改UCS后调用rec取lastpoint
但是必须正确输入第二点否则程序中断
请问:有没有完美的解决方案?
自动配合UCS的角度即可
大概的用途是这样的
需要在一系列的矩形区域内进行某项操作
每个矩形区域的方向不固定
大小也不固定
有就是说需要在程序中
先改变UCS
再根据矩形的两个对角点来确定矩形区域
而系统的getcorner函数
与UCS的角度无关
如果其它办法都不行的话试一试用_rectang命令配合里面的旋转应该可以模拟,
(setq p1(getpoint "\n 指定第一个角点:")
ang(点义好旋转的角度))
(command "_rectang" p1 "r" ang Pause )
获的最后生成的长方形再获的它的各顶点,应该可以满足你的要求
我没试过只是这么想!!
你说的这个思路
我前面已经说过了
“还有可以改UCS后调用rec取lastpoint
但是必须正确输入第二点否则程序中断”
就是当PAUSE时
若未输点程序会要求你继续输入
讨厌的是会出现提示
“指定另一个角点或 [尺寸(D)]:”
如果你输入选项“D”
LISP就中断了
用这样的笨办法看行不行
(defun c:jx () (setvar "cmdecho" 0) (setq os (getvar "ORTHOMODE")) (setq p1 (getpoint "\n 指定矩形区域一条边的第一点:") p2 (getpoint p1 "\n 指定矩形区域一条边的第二点:")
ang (angle p1 p2) )
(command "line" p1 p2 "") (setq o1 (entlast)) (setvar "snapang" ang) (setvar "ORTHOMODE" 1) (command "_copy" o1 "" p2 PAUSE) (if (equal p2 (getvar "lastpoint")) (command "_erase" o1 (entlast) "") ) (setvar "snapang" 0) (setvar "ORTHOMODE" os))(defun err (msg) (setvar "snapang" 0) (setvar "ORTHOMODE" os) (command ".undo" "e")
)
masterlong发表于2006-3-23 23:16:00 自动配合UCS的角度即可 大概的用途是这样的 需要在一系列的矩形区域内进行某项操作 每个矩形区域的方向不固...
回楼上
是任意的矩形区域
不是任意的矩形或四直线围成的矩形
非常感谢7楼
类似你的方法我也想过
但在我的程序里不太适合这样做
因为和其它的操作相比显得太特殊
现在我还是采用rec的方法
额外加一个提示用来提醒使用的人不要乱点
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-6-25 15:02 , Processed in 0.177690 second(s), 27 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.