明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3004|回复: 11

自动标出

  [复制链接]
发表于 2004-7-26 11:46:00 | 显示全部楼层 |阅读模式
各位大虾,能否帮帮小弟:我现在需要在地面标高一栏中填上地面标高,即点A或点B的标高。能否实现,直接点取A点或B点后,自动在地面标高一栏中填上地面标高的数值?(其数值放置的位置和上一栏数字放置的位置一样)注意:现在此图的比例为:横向1:1000,竖向1:100,如果比例不一样呢?比方说:横向1:500,竖向1:100时呢?

本帖子中包含更多资源

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

x
发表于 2004-7-26 13:15:00 | 显示全部楼层
应该可以解决


把原图文件(dwg)传上来,对照实际图纸,应该可以解决。
 楼主| 发表于 2004-7-26 17:47:00 | 显示全部楼层
好的!这是原图(文件超过了100K,只好压缩了)。看看原图,其中标尺部分可能每张图纸是不一样的。我想,如果可能的话,是不是在编程的时候,要自定义一根基线?就以标尺下面的一根线为基线,这只是我的想法,具体由你们看看有什么好的办法!

本帖子中包含更多资源

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

x
发表于 2004-7-27 00:44:00 | 显示全部楼层
本帖最后由 作者 于 2004-7-27 21:36:42 编辑

试用程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;高程标高标注 ;;;gaocheng.lsp ;;;-- XYP@bsedi.com
;;;2004.07.27
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(prompt "\n\r 加载高程标高标注程序。")
(defun c:gc (/ psel psel-x psel-y txt t-txt)
(cmdla0)
(setvar"osmode"39)
(if (= ptext-y nil)
(setq ptext-y (+ (cadr (getpoint "\n\t选择标注基线端点: ")) 3000)));;标注文本基点y坐标
(if (= pjzh-y nil)(setq pjzh-y (CADR (dxf 10 (entget (car(entsel"\n\t选择一条基准线: ")))))));基准线y坐标
(if (= no-jzh nil)(setq no-jzh (ureal 1 "" "输入基准线标高值" no-jzh)))
(while (setq psel (getpoint "\n\t待标注点: "))
(setq psel-x (car psel)
psel-y (cadr psel)
)
(setq txt (rtos (+ (/(- psel-y pjzh-y)10000) no-jzh) 2 3))
(setq pt-txt (list psel-x ptext-y))
(mkla"高程标注"4);;自定义标注层名
(command "text" "j" "mc" pt-txt "4000" "0" txt)
)
(pxyp "GC (高程)")
(cmdla1)
) ;;;画新图
;;;当一张图中有多个剖面时,需先运行“gc0”命令,再运行“gc”命令
(defun c:gc0 (/)
(cmdla0)
(setq ptext-y nil)(princ ptext-y)
(setq pjzh-y nil)(princ pjzh-y)
(setq no-jzh nil)(princ no-jzh)
(gc)
(princ"\n\t恢复系统")
(princ)
(cmdla1)
)


(defun ureal (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
bit (* 2 (fix (/ bit 2)))
)
(setq msg (strcat "\n" msg ": "))
)
(initget bit kwd)
(setq inp (getreal msg))
(if inp inp def)
) ;;; 保存原有系统变量,设置程序运行时的系统变量
(Defun cmdla0 ()
(Setq cmdech (Getvar "Cmdecho")
oom (Getvar "Orthomode")
osm (Getvar "Osmode")
la (Getvar "Clayer")
)
(Setvar "Cmdecho" 0)
(Setvar "Regenmode" 0)
) ;;; 建图层: (mala "层名" 颜色号)
(Defun MKLA (a b)
(If (= (Tblsearch "layer" a) nil)
(Command "layer" "m" a "c" b a "")
(Command "layer" "t" a "s" a "c" b a "")
)
) ;;; 恢复原有系统变量
(Defun cmdla1 ();(/ cmdech LA oom osm)
(Setvar "Cmdecho" cmdech)
(Setvar "Clayer" LA)
(Setvar "Orthomode" oom)
(Setvar "Osmode" osm)
(setvar "regenmode" 1)
(Terpri)
(Princ)
) ;;;* 显示命令简写
(DEFUN PXYP (TXT1)
(SETQ TXT1 (STRCAT "\n\r 程序命令: " TXT1 " -- XYP@bsedi.com"))
(PRINC TXT1)
(Princ)
);defun ;;;忘了此句 (defun dxf (code elist) (cdr (assoc code elist))) (pxyp "GC 或 GC0 (高程)")

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-7-27 01:26:00 | 显示全部楼层
请问,使用方法。在加载程序后,要选择一条基准线,不知道您所指的基准线是哪条线呢?能否作一个动画传上来?且,您所指的:当一张图中有多个剖面时,需先运行“gc0”命令,再运行“gc”命令。此命令的意义指的是什么?
发表于 2004-7-27 13:43:00 | 显示全部楼层
高程标高标注方法:


见下图,开始时需确定①标注基线端点②基准线③基准线标高值,以后就可以标任意交点处的标高了。


       

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-7-27 18:57:00 | 显示全部楼层
不行啊!我在选择基准线的时候程序提示: 命令: gc 选择标注基线端点:(我选择了上图中标注基线端点)
选择一条基准线: ; 错误: no function definition: DXF(在选择基准线的时候就这个样子了) 然后程序退出!
发表于 2004-7-27 21:54:00 | 显示全部楼层
楼主:


最新程序已发送邮箱,再试试!


问题的的根本原因在前面的帖子里已进行了说明和修改!
 楼主| 发表于 2004-7-28 20:25:00 | 显示全部楼层
谢谢,问题基本解决。还有些需要完善的地方已发到你的邮箱!不过,现在你看此图,此图的比例和上图就不一样了!横向为1:500,竖向为1:100

本帖子中包含更多资源

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

x
 楼主| 发表于 2004-7-28 21:57:00 | 显示全部楼层
我把原图,发往你的邮箱,你查收看看!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 09:25 , Processed in 0.190638 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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