乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: David Bethel

[编程交流] DCL罗盘点类似于

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 12:30:46 | 显示全部楼层
大卫,
 
这是MyDialogs的完整程序。
它包含MyDialogs。dcl和MyDialogs。lsp
加载类型MY后
选择右侧列表中的“我的图像”按钮。
滑动按钮应显示正确的对话框。
单击对话框上显示的位置,图像将更改。
 
请注意,这些图像是用另一个程序创建的,与我发布的程序类似。我觉得我发布的程序好多了。
正如我所指出的,这些图像是用矢量图像创建的。
也许有了完整的程序,你可以解决这个问题。
 
我希望这会有所帮助,
祝你好运
我的对话框。拉链
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 12:32:55 | 显示全部楼层
好的,大卫,
 
我浏览了MyDialogs程序,并将其分解为只运行您关心的程序部分所需的内容。
 
附件是我的。dcl和My。lsp。只需键入我的开始。
现在,您可以查看的编程更少,从而了解是什么使这一功能发挥作用。
我还注意到vector_text的调用位置,如果你真的不需要麻烦或使用My2,你可以注释掉该部分。lsp和My2。dcL。我删除了这个函数,程序在没有vector_文本的情况下也可以运行。
只需键入My2即可开始。
 
我自己也觉得这有点有趣。我想看看是否可以把同样的方法应用到指南针上。lsp。
 
我希望我们在这件事上不要都不知所措,但值得一试。
我的拉链
My2.zip
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:36:02 | 显示全部楼层
谢谢我今天去看看-大卫
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:40:22 | 显示全部楼层
我认为最大的区别在于,DDVPOINT使用静态背景幻灯片图像,然后添加白色方向矢量线。它似乎并不是每次点击都会重新绘制整个图像。这对我来说似乎有道理。我只是还不知道他们是怎么做到的-大卫
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 12:41:29 | 显示全部楼层
 
 
这就是我在指南针中所做的。lsp,但因为这是一个图像按钮,除了指示器外,你的图像始终保持不变,所以可以用与我相同的方式设置。函数调用只需要提供正确方向的指示器。我的指南针。lsp使用条件,因为我用一个弹出列表操作它,在这种情况下这不会有用。函数调用是一种方法。
 
以下代码提供了图像在五个方向上更改的坐标。您需要更改此设置,以沿圆周计算16个点。当光标放置在坐标上并单击时,它将触发转到其相关功能,显示要匹配的指针图像。除此之外,还需要16个指针函数。
 
 
  1. ;-------------------------------------------------------------------------------
  2. ; c:My2
  3. ; These images were created using GetVectors.lsp on AutoLISP Exchange
  4. ; (URL: [url]http://web2.airmail.net/terrycad[/url])
  5. ;-------------------------------------------------------------------------------
  6. (defun c:My2 (/ Dcl_Id% Show_Image:)
  7. (princ "\nMyImageButton")(princ)
  8. ; Show_Image: ----------------------------------------------------------------
  9. (defun Show_Image: (/ Ang CenPt Dist~ PickPt X# Y#)
  10.    (start_image "Image1")
  11.    (setq X# (dimx_tile "Image1"))
  12.    (setq Y# (dimy_tile "Image1"))
  13.    (end_image)
  14.    (setq CenPt  (list (/ X# 2)(/ Y# 2))
  15.          PickPt (list $x $y)
  16.          Ang    (angle CenPt PickPt)
  17.          Dist~  (distance CenPt PickPt)
  18.    )                                     ;setq
  19.    (cond
  20.      ((< Dist~ (/ Y# 4))   (Front_View)) ;*Included
  21.      ((< Ang   (* pi 0.25))(Right_View)) ;*Included
  22.      ((< Ang   (* pi 0.75))(Bottom_View));*Included
  23.      ((< Ang   (* pi 1.25))(Left_View))  ;*Included
  24.      ((< Ang   (* pi 1.75))(Top_View))   ;*Included
  25.      (t (Right_View))
  26.    )                                     ;cond
  27. )                                       ;defun Show_Image:
  28. ;-----------------------------------------------------------------------------
  29. ; Load Dialog
  30. (setq Dcl_Id% (load_dialog "My2.dcl"))
  31. (new_dialog "MyImageButton" Dcl_Id%)
  32. ; Set Dialog Initial Settings
  33. (set_tile "Title" " My Image Button")
  34. (set_tile "Text1" "Pick arrows to change views.")
  35. (Front_View);*Included
  36. ; Dialog Actions
  37. (action_tile "Image1" "(Show_Image:)")
  38. (start_dialog)
  39. ; Unload Dialog
  40. (unload_dialog Dcl_Id%)
  41. (princ)
  42. );defun c:MyImageButton
  43. ;-------------------------------------------------------------------------------
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:44:43 | 显示全部楼层
我正在慢慢地到达那里。不是真的。DDVPOINT有很多东西需要消化。仍然无法获取输入或向量-大卫
comp1.zip
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 12:48:59 | 显示全部楼层
 
大卫,
 
我在输入方面也遇到了问题。我不知道如何将其应用于圆坐标。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:51:42 | 显示全部楼层
秃鹰,
 
下面是is如何绘制向量:
 
  1. (defun ai_ddvp_drx (ang x1 col / a x2 y2)
  2. (setq a (polar (list 0.0 0.0)
  3.                 (- (* 2.0 pi) (ai_dtr ang))
  4.                 33.0
  5.          )
  6.        x2 (+ x1 (fix (car a)))
  7.        y2 (+ ai_ddvp_by (fix (cadr a)))
  8. )
  9. (start_image "ddvp_image")
  10. (vector_image x1 ai_ddvp_by x2 y2 col)
  11. (end_image)
  12. )

 
 
看起来像角度x_点颜色-大卫
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 12:56:33 | 显示全部楼层
好啊
 
找到了一些答案:
[列表]
$x和$y自动返回
无法覆盖矢量图像
必须在新图像中包含方向向量
[/列表]
 
我没有弄明白的是:
[列表]
如何计算图像大小
如何将image_按钮的中心与图像的中心对齐
为什么每件事都是180度(我用了(-pi 2)。。。
[/列表]
 
-大卫
comp2.zip
回复

使用道具 举报

15

主题

209

帖子

121

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
163
发表于 2022-7-6 12:57:47 | 显示全部楼层
要获得您需要使用的互动程序的大小
 
(dimx_平铺键);以对话框单位检索平铺的宽度
(dimy_平铺键);以对话框单位检索平铺的高度
 
; 关键参数区分大小写。
 
将为您提供图像按钮的大小,然后根据它们计算您的中心。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:31 , Processed in 0.424152 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表