Cadastrophic 发表于 2022-7-6 15:07:06

这个命令是什么意思?

我试着使用这个lisp插入A-A段箭头。字符串中的最后一个命令令我困惑;“输入第一节标注:”
谁能解释一下我在这个司令部应该做什么?
 
第。LSP段箭头
 
(defun C:SECT()
(setvar“fillmode”1)
(setvar“mirrtext”0)
(setq CHDIMSCL“N”)
(setq CHDIMTXT“N”)
(setq OP1(getstring)
“绘制截面切割(H)水平或(V)垂直”
) ;_ getstring结束
) ;_ setq结束
(setq OP1(strcase OP1))
 
(如果(=OP1“V”)
(程序
(setq OP(getstring“\n绘制箭头(L)eft或®ight”))
(setq OP(strcase OP))
) ;_ 程序结束
) ;_ if结束
(如果(=OP1“H”)
(程序
(setq OP(getstring“\n绘制箭头(U)向上或(D)向上”))
(setq OP(strcase OP))
) ;_ 程序结束
) ;_ if结束
 
(setq PTS(getpoint“\n pick first arrow Start point”))
(setq P PTS)
(setq PTS2(getpoint“\n选取第二个箭头起点”))
(setq COUT1(getstring“\n输入第一节标注:”))
(如果(=COUT1“”)
(setq COUT1“A”)
) ;_ if结束
(setq P2 PTS2)
(setq COUT1(strcase COUT1))
 
(setq COUT2(getstring“\n输入第二节标注:”))
(如果(=COUT2“”)
(setq COUT2“A”)
) ;_ if结束
(setq COUT2(strcase COUT2))
 
 
 
;尺寸比例
 
