明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4677|回复: 17

[基础] [求助]四边长度及一条对角线的任意四边形如何做?

  [复制链接]
发表于 2010-8-1 14:33:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-8-8 12:19:07 编辑

由于考虑欠周全,当时只考虑了一种情况。其实是有两种情况的。浪费了nonsmall的时间和精力。。。不好意思。

看下有哪位贵人可以相助呀,和nonsmall对话框输出模式也差不多的就最好了。

只要输入4个边及 对角线1 或 对角线2 两种情况都可以输出图形。

 

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2010-8-1 14:36:00 | 显示全部楼层
希望在一条命令行上同时输入5个数字,数字与数字用逗号分开,这样便于检查有没有输错数据。
发表于 2010-8-1 16:17:00 | 显示全部楼层
;帮你做个对话框

  1. ;nonsmall 作品:对话框自动连接程序
  2. (defun c:tt();此部分是测试代码用
  3. (Form1_load)
  4. )
  5. (defun Form1_load( / dcl_id Dialog_Return key keys Dcl_File)
  6. (vl-load-com)
  7. (setq dcl_id (load_dialog (setq Dcl_File (Write_Dcl))));对话框加载
  8. (vl-file-delete Dcl_File);加载后删除DCL文件
  9. (setq Dialog_Return 2)
  10. (while (> Dialog_Return 1) ;循环控制对话框是否结束
  11.   (new_dialog "Form1" dcl_id);建立窗体
  12. ;-->-->-对话框初始化->-->--
  13.   (setq keys '("Text1" "Text2" "Text3" "Text4" "Text5" "accept" "cancel"));列表全部控件名称
  14.   (foreach key keys;全部控件的初始化
  15.    (if (eval (read (strcat key "_bak"))) (set_tile key (eval (read (strcat key "_bak")))));控件内容
  16.    (action_tile key "(Action_Form1_Keys $key $value)");点击动作
  17.   )
  18. ;--<--<-对话框初始化完成-<--<--
  19.   (setq Dialog_Return (start_dialog));开启对话框(用户可见)
  20. )
  21. (unload_dialog dcl_id);退出时卸载对话框
  22. (princ);防止函数回显
  23. )
  24. (defun Action_Form1_Keys (key value) ;全部控件的点击动作触发
  25. (print (list key value))(print "*-------*");测试代码 用后删除
  26. (cond
  27.   ((= key "accept") ;{确认按钮}
  28.    
  29.    (Get_Form1_Data)
  30.    (done_dialog 1);对话框退出返回主函数 传递给Dialog_Return值为1
  31.   )
  32.   ((= key "cancel") ;{取消按钮}
  33.    
  34.    (done_dialog 0);对话框退出返回主函数 传递给Dialog_Return值为0
  35.   )
  36. )
  37. )
  38. (defun Get_Form1_Data( / key);临时生成Dcl文件 返回文件名
  39. (foreach key keys
  40.   (set (read (strcat key "_bak")) (get_tile key));每个控件都赋给一个变量 用于下次开启初始化
  41. )
  42. )
  43. (defun Write_Dcl( / Dcl_File file str)
  44. (setq Dcl_File (vl-filename-mktemp nil nil ".Dcl"))
  45. (setq file (open Dcl_File "w"))
  46. (foreach str '(
  47.   "/*nonsmall 作品: */"
  48.   ""
  49.   "Form1:dialog"
  50.   "{"
  51.   " label = "任意四边形";"
  52.   "    :edit_box"
  53.   "    {"
  54.   "        key = "Text1" ;"
  55.   "        label = "边1" ;"
  56.   "        width = 15.75 ;"
  57.   "        height = 1.2375 ;"
  58.   "    }"
  59.   "    :edit_box"
  60.   "    {"
  61.   "        key = "Text2" ;"
  62.   "        label = "边2" ;"
  63.   "        width = 15.75 ;"
  64.   "        height = 1.2375 ;"
  65.   "    }"
  66.   "    :edit_box"
  67.   "    {"
  68.   "        key = "Text3" ;"
  69.   "        label = "边3" ;"
  70.   "        width = 15.75 ;"
  71.   "        height = 1.2375 ;"
  72.   "    }"
  73.   "    :edit_box"
  74.   "    {"
  75.   "        key = "Text4" ;"
  76.   "        label = "边4" ;"
  77.   "        width = 15.75 ;"
  78.   "        height = 1.2375 ;"
  79.   "    }"
  80.   "    :edit_box"
  81.   "    {"
  82.   "        key = "Text5" ;"
  83.   "        label = "对角线" ;"
  84.   "        width = 15.75 ;"
  85.   "        height = 1.2375 ;"
  86.   "    }"
  87.   "ok_cancel ;"
  88.   "}"
  89.   )
  90. (write-line str file))
  91. (close file)
  92. Dcl_File
  93. )
 楼主| 发表于 2010-8-1 19:02:00 | 显示全部楼层

试了下,不知为什么生成不了

发表于 2010-8-3 16:48:00 | 显示全部楼层

没有插入点

 楼主| 发表于 2010-8-3 19:27:00 | 显示全部楼层
寻nonsmall大哥呀!!!
发表于 2010-8-3 19:56:00 | 显示全部楼层

在(unload_dialog行之后加上:

(if (= Dialog_Return 1) (progn

;在这里写上你要画图的指令

))

就行了。

 楼主| 发表于 2010-8-3 22:54:00 | 显示全部楼层
小生愚钝,还是搞不出来。CAD界面上没有图。
原来: (unload_dialog dcl_id);退出时卸载对话框
改为:
(unload_dialog dcl_id);退出时卸载对话框
(if (= Dialog_Return 1)(progn tt))
 楼主| 发表于 2010-8-3 23:12:00 | 显示全部楼层

坐等高人帮忙。。。

最好nonsmall有时间也过来帮忙啦。。哈哈

发表于 2010-8-7 21:57:00 | 显示全部楼层

    对角线的第一个端点记为P1,另一个端点记为P3,四边形的确保另外两顶点分别记为P2和P4,
并确保P1→P2→P3→P4为逆时针排列,P1→P2的长度为边长值1,P2→P3的长度为边长值2,
P3→P4的长度为边长值3,P4→P1的长度为边长值4,P1→P3的长度为对角线长,加载附件中
的rysbx程序,在命令行中键入rysbx后,输入
    边长值1,边长值2,边长值3,边长值4,对角线长
再指定
    对角线的第一点P1,对角线所在方向线(对角线P1→P3上任意一点或其延长任意一点)
即可得求的四边形。

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-25 21:33 , Processed in 0.187311 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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