明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1295|回复: 8

[提问] 程序进行捕捉点会出错

[复制链接]
发表于 2013-6-4 10:47 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 zag0666 于 2013-6-4 11:00 编辑

以下是坛友帮我写的一个程序目的是 对齐和线性标注的
时候可以控制尺寸界线长度的统一。
如附件我开的捕捉设置,进行 选择点的时候,选择 两点之间的中点
进行标注的时候,会出错,捕捉的不是两点之间的中点。
而系统自带的标注功能,同样的捕捉设置就不会出错。

好似程序缺了什么似的,如果我先用系统自带的标注  他后标注就不出错
如果先用程序标注就会出错,但 系统的依然正确
他好似直接找到了 ,而不是在我选的两点找中点


大大们能否帮忙看看?

;;;━━━━━━━━━━━━━━
(defun newerr(msg)
(command)
(command)
(setq *error* olderr)
(command "_.undo" "_e")
(setvar "cmdecho" 1)
)
(defun start()
(setvar "cmdecho" 0)
(setq olderr *error* *error* newerr)
(command "_.undo" "_be")
(initget 1)
(setq pt01 (getpoint "\n指定第一点:"))
)

(defun c:1(/ pt01 pt02 pt03 pt04 en data ang olderr)(Command "osmode" "7607" ) (setvar "clayer" "标注")
(start)
(command "_.dimlinear" pt01 (progn (princ "\n指定下一点:") pause)
(progn (setq pt03 (getpoint "\n指定尺寸线参考点<空格取消指定>:"))(princ "\n指定位置:") pause)
)
(while (= (logand (getvar "CmdActive") 1) 1)
(command pause)
)
(setq en (entlast) data (entget en))
(if pt03
(progn
(setq pt04 (cdr (assoc 10 data)))
(setq pt02 (cdr (assoc 14 data)))
(setq ang (angle pt02 pt04))
(setq pt03 (polar pt03 ang 5))
(if (or (equal ang 0 0.001)(equal ang pi 0.001)(equal ang (* 2 pi) 0.001))
(setq pt04 (cons (car pt03)(cdr pt04)))
(setq pt04 (list (car pt04)(cadr pt03)(last pt04)))
)
(setq data (subst (cons 10 pt04) (assoc 10 data) data))
(entmod data)
)
)
(newerr nil)
(princ)
)
(defun c:2(/ pt01 pt02 pt03 pt04 en data ang olderr)(Command "osmode" "7607" ) (setvar "clayer" "标注")
(start)
(command "_.dimaligned" pt01 (progn (princ "\n指定下一点:") pause)
(progn (setq pt03 (getpoint "\n指定尺寸线参考点<空格取消指定>:"))(princ "\n指定位置:") pause)
)
(while (= (logand (getvar "CmdActive") 1) 1)
(command pause)
)
(setq en (entlast) data (entget en))
(if pt03
(progn
(setq pt04 (cdr (assoc 10 data)))
(setq pt02 (cdr (assoc 14 data)))
(setq ang (angle pt02 pt04))
(setq pt04 (polar pt03 ang 5))
(setq data (subst (cons 10 pt04) (assoc 10 data) data))
(entmod data)
)
)
(newerr nil)
(princ)
)

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2013-6-4 10:54 | 显示全部楼层
好东西要附加动画演示,那会更完美!
回复

使用道具 举报

 楼主| 发表于 2013-6-4 10:59 | 显示全部楼层
有的  明明传了  怎么没有了  再传
回复

使用道具 举报

发表于 2013-6-4 11:15 | 显示全部楼层
在各个command命令中的点前加个 “_non”,以取消捕捉!

点评

wanmei  发表于 2014-4-22 09:31
回复

使用道具 举报

 楼主| 发表于 2013-6-4 11:35 | 显示全部楼层
我小白  真不知怎么改。
难道是让我多输入一个 “_non”命令?  
回复

使用道具 举报

 楼主| 发表于 2013-6-4 14:19 | 显示全部楼层
本帖最后由 zag0666 于 2013-6-4 14:59 编辑

报告一个奇怪的事情,在我 进行“两点之间的中点” 的时候 ,只要重新打开一下 捕捉设置
哪怕全部选取也不会出错。

这是否能成为解决突破点啊?

----------------------------------------------

试了好多遍   只是概率低了些   没有彻底杜绝
我故意在中点的附近绘制多条线段交叉
又是老样子   
但直接用  线性标注或对齐标注却不会出错
回复

使用道具 举报

发表于 2013-6-6 09:46 | 显示全部楼层
应该是捕捉的问题,看到command我就想到捕捉了,
回复

使用道具 举报

 楼主| 发表于 2013-6-9 12:07 | 显示全部楼层
用原 线性标注和对齐命令 在后面加上 同样的捕捉和图层的设置  就不会出错
但程序借用原命令 就会出错哦
回复

使用道具 举报

 楼主| 发表于 2013-6-9 12:20 | 显示全部楼层
插条内容

记得我在2011年的时候 找到过autocad 2006   覆盖pj的文件  不要进行注册的

然后我就小心翼翼的他藏好     过了一段时间需要的时候   打开一看     tmd   
我怎么藏了个AutoCAD2006LockedSP1 更新包     因为那东西压缩包也同样在10m左右    结果我给搞错了   郁闷至今。。。

后来再也找不到了

我记得好似在一个关于水利的  软件站下的
模糊还记得 有分类栏好像是   图形图像  3d制作

压缩包大小在10M左右 ,解压后好似 40多M

虽比较大 ,但实实在在不用注册哦。打开就用

谁有分享一下啊,我可以奖励啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 05:05 , Processed in 0.308773 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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