(setq SCAL(getvar“dimscale”))
(如果(=无标度)
(setq SCAL DEFSCAL)
) ;_ if结束
(princ“\n DIMSCALE设置为
(普林斯卡尔)
 
(princ“>;更改尺寸比例是/否
(princ CHDIMSCL)
(setq CHDIMSCL(getstring“>:”)
(setq CHDIMSCL(strcase CHDIMSCL))
 
(如果(=CHDIMSCL“Y”)
(程序
(princ“\输入新的DIMSCALE设置
(setq DIMSCL(getreal“>:”)
(setvar“dimscale”DIMSCL)
(setq SCAL(getvar“dimscale”))
) ;_ 程序结束
) ;_ if结束
 
 
(setq SCL(*1.0标度))
 
(setq PTY(cadr PTS))
(setq PTX(car PTS))
 
(setq PT2Y(cadr PTS2))
(setq PT2X(车载PTS2))
 
(如果(=OP1“H”)
(程序
(如果(
(程序
(setq PTS P2)
(setq PTS2 P)
) ;_ 程序结束
) ;_ IF结束
) ;_ 程序结束
) ;_ if结束
(如果(=OP1“V”)
(程序
(如果(>PTY PT2Y)
(程序
(setq PTS P2)
(setq PTS2 P)
) ;_ 程序结束
) ;_ IF结束
) ;_ 程序结束
) ;_ if结束
 
(setq PTY(cadr PTS));y坐标起点
(setq PTX(car PTS));x coor起点
 
(setq PT2Y(cadr PTS2))
(setq PT2X(车载PTS2))
 
 
(如果(=OP1“V”)
(setq MID(/(-PT2Y PTY)2))
) ;_ if结束
(如果(=OP1“H”)
(setq MID(/(-PT2X PTX)2))
) ;_ if结束
(setq TXTSZ(*SCL 0.25))
(setq SF(*SCL 0.375))
 
(如果(=OP1“V”)
(程序
(setq MIRRY1(列出PTX(+PTY MID)))
(setq MIRRY2(列表(+PTX 1.0)(+PTY MID)))
) ;_ 程序结束
) ;_ if结束
 
(如果(=OP1“H”)
(程序
(setq MIRRY1(列表(+PTX MID)PTY))
(setq MIRRY2(列表(+PTX MID)(+PTY 1.0)))
) ;_ 程序结束
) ;_ if结束
 
(setq LTAIL(-PTX SF));尾部长度
 
(setq TAIL(list LTAIL PTY));尾部终点
 
(setq TAILX(车尾))
(setq TAILY(cadr TAIL))
 
(setq LARR(-TAILX SF));箭头的长度
(setq ARR(list LARR TAILY 0));箭头终点
 
(setq ARRY(cadr ARR));箭头终点的y坐标
(setq ARRX(car ARR));箭头终点的x坐标
 
(setq TLOC(-ARRX SF))
(setq TLOC(+TLOC 0.25))
(setq TLOCP(list TLOC ARRY));版本文本位置
 
(如果(=OP“U”)
(程序
(setq TLOC(+PTY SF)
(setq TLOCP(列表(+PTX(/SF 5.5))TLOC));水平文字位置
) ;_ 程序结束
) ;_ if结束
 
(如果(=OP“D”)
(程序
(setq TLOC(-PTY-SF-SF))
(setq TLOCP(列表(+PTX(/SF 5.5))TLOC));水平文字位置
) ;_ 程序结束
) ;_ if结束
 
 
(setq SF1(*SCL 0.3375))
(setq TAILY(cadr TAIL));尾端的y坐标
(setq TAILX(车尾));尾部端点处的x坐标
 
(如果(
(setq VLTAIL(+TAILY SF))
) ;_ if结束
(如果(>PTY PT2Y)
(setq VLTAIL(-TAILY SF))
) ;_ if结束
 
(setq LTAILX(+TAILX SF1))
 
(如果(=OP“D”)
(setq VLTAIL(-TAILY SF))
) ;_ if结束
(如果(=OP“U”)
(setq VLTAIL(+TAILY SF))
) ;_ if结束
 
(setq VTAILX(list LTAILX TAILY))
(setq VTAIL(list LTAILX VLTAIL))
 
(setq W1(*(/1.875 10.0)SCL))
(setq W2(*(/0.75 10.0)SCL))
 
(命令“pline”TAIL“w”W1 0 ARR”“);箭
(如果(=OP“U”)
(命令“rotate”“l”“VTAILX-90”)
) ;_ if结束
(如果(=OP“D”)
(命令“rotate”“l”“VTAILX 90”)
) ;_ if结束
 
(如果(=OP“L”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
(如果(=OP1“H”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
 
(如果(=OP“R”)
(程序
(命令“mirror”“l”“VTAILX VTAIL”y)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ 程序结束
) ;_ if结束
 
(命令“pline”PTS“w”W2 W2 TAIL“”);水平尾翼
 
(如果(=OP“L”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
(如果(=OP1“H”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
 
(如果(=OP“R”)
(程序
(命令“mirror”“l”“VTAILX VTAIL”y)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ 程序结束
) ;_ if结束
 
(命令“pline”VTAILX“w”W2 W2 VTAIL“”)
(如果(=OP“L”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
(如果(=OP1“H”)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ if结束
 
(如果(=OP“R”)
(程序
(命令“mirror”“l”“VTAILX VTAIL”y)
(命令“mirror”“l”“MIRRY1 MIRRY2”n)
) ;_ 程序结束
) ;_ if结束
(如果(/=COUT1“”)
(程序
(命令“text”“j”“mr”TLOCP TXTSZ”“COUT1)
(命令“mirror”“l”“”MIRRY1 MIRRY2“Y”)
(如果(=OP“R”)
(命令“mirror”“l”“VTAILX VTAIL”y)
) ;_ if结束
 
(命令“text”“j”“mr”TLOCP TXTSZ”“COUT2)
(如果(=OP“R”)
(命令“mirror”“l”“VTAILX VTAIL”y)
) ;_ if结束
) ;_ 程序结束
) ;_ if结束
(setvar“plinewid”0)
(重新绘制)
(普林斯)
) ;_ defun结束
 
(princ“loaded..start command with SECT”)

CarlB 发表于 2022-7-6 15:21:29

第一个和第二个标注是将放置在剖面箭头尖端旁边的两个文本项。例如,第一个和第二个标注的“A”和“A”。

Cadastrophic 发表于 2022-7-6 15:34:09

我以为这就是它的意思,但当我进入A,然后再次进入A时,似乎什么都没有发生。
自从第一次发帖以来,我又试了一次,并意识到我并没有改变dimscale(到10)。
但是,当我移动dimscale时,只有一个A出现,并且它有一个非常难看的粗箭头(当我将dimscale更改为10时,可能会放大)。
我还缺什么吗?
第二个箭头可以出现吗(或者我只是复制现有的一个)?
是否可以使箭头保持默认的线比例,并且只包含字母A?
谢谢你的意见。

CarlB 发表于 2022-7-6 15:51:27

我相信粗箭就是这样设计的。它为我准备了两支箭。如果您当前的样式文本高度不是0.0,那么它就不正确-这可能解释了单箭头结果。
 
可以调整例程以允许自定义箭头大小。找到绘制箭头和线条(或定义宽度W1和W2的线条)的代码并修改它们。以下几行绘制了线/箭头:
 
(命令“pline”TAIL“w”W1 0 ARR”“);箭
(命令“pline”PTS“w”W2 W2 TAIL“”);水平尾翼
(命令“pline”VTAILX“w”W2 W2 VTAIL“”)
 
以下行设置宽度:
 
(setq W1(*(/1.875 10.0)SCL))
(setq W2(*(/0.75 10.0)SCL))
 
 
您可以在这两行中尝试使用10.0因子。

Cadastrophic 发表于 2022-7-6 15:59:51

明亮的谢谢你的帮助。

czyktech 发表于 2022-7-6 16:16:42

我正在创建机械零件(不是建筑,不是实体)的二维正交图形,并试图找到如何在一个视图中添加剖切面、箭头和标签来定义剖面视图。我在这个论坛上找到的全部内容是:3D切割平面,以某种方式构建自定义箭头的方向,以及Lisp程序(不管是什么)。我搜索错短语了吗?你知道,重切割平面线(可能旋转或偏移),带方向箭头,标记为A-A和剖面视图,带阴影,标记为剖面A-A?如何插入切割平面、箭头和标签?我需要在每个视图中构造每个元素吗?天哪,周一。没有可用的剖面工具、符号或块?这是根据美国国家标准协会,没有什么不寻常的。
页: [1]
查看完整版本: 这个命令是什么意思?