找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2518|回复: 24

[已解决] 角度标注样式

[复制链接]

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2013-6-4 11:03:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
如下图,第一张为选两边标注形式,第2张图为选取三点标注形式。我想实现标注三点,但是效果为第一张图的形式,请问各位如何解决呢?
多谢大家帮忙!

已解决,下面放上写的代码

[sell=5]里面有开心 通用函数,涉及到内容可以自行写出来,都不复杂,[/sell];******************************************************************************
  1. (defun c:pljdbz ( / GETK EPbl scl ss3 sspline sclbz anglepi i_ent pl_i pt_lst
  2.         pt_n k pt_1 pt_2 pt_13 pt_14 e1)
  3.   (vl-load-com)
  4.   (Lionel:str)
  5.   (Lionel:err)
  6.   (setvar "osmode" 0)
  7.   (initget "D S")
  8.   (setq GETK (getkword "确定比例:\n [点选图框(D)/直接输入比例(S)]: <D> "))
  9.   (cond      
  10.     ((or (= GETK "D") (= GETK nil))
  11.       (progn
  12.         (setq EPbl (entsel"<点选图框确定比例>:\n"))
  13.         (setq scl (cdr (assoc 41 (entget (car EPbl)))))
  14.       );endprogn
  15.      )
  16.     ((= GETK "S")
  17.         (setq scl (atof (getstring "\n请输入比例:")))
  18.     )
  19.   );endcond
  20.   (setq sspline (ssget '((0 . "lwpolyline"))))
  21.   (initget "Y N")
  22.   (setq GETK (getkword "是否需要输入偏移距离:\n [是(Y)/否(N)]: <N> "))
  23.   (cond      
  24.     ((or (= GETK "N") (= GETK nil))
  25.        (setq sclbz (* scl 11))
  26.     )
  27.     ((= GETK "Y")      
  28.        (setq sclbz (atof (getstring "\n请输入标注偏移距离:")))
  29.     )
  30.   );endcond
  31.   (setq i_ent 0)
  32.   (if i_name
  33.     (setq i_name i_name)
  34.     (setq i_name 0)
  35.   )
  36.   (setq ss_bz '())
  37.   (setq ss_bz (ssadd))
  38.   (repeat (sslength sspline)
  39.     (setq pl_i (ssname sspline i_ent))
  40.     (setq pt_lst (reverse (XX-Get-Pline-Pt pl_i)))
  41.     (setq pt_lst (append pt_lst (list (car pt_lst) (cadr pt_lst))))
  42.     (setq pt_n (length pt_lst))
  43.     (setq k 0)
  44.     (repeat (- pt_n 2)
  45.       (setq pt_1 (nth k pt_lst))
  46.       (setq pt_2 (nth (1+ k) pt_lst))
  47.       (setq pt_3 (nth (+ k 2) pt_lst))
  48.       (setq pt_13 (polar pt_2 (angle pt_2 pt_1) sclbz))
  49.       (setq pt_14 (polar pt_2 (angle pt_2 pt_3) sclbz))
  50.       (if (or (equal (XX-Get-3PtAngle pt_1 pt_2 pt_3) (* pi 0.5) 0.00000001)
  51.        (equal (XX-Get-3PtAngle pt_1 pt_2 pt_3) (* pi 1.5) 0.00000001)
  52.        )
  53. T
  54. (if (>= (XX-Get-3PtAngle pt_1 pt_2 pt_3) pi)
  55.    (gm_AddDim3PointAngular pt_14 pt_2 pt_13 pt_13)
  56.    (gm_AddDim3PointAngular pt_13 pt_2 pt_14 pt_13)
  57. )
  58.       )
  59.       (setq e1 (entlast))
  60.       (ssadd e1 ss_bz)
  61.       (setq k (1+ k))
  62.     );endrepeat
  63.     (setq i_ent (1+ i_ent))
  64.   );endrepeat
  65.   (XX-Mk-Block-Insert ss_bz pt_1 (strcat "标注" (itoa (1+ i_name))))
  66.   (setq i_name (1+ i_name))
  67.   (setvar "osmode" osmode_old)
  68.   (princ)
  69. );enddefun;******************************************************************************
  70. (defun Lionel:str ()
  71. (setq dynmode_old (getvar "dynmode"))
  72. (setq cmdecho_old (getvar "cmdecho"))
  73. (setq osmode_old (getvar "osmode"))
  74. )
  75. ;******************************************************************************
  76. (defun Lionel:err()
  77.   (if (boundp *error*) (setq Old_err *error*))
  78.   (defun *error* (msg)
  79.   (if (not (member msg
  80.               (list "console break" "Function cancelled" "quit / exit abort" "函数被取消")))
  81.     (princ (strcat "错误:" msg "\n") )
  82.     (princ)
  83.   );if
  84.   (if (boundp 'cmdecho_old) (setvar "cmdecho" cmdecho_old) )
  85.   (if (boundp 'osmode_old) (setvar "osmode" osmode_old) )
  86.   (if (boundp 'dynmode_old) (setvar "dynmode" dynmode_old) )
  87.   (command "_.undo" "_e")
  88.   (setq *error* Old_err Old_err nil)
  89.   (princ)
  90.   );defun *error*
  91. );defun




QQ截图20130604110207.png

点评

一些简单的自定义函数,可以放出来给大家玩玩,加上下载权限就行  发表于 2013-6-4 16:30

评分

参与人数 1D豆 +3 收起 理由
炫翔 + 3 出题引导交流奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-6-4 11:13:18 | 显示全部楼层
有 Dwg 吗?

点评

上传了 请查看!  详情 回复 发表于 2013-6-4 11:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 11:19:21 | 显示全部楼层

上传了 请查看!

新块.zip

15.05 KB, 下载次数: 1, 下载积分: D豆 -1 , 活跃度 1

点评

这两种图主要差别在哪里呢? 外观上我怎么看着很像。  详情 回复 发表于 2013-6-4 11:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-4 11:25:09 | 显示全部楼层
这个不用编程吧
_dimangular
选择圆弧、圆、直线或 <指定顶点>:
然后按回车键就会提示选择三个点

点评

按这个操作,就是第二张图的效果,效果不佳。我是想实现第一张图的效果  详情 回复 发表于 2013-6-4 11:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 11:34:36 | 显示全部楼层
QiaoCheng 发表于 2013-6-4 11:25
这个不用编程吧
_dimangular
选择圆弧、圆、直线或 :

按这个操作,就是第二张图的效果,效果不佳。我是想实现第一张图的效果
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 11:50:21 | 显示全部楼层
通过计算并修改13 14可行吗。稍稍有些费事,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-6-4 11:53:49 | 显示全部楼层

这两种图主要差别在哪里呢? 外观上我怎么看着很像。

点评

稍微有区别的  详情 回复 发表于 2013-6-4 12:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-4 12:20:28 | 显示全部楼层
Lisphk 发表于 2013-6-4 11:53
这两种图主要差别在哪里呢? 外观上我怎么看着很像。

稍微有区别的
dmangle.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-4 14:54:34 | 显示全部楼层
本帖最后由 Lispboy 于 2013-6-4 14:58 编辑

楼主, 下面的图,两个角度标注,你能看出来哪个是3点标的,哪个是选2线标的吗?

QQ截图20130604145713.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 14:56:29 | 显示全部楼层
已经解决 根据1 2 3点和一个自定义一个标注距离直接算出 13 和14点 然后直接点取 PT13 、PT2、PT14就行了

点评

正想一起研究研究呢,那楼主,把程序代码贴上来啊。  详情 回复 发表于 2013-6-4 14:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-4 14:59:47 | 显示全部楼层
守仁格竹GM 发表于 2013-6-4 14:56
已经解决 根据1 2 3点和一个自定义一个标注距离直接算出 13 和14点 然后直接点取 PT13 、PT2、PT14就行了

正想一起研究研究呢,那楼主,把程序代码贴上来啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 15:04:52 | 显示全部楼层
(setq sclbz 80)
;pt_lst为点表自己获取吧 大概就下面这个意思
(setq pt_1 (nth k pt_lst))
(setq pt_2 (nth (1+ k) pt_lst))
(setq pt_3 (nth (+ k 2) pt_lst))
(setq pt_13 (polar pt_2 (angle pt_2 pt_1) sclbz))
(setq pt_14 (polar pt_2 (angle pt_2 pt_3) sclbz))
(command "dimangular" "" pt_2 pt_13 pt_14 pt_13 “”)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 15:11:10 | 显示全部楼层
本帖最后由 守仁格竹GM 于 2013-6-4 15:12 编辑

放到1楼去了

点评

楼主,我觉得你应该写一个函数,3点角度标注和2线角度 实体的互相换换函数,更通用些,你觉得呢?  详情 回复 发表于 2013-6-4 15:27
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-4 15:27:24 | 显示全部楼层

楼主,我觉得你应该写一个函数,3点角度标注和2线角度 实体的互相换换函数,更通用些,你觉得呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

 楼主| 发表于 2013-6-4 16:08:41 | 显示全部楼层
直线段标注 还没开始看呢,正要往下研究 不过情况一多 最好能分层次标注
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-20 12:44 , Processed in 0.470861 second(s), 70 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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