明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3942|回复: 10

如何用lisp写圆直径标注的程序

  [复制链接]
发表于 2004-6-16 17:30:00 | 显示全部楼层 |阅读模式
只画一个圆时,只要取的圆上一点p1,(command "dimdiameter" p1 "")就可实现标注,
但是当圆在某个图纸中占的地方比较小时,用上述命令则提示未选择到圆,只有窗选放大圆,再执行以上命令,才可实现(还有一个问题:p1点只有在45度时才有效,其他角度则不行,?)
不只为何?

发表于 2004-6-16 20:10:00 | 显示全部楼层
我好像没有这些问题,不知你的P1是如何得到的
发表于 2004-6-16 20:14:00 | 显示全部楼层
wzg发表于2004-6-16 17:30:00回复:(wzg)如何用lisp写圆直径标注的程序 只画一个圆时,只要取的圆上一点p1,(command \"dimdiameter\" p1 \"\")就可实现标注,但是当圆在某个图纸中占的地方比较小时,用上述命...

当圆在某个图纸中占的地方比较小时 是不是抓点的问题,把抓点模式设为无看看
 楼主| 发表于 2004-6-16 20:29:00 | 显示全部楼层
p1用polar         圆心点          角度                 半径 得到
 楼主| 发表于 2004-6-16 20:48:00 | 显示全部楼层
(defun c:g()
(command "rectang" '(0 0) '(6000 160))
(setq p1 '(0 0))
(command "circle" p1 5)
(setq p2 (polar p1 0 5))
(command "dimdiameter" p2 "" )
) 在上述程序中,先画了一个矩形,再画了一个半径为5的圆,取得圆上一点p1(0 5) 但是在直径标注时,提示未选择到圆? 若是把画矩形的这一行去掉,则能顺利标注
发表于 2004-6-16 22:50:00 | 显示全部楼层
那就是你选到矩形了
发表于 2004-6-17 08:51:00 | 显示全部楼层
(defun C:G (/ P1)
(setvar "osmode" 0)
(command "_.rectang" '(0 0) '(6000 160))
(command "_.circle" '(0 0) 5)
(setq P1 '(0 0))
;;(setq P1 (polar '(0 0) (* 0.25 pi) 1));点不一定要在圆上
(command "_.dimdiameter" (list (entlast) P1) "")
(princ)
)
 楼主| 发表于 2004-6-17 12:02:00 | 显示全部楼层
谢谢楼上,可以了 (command "_.dimdiameter" (list (entlast) P1) "")
这句该怎样理解,是不是enlast 指圆,p1 指尺寸线的方位 (list (entlast) P1)是什么语法,本人水平有限,望龙龙版主给解释一下,谢谢
 楼主| 发表于 2004-6-17 12:04:00 | 显示全部楼层
(command "_.dimdiameter" (entlast) P1 "")
如果这样为何不行(去掉list)
发表于 2004-6-17 12:20:00 | 显示全部楼层
(list (entlast) P1)是什么语法---双元表,在论坛可找到其他说明
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 17:22 , Processed in 0.166530 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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