CAD-LISP-程序

CAD-LISP-程序
CAD-LISP-程序

CAD-LISP-程序

1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度) (defun c:LL ()

(setvar "cmdecho" 1)

(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

(setq ll 0)

(repeat (sslength en)

(setq ss (ssname en i))

(setq endata (entget ss))

(command "lengthen" ss "")

(setq dd (getvar "perimeter"))

(setq ll (+ dd ll))

(setq i (1+ i))

)

(princ "所选线条总长为:")(princ ll)(princ)

)

2.标注所有线段(加载后只需框选所有线段便可得标注这些线段)

(defun c:LLL ()

(COMMAND "UCS" "")

(setvar "cmdecho" 1)

(SETVAR "OSMODE" 0)

(setq AcadObject (vlax-get-acad-object)

AcadDocument (vla-get-ActiveDocument Acadobject)

mSpace (vla-get-ModelSpace Acaddocument)

)

;;选取需要测量的样条曲线、圆弧、直线、椭圆

(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

;;获取系统参数textsize

(setq shh (getvar "textsize"))

(setq str_hh (strcat "\n文字高度<" (rtos shh 2) ">: ")) (setq hh (getdist str_hh))

(while hh

(setvar "textsize" hh)

(setq hh nil))

;;输入标注文字高度

;;循环开始

(repeat (sslength en)

(setq ss (ssname en i))

(setq endata (entget ss))

(command "lengthen" ss "")

(setq dd (getvar "perimeter"))

(princ (strcat "\n长度=" (rtos dd 2)))

;;寻找代表图层的字符串

(setq aa (assoc 0 endata))

;;获取图层名称

(setq aa1 (cdr aa))

;;判断线条种类

(cond

((= aa1 "SPLINE")

;;如果是spline

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss))

(setq startPnt1 (vla-get-ControlPoints arcObj))

(setq p1

(vlax-safearray->list (vlax-variant-value startPnt1)) )

(setq x1 (car p1))

(setq y1 (cadr p1))

(setq z1 (caddr p1))

(setq pp1 (list x1 y1 z1))

(repeat (- (/ (length p1) 3) 1)

;;循环,寻找最后一个控制点

(setq p1 (cdddr p1))

(setq x2 (car p1))

(setq y2 (cadr p1))

(setq z2 (caddr p1))

)

(setq pp2 (list x2 y2 z2))

)

)

((= aa1 "LWPOLYLINE")

;;如果是LWPOLYLINE

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss)) (setq startPnt1 (vla-get-Coordinates arcObj))

(setq p1

(vlax-safearray->list (vlax-variant-value startPnt1)) )

(setq x1 (car p1))

(setq y1 (cadr p1))

(setq z1 (caddr p1))

(setq pp1 (list x1 y1 z1))

(repeat (- (/ (length p1) 3) 1)

;;循环,寻找最后一个控制点

(setq p1 (cdddr p1))

(setq x2 (car p1))

(setq y2 (cadr p1))

)

(setq pp2 (list x2 y2 z2))

)

)

(t

;;如果是其他种类线条

(progn

(setq arcObj (VLAX-ENAME->VLA-OBJECT ss)) (setq startPnt1 (vla-get-StartPoint arcObj))

;;获取起点

(setq endPnt1 (vla-get-EndPoint arcObj))

;;获取终点

(setq pp1

(vlax-safearray->list (vlax-variant-value startPnt1)) )

(setq

pp2 (vlax-safearray->list (vlax-variant-value endPnt1)) )

)

)

)

(setq x1 (car pp1))

(setq y1 (cadr pp1))

(setq z1 (caddr pp1))

(setq x2 (car pp2))

(setq y2 (cadr pp2))

(setq z2 (caddr pp2))

(setq x (/ (+ x1 x2) 2))

(setq y (/ (+ y1 y2) 2))

(setq pt (list x y z))

;;取得线段两端的中点

(setq ang (angle pp1 pp2))

;;获取角度

(if (> (* (/ ang pi) 180) 180)

(setq ang (+ ang pi))

)

(command "text"

"j"

"bc"

pt

""

(* (/ ang pi) 180)

(strcat "" (rtos dd 2))

""

)

(setq i (1+ i))

)

(prin1)

)

(prompt "\n <>在图中直接写出长度") (prin1)

3.连续打断程序

(defun c:br1 ()

(command "break" pause "f" pause "@") )

4.将CAD文字导入Excel表格

(defun c:Q2()

(setq ffn (getfiled "写出文件" "" "xls" 1))

(princ "\n选取文字...")

(setq ss (ssget))

(setq ff (open ffn "w"))

(setq i 0)

(repeat (sslength ss)

(setq ssn (ssname ss i))

(setq ssdata (entget ssn))

(setq sstyp (cdr (assoc 0 ssdata)))

(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))

(progn

(setq txt (cdr (assoc 1 ssdata)))

(princ txt ff)

(princ "\n" ff)

)

)

(setq i (1+ i))

)

(close ff)

(princ (strcat "\n写出文件: " ffn))

(prin1)

)

5 删除带颜色图元

以下程序在别人的贴子里贴过.为了说明问题,今天再贴一次.

改颜色的LISP程序

(defun c:c1()(ssget)(command "chprop" "p" "" "c" "1" "") (princ))

(defun c:c2()(ssget)(command "chprop" "p" "" "c" "2" "") (princ))

(defun c:c3()(ssget)(command "chprop" "p" "" "c" "3" "") (princ))

(defun c:c4()(ssget)(command "chprop" "p" "" "c" "4" "") (princ))

(defun c:c5()(ssget)(command "chprop" "p" "" "c" "5" "") (princ))

(defun c:c6()(ssget)(command "chprop" "p" "" "c" "6" "") (princ))

(defun c:c7()(ssget)(command "chprop" "p" "" "c" "7" "") (princ))

(defun c:c8()(ssget)(command "chprop" "p" "" "c" "8" "") (princ))

你用C1 命令就可以将图元改为红色了.其余类似.

删除红色图元

(defun C:D1 (/ m A M)

(setq m:err *error* *error* *merr*)

(setvar "cmdecho" 0)

(command "UNDO" "G")

(prompt "选择图形")

(setq A (ssget '((62 . 1)) ))

(if (/= A nil)(progn

(setq M (sslength A))

(command "erase" A "")

(princ "\n共删除红色图元<")(princ M)(princ ">个")

))

(command "UNDO" "E")

(princ) )

这样,键入D1 命令,就可以删除红色的图元了.

EXCEL显著性水平置信度置信区间

帮我通俗的解释下显著性水平和置信水平 这两个概念通俗的理解是咋样的啊,显著水平的0.05和0.01是什么意思,越高越好还是越低越好?除了0.05和0.01外还有别的值么?置信度和置信区间又是什么意思?置信度越高越好么? 回答:首先,置信水平和置信度应该是一样的,就是变量落在置信区间的可能性,“置信水平”就是相信变量在设定的置信区间的程度,是个0~1的数,用1-α表示。置信区间,就是变量的一个范围,变量落在这个范围的可能性是就是1-α。 显著性水平就是变量落在置信区间以外的可能性,“显著”就是与设想的置信区间不一样,用α表示。 显然,显著性水平与置信水平的和为1。 显著性水平为0.05时,α=0.05,1-α=0.95 如果置信区间为(-1,1),即代表变量x在(-1,1)之间的可能性为0.95。0.05和0.01是比较常用的,但换个数也是可以的,计算方法还是不变。 总之,置信度越高,显著性水平越低,代表假设的可靠性越高,越好。 置信度计算 现认为置信度在此算法中应该是用户指定一个即可。“In general,due to the weak (logarithmic)dependence on T,small settings for T(i.e.,less than 0.1)do not have a large effect on the overall window size”。 没找到较好的计算过程,先贴一段吧。 置信度: 置信度,是指特定个体对待特定命题真实性相信的程度,也就是概率是对个人信念合理性的量度。 对概率的置信度解释表明,事件本身并没有什么概率,事件之所以指派有概率只是指派概率的人头脑中所具有的信念证据。置信水平是指总体参数值落在样本统计值某一区内的概率;而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。置信区间越大,置信水平越高。 置信度,也称为可靠度,或置信水平、置信系数,即在抽样对总体参数作出估计时,由于样本的随机性,其结论总是不确定的。因此,采用一种概率的陈述方法,也就是数理统计中的区间估计法,即估计值与总体参数在一定允许的误差范围以内,其相应的概率有多大,这个相应的概率称作置信度。 一般情况下,置信度是表明抽样指标和总体指标的误差不超过一定范围的概率保证度,用F(t)来表示,在大样本(n>30)条件下,置信度F(t)是概率度t函数,概率度越大,置信度越越大。假设我们指出测量结果的准确性有95%的可靠性,这个95%就称为置信度(P),又称为置信水平,它是指人们对测量结果判断的可信程度。 置信水平(Confidence level),是描述GIS中线元素与面元素的位置不确定性的重要指标之一。置信水平表示区间估计的把握程度,置信区间的跨度是置信水平的正函数,即要求的把握程度越大,势必得到一个较宽的置信区间,这就相应降低了估计的准确程度.

置信度的计算

案例:置信度的计算(大数定律) 应用背景:数字通信系统中的许多元件都必须满足一项有关误码率()(εP )的最低规范。对于一个给定系统,在输入端送入某种预定形式的比特流,然后检测其输出,通过与输入相 比较可以估测出()(εP ) 。输出与输入之间的任何一个差错均视为一次误码。检测到的错误位数(ε)与已经传送的总位数(n )之比即为误码率(),其表示是真实误码率()(?εP )(εP )的估计,估计的准确度随传送位数的增加而改进。由大数定律,其关系可表示为: )()(?εε εP n P n ??→?=+∞ → [1] 重要的是,必须传送、测试足够数目的比特数才能保证是)(?εP )(εP 的合理近似,所以,对于合理限制的测试时间,我们有必要知道完成一个统计有效的测试所需的最少位数。 分析: 在许多场合,我们仅仅需要验证)(εP 是否好于某预定标准。换句话说,只要证明)(εP 比某一上限低即可。例如,许多通信系统要求)(εP 达到或更好(上限为)。统计学中有关加以上限的置信度概念可以用来推测,在某个量化的可信度前提下,真实1010?1010?)(εP 低于规定上限。这种方法带来的主要好处,就是容许你在测试时间和测试精度之间进行折衷。 问题的解决: (1)统计置信度的定义 统计置信度定义为,经过一系列试验,某事件的实际概率优于规定水平的几率(该定义中的实际概率是指,有限次测量所得概率在试验次数趋向无限时的极限值)。应用于)(εP 估计,统计置信度可重新阐述为,(基于n 位传送中检测到ε个错误)真实)(εP 优于规定水平γ(如)的概率。用数学语言表示为: 1010? },|)({n P P CL εγε<= 其中,CL 为置信度。由定义,CL 为概率,因此其在 取值。 ]1,0[计算出统计置信度之后就可以讲,我们有百分之CL 的把握相信,)(εP 优于γ。另外一种表达,如果我们多次重复测量误码率,并对每个测量周期重复计算n P εε=)(?,那么可以预 测,有百分之CL 的优于)(?εP γ。

置信区间的解释及求取

置信区间的解释及求取-学习了解 95%置信区间(Confidence Interval,CI):当给出某个估计值的95%置信区间为【a,b】时,可以理解为我们有95%的信心(Confidence)可以说样本的平均值介于a到b之间,而发生错误的概率为5%。 有时也会说90%,99%的置信区间,具体含义可参考95%置信区间。 置信区间具体计算方式为: (1) 知道样本均值(M)和标准差(ST)时: 置信区间下限:a=M - n*ST; 置信区间上限:a=M + n*ST; 当求取90% 置信区间时n=1.645 当求取95% 置信区间时n=1.96 当求取99% 置信区间时n=2.576 (2) 通过利用蒙特卡洛(Monte Carlo)方法获得估计值分布时: 先对所有估计值样本进行排序,置信区间下限:a为排序后第lower%百分位值; 置信区间上限:b为排序后第upper%百分位值. 当求取90% 置信区间时 lower=5 upper=95; 当求取95% 置信区间时lower=2.5 upper=97.5 当求取99% 置信区间时lower=0.5 upper=99.5 当样本足够大时,(1)和(2)获取的结果基本相等。 参考资料:http://140.116.72.80/~smallko/ns2/confidence_interval.htm Confidence Limits: The range of confidence interval 附MATLAB 求取置信区间源码: %%% 置信区间的定义90%,95%,99%-------Liumin 2010.04.28 clear clc sampledata=randn(10000,1); a=0.01; %0.01 对应99%置信区间,0.05 对应95%置信区间,0.1 对应90%置信区间 if a==0.01 n=2.576; % 2.576 对应99%置信区间,1.96 对应95%置信区间,1.645 对应90%置信区间 elseif a==0.05 n=1.96; elseif a==0.1 n=1.645; end %计算对应百分位值 meana=mean(sampledata); stda=std(sampledata); sorta=sort(sampledata); %对数据从小到大排序 leng=size(sampledata,1); CIa(1:2,1)=[sorta(leng*a/2);sorta(leng*(1-a/2))]; %利用公式计算置信区间 CIf(1:2,1)=[meana-n*stda;meana+n*stda];

案例:置信度的计算(二项分布)

案例:置信度的计算(二项分布) 应用背景:数字通信系统中的许多元件都必须满足一项有关误码率()(εP )的最低规范。对于一个给定系统,在输入端送入某种预定形式的比特流,然后检测其输出,通过与输入相 比较可以估测出()(εP ) 。输出与输入之间的任何一个差错均视为一次误码。检测到的错误位数(ε)与已经传送的总位数(n )之比即为误码率(),其表示是真实误码率()(?εP )(εP )的估计,估计的准确度随传送位数的增加而改进。其关系可表示为: )()(?εε εP n P n ??→?=+∞ → [1] 重要的是,必须传送、测试足够数目的比特数才能保证是)(?εP )(εP 的合理近似,所以,对于合理限制的测试时间,我们有必要知道完成一个统计有效的测试所需的最少位数。 分析: 在许多场合,我们仅仅需要验证)(εP 是否好于某预定标准。换句话说,只要证明)(εP 比某一上限低即可。例如,许多通信系统要求)(εP 达到或更好(上限为)。统计学中有关加以上限的置信度概念可以用来推测,在某个量化的可信度前提下,真实1010?1010?)(εP 低于规定上限。这种方法带来的主要好处,就是容许你在测试时间和测试精度之间进行折衷。 问题的解决: (1)统计置信度的定义 统计置信度定义为,经过一系列试验,某事件的实际概率优于规定水平的几率(该定义中的实际概率是指,有限次测量所得概率在试验次数趋向无限时的极限值)。应用于)(εP 估计,统计置信度可重新阐述为,(基于n 位传送中检测到ε个错误)真实)(εP 优于规定水平γ(如)的概率。用数学语言表示为: 1010? },|)({n P P CL εγε<= 其中,CL 为置信度。由定义,CL 为概率,因此其在 取值。 ]1,0[计算出统计置信度之后就可以讲,我们有百分之CL 的把握相信,)(εP 优于γ。另外一种表达,如果我们多次重复测量误码率,并对每个测量周期重复计算n P εε=)(?,那么可以预 测,有百分之CL 的优于)(?εP γ。

相关主题
相关文档
最新文档