热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

标注界址点号lisp_各位高手求助看下这个程序如何修改!!!(如何让标注的界址点号从西北角开始顺时......

本帖最后由lhngxy于2018-4-408:09编辑(defunerr(msg)(princmsg);*cancel*)(restore))(defuninit()(comm

本帖最后由 lhngxy 于 2018-4-4 08:09 编辑

(defun err(msg)

(princ msg);"*cancel*")

(restore)

)

(defun init()

(command "_.undo" "be")

(setq dimzin (getvar "dimzin"))

(setvar "dimzin" 1)

(setq os (getvar "osmode"))

(setvar "osmode" 0)

(setvar "cmdecho" 0)

(setq errtmp *error*)

(setq *error* err)

)

(defun restore()

(setq *error* errtmp)

(setvar "dimzin" dimzin)

(setvar "osmode" os)

(command "_.undo" "e")

)

(defun xl-sort (lst fun / nlst)

(foreach n lst (setq nlst (xl-isort n nlst fun))))

(defun xl-isort (item lst fun / k nlst)

(setq k T

nlst (apply 'append (mapcar '(lambda (x)

(if (and K ((eval fun) item x)) (progn (setq k nil) (list item x)) (list x))

) lst))

)

(if k (append lst (list item)) nlst)

)

(defun setcolor(sname color / sinf)

(setq sinf (entget sname))

(if (assoc 62 sinf)

(setq sinf (subst (cons 62 color) (assoc 62 sinf) sinf))

(setq sinf (append sinf (list (cons 62 color))))

)

(entmod sinf)

)

(defun MakeText(pt Height Ang str / dxf)

(setq dxf '((0 . "TEXT") (100 . "AcDbEntity") (67 . 0) (410 . "Model")(8 . "JZP")(100 . "AcDbText")))

(setq dxf (append dxf (list (cons 10 pt) (cons 40 height) (cons 50 Ang) (cons 1 str))))

(setq dxf (append dxf '((41 . 0.8) (51 . 0.0) (71 . 0) (72 . 0)

(210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 0))))

(entmake dxf)

)

(defun MakeText2(pt Height Ang str / dxf)

(setq dxf '((0 . "TEXT") (100 . "AcDbEntity") (67 . 0) (410 . "Model")(8 . "JZP")(100 . "AcDbText")(10 0.0 0.0 0.0)))

(setq dxf (append dxf (list (cons 11 pt) (cons 40 height) (cons 50 Ang) (cons 1 str))))

(setq dxf (append dxf '((41 . 0.8) (51 . 0.0) (71 . 0) (72 . 1)

(210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 2))))

(entmake dxf)

)

(defun MakeText3(pt Height Ang str / dxf)

(setq dxf '((0 . "TEXT") (100 . "AcDbEntity") (67 . 0) (410 . "Model")(8 . "JZP")(100 . "AcDbText")(10 0.0 0.0 0.0)))

(setq dxf (append dxf (list (cons 11 pt) (cons 40 height) (cons 50 Ang) (cons 1 (strcat "J" str)))))

(setq dxf (append dxf '((41 . 0.8) (51 . 0.0) (71 . 0) (72 . 1)

(210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 2))))

(entmake dxf)

)

(defun OpPts(pts pt h scal / pti ptn ptc ang len params pts2 i)

(setq pts_tmp nil)

(if (equal (distance (car pts) (last pts)) 0 0.00000000001) (setq pts (cdr pts)))

(setq pts2 (xl-sort pts &#39;(lambda(e1 e2) (<(abs (- (angle pt e1) (/ pi 4))) (abs (- (angle pt e2) (/ pi 4)))))))

(setq i 1)

(mapcar &#39;(lambda(e)

(MakeText3 (polar e (angle pt e) h) h 0.0 (itoa i))

(setq i (1&#43; i))

) pts)

(mapcar &#39;(lambda(e)

(MakeText2 (polar (cadr e) (&#43; (/ pi 2) (car e)) (* 0.75 h))

h

(if (and (> (car e) (/ pi 2.0)) (<(car e) (* pi 1.5)))

(- (car e) pi)

(car e)

)

(rtos (last e) 2 2)))

params)

)

(defun GetVer(ent / pts ents)

(while (/&#61; (cdr (assoc 0 (setq ents (entget (setq ent (entnext ent)))))) "SEQEND")

(setq pts (append pts (list (cdr (assoc 10 ents)))))

)

pts

)

(defun GETPL (ED / ENTS PTS)

(setq ENTS (entget ED))

(while (setq ENTS (member (assoc 10 ENTS) ENTS))

(setq PTS (append PTS (list (cdar ENTS))))

(setq ENTS (CDR ENTS))

)

PTS

)

(defun Order(pts / n pt ang angn angi angAll pt pti)

(setq n (length pts))

(setq pt (list (/ (apply &#39;&#43; (mapcar &#39;car pts)) n)

(/ (apply &#39;&#43; (mapcar &#39;cadr pts)) n)))

(setq ang (angle pt (car pts)))

(setq angAll 0)

(foreach pti (append (cdr pts) (list(car pts)))

(setq angn (angle pt pti))

(setq angi (- angn ang))

(cond

((> angi pi) (setq angi (- angi (* pi 2))))

((

)

(setq angAll (&#43; angAll angi))

(setq ang angn)

)

(cond

((equal angAll 0 1) (list pt nil))

((> angAll 0) (list pt nil))

((

)

)

(defun DoubleM(ent / ents pt pts l h x y h2)

(setq ents (entget ent))

(if (&#61; (cdr (assoc 0 ents)) "TEXT")

(progn

(setq pt (cdr (assoc 10 ents)))

(setq pts (textbox ents))

(setq l (caadr pts))

(setq h (cdr (assoc 40 ents)))

(setq x (&#43; l (* h 0.4)))

(setq y (* h 0.7))

(setq h2 (* h 0.5))

(MakeText (list (&#43; (car pt) x) (&#43; (cadr pt) y)) h2 0 "2")

)

)

)

(defun c:zdt( / pts pt pti ptn ptc ang params)

(init)

(setq Scale (getstring "\n请输入比例尺<1:200>:"))

(if (&#61; Scale "")

(progn

(setq blc "1:200")

(setq nScale 1)(setq h 0.45)

)

(progn

(setq nScale (/ (atof scale) 200))

(setq blc (strcat "1:" scale))

(setq h (* 0.60 (/ (atof scale) 200) ))

)

)

(setq ent (car  (entsel "\n请选择图形...")))

(setq pts (getpl ent))

(if (cadr (setq pt (Order (reverse pts))))

(setq pts (reverse pts))

)

(setq pt (car pt))

(setq xc (* 0.0 nscale))

(command "_.pedit" ent "w" xc "")

(setcolor ent 1)

(OpPts pts pt h nscale)

(princ "\n\nEnd!")

(restore)

(princ)

)



推荐阅读
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文探讨了使用C#在SQL Server和Access数据库中批量插入多条数据的性能差异。通过具体代码示例,详细分析了两种数据库的执行效率,并提供了优化建议。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 使用lambda表达式排序Collections.sort(temp,(Stringa,Stringb)-{returnb.compareTo(a);});Collections ... [详细]
  • 深入解析for与foreach遍历集合时的性能差异
    本文将详细探讨for循环和foreach(迭代器)在遍历集合时的性能差异,并通过实际代码示例和源码分析,帮助读者理解这两种遍历方式的不同之处。文章内容丰富且专业,旨在为编程爱好者提供有价值的参考。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
author-avatar
贺娥岚761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有