乐筑天下

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

[编程交流] 帮助,搜索lisp

[复制链接]

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 20:08:31 | 显示全部楼层 |阅读模式
你好我正在搜索lisp以绘制垂直线,如照片示例所示。
 
1) 选择点A,然后选择点B
2) 给出第一条垂直线的长度(例如6.10m)
3) 给出第二条垂直线的长度(例如12.00m)
4) 选择要绘制这条线的边
 
对于我的绘图,我使用这个单位
格式->单位->十进制、梯度、顺时针、米和方向->北
 
有人能帮忙吗
 
谢谢
210833kv9y1j1yc19wwlzy.jpg
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:16:35 | 显示全部楼层
若A到B是100.00,它是什么样子的(输入相同的示例6.10和12.00)
回复

使用道具 举报

8

主题

1133

帖子

1164

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:22:53 | 显示全部楼层
你想要Lisp程序,因为你不能自己画吗?
 
这似乎是一个特殊的要求,而不是每个人的常规。
 
有时候,画图可能意味着一点努力,除非你能自己写lisp,否则其他人为什么要这么做?除非他们想找时间填饱肚子。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 20:26:44 | 显示全部楼层
 
在本例中,hi HANHPUC tha ab长度为8.24m。长度6.10和12只是一个例子。我想为这条垂直线提供任意长度的选项。
 
有什么想法吗
 
谢谢
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 20:32:50 | 显示全部楼层
通常我们会这样做
@距离
  1. Command: LINE
  2. Specify first point:
  3. Specify next point or [undo]: @6.1<0
  4. Specify next point or [undo]:
  5. Command:
  6. LINE Specify first point:
  7. Specify next point or [undo]: @12<90

 
另一个(与代码无关):理论上,如果手动输入对角线长度,我们无法获得与手动输入值匹配的垂直长度(从B开始的线),因为A到B是固定长度
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 20:44:31 | 显示全部楼层
谢谢hanhphuc
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:49:13 | 显示全部楼层
呵呵?
太棒了不客气
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 20:50:35 | 显示全部楼层
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 21:02:28 | 显示全部楼层
 
If the perpendicular line is fixed by manual input, then the line from A must be diagonal?
 
 
This example can draw perpendicular line, but not diagonal
  1. (defun c:test (/ os asin _line p1 p2 d2 l1 ad d ok p ang d3 dir ip ); hanhphuc 25.02.2015 (setq os    (getvar 'osmode)asin  '((x) (atan (/ x (sqrt (+ 1.0 (* x (- x)))))))_line '((a lst) (foreach x lst (entmake (list '(0 . "LINE") (cons 10 a) (cons 11 x)))))) ;_ end of setq (setvar 'osmode 1) (if (and (setq p1 (getpoint "\nPick point A: "))   (setq p2 (getpoint p1 "\nPick point B: "))   (setq d2 (getdist p2 "\nInput perpendicular length: "))      (setq l1  (list p1 p2)         ad  (mapcar ''((x) (apply x l1)) '(angle distance))         d   (cadr ad)         ok (< d2 d))   (setq p (getpoint "\nPick side to draw.. "))   ) ;_ end of and   (progn (setq ang (asin (/ d2 d))         d3  (* d (cos ang))         dir (car ad)         ip  (apply 'if                    (vl-list*                              (minusp (- (* (- (cadr p) (cadr p1)) (cos dir)) (* (- (car p) (car p1)) (sin dir))))                              (mapcar ''((f) (polar p1 ((eval f) dir ang) d3)) '(- +))                              ) ;_ end of vl-list*                    ) ;_ end of apply         ) ;_ end of setq   (_line ip l1)   ) ;_ end of progn(if (not ok)  (alert "Perpendicular line exceeds length of A to B!") )   ) ;_ end of if (setvar 'osmode os) (princ) ) ;_ end of defun
 
another (not related to code): by theory if diagonal length by manual input, we can't get perpendicular length (line from B) matched with manual input value due to A to B is fixed length
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 21:04:55 | 显示全部楼层
Thank you  hanhphuc
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 09:01 , Processed in 1.000533 second(s), 75 queries .

© 2020-2025 乐筑天下

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