乐筑天下

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

[编程交流] 线型比例lisp帮助

[复制链接]

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 16:37:15 | 显示全部楼层 |阅读模式
您好,我正在使用此lisp代码在图形中插入围栏线型。我有一个小问题,因为a使用了很多行。问题是当我给予
(setvar“LTSCALE”6)然后线型设置中的全局比例因子转换为6。当我插入带有(setvar“LTSCALE”2)的线型时,全局比例因子转换为2。结果变得一团糟。我想将“属性”菜单中的线型比例更改为6或2,而不是全局比例因子。当我选择一条直线时,“特性”菜单中的线型比例为1。
 
  1. (DEFUN C:SYR2 (/ CONVERT KLIM OLD_CLT S1 S2 SCL SS)
  2. (setq old_clt (getvar 'CELTYPE))
  3. (if (and (not (tblsearch "ltype" "fence"))
  4.    (findfile "C:\\topocad\\topo.lin")
  5.      )
  6.    (command "-linetype" "l" "fence" "C:\\topocad\\topo.lin" "")
  7. )
  8. (if (tblsearch "ltype" "fense")
  9.    (progn
  10.      (setq ss (ssadd))
  11.      (COMMAND "_layer" "_m" "_fense" "_c" "140" "_fense" "_lt" "fense" "fense" "")
  12.      (SETQ KLIM 1)
  13.      (COMMAND "_linetype" "_s" "fense" "")
  14.      (setvar "PSLTSCALE" 1)
  15.      (setvar "LTSCALE" 6)
  16.      (setvar "MSLTSCALE" 1)
  17.      (SETQ S1 (GETPOINT "\ngive the first point :"))
  18.      (WHILE (SETQ S2 (GETPOINT S1 "\ngive the second point :"))
  19. (COMMAND "_line" "non" S1 "non" S2 "")
  20. (COMMAND "_CHPROP" (ENTLAST) "" "_S" KLIM "")
  21. (ssadd (ENTLAST) ss)
  22. (SETQ S1 S2)
  23.      )
  24.      (setvar 'CELTYPE old_clt)
  25.      (initget "Yes No")
  26.      (if (and (setq
  27.   convert (cond
  28.      ((getkword "\nconvert to polyline? [Yes/No] <N>: "))
  29.      ("No")
  30.    )
  31.        )
  32.        (/= (sslength ss) 0)
  33.        (= convert "Yes")
  34.   )
  35. (if (= (getvar 'PEDITACCEPT) 0)
  36.   (command "_.pedit" "_M" ss "" "_Y" "_J" "" "")
  37.   (command "_.pedit" "_M" ss "" "_J" "" "")
  38. )
  39.      )
  40.    )
  41. )
  42. (princ)
  43. )
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 16:47:07 | 显示全部楼层
需要更改的变量称为“celweight”(它设置新对象的线宽)
将初始celweight值存储到局部变量
更改celweight以匹配希望新对象具有的线宽替代
将celweight更改回初始值。
 
我还建议,如果用户点击escape并退出命令,则进行错误捕捉,将值还原为其原始值。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 16:53:09 | 显示全部楼层
我不想改变线宽。我想更改线型比例!!!!
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 16:59:10 | 显示全部楼层
我只想在“属性”“常规”选项卡中更改线型比例
回复

使用道具 举报

28

主题

317

帖子

292

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
140
发表于 2022-7-5 17:05:17 | 显示全部楼层
我的错。改为检查celtscale变量。(设置当前对象线型比例因子)
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 17:09:22 | 显示全部楼层
我问错问题了!!!!
我在a*中有几行。lin文件
每条线(例如比例1:200)需要具有不同的线型比例。例如,围栏需要线型比例5,点尼罗河需要线型比例2。
当我插入围栏时,全局比例因子变为5。然后我插入一条点线,所有线的全局比例因子为2。问题是,每当我插入新行时,所有行的全局比例因子都会发生变化。然后变得一团糟。eatch line有没有办法保持自己的全球比例因子?如何修复我的线路。我使用带注释的比例和布局
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 17:14:05 | 显示全部楼层
根据定义,每个线型不能有“全局”比例因子。您希望每种不同的线型都有自己独特的比例因子。这难道不能通过使用工具选项板来实现吗?
 
补遗
 
我刚刚回答了我自己的问题。我启用了工具选项板并单击了“绘制”选项卡。我复制了Line命令并将此副本重命名为HiddenLine。我右键单击它并更改了线型(隐藏)和比例(5而不是1)的属性。然后我测试了它。成功全球LTSCALE因子保持在1。
 
Lisp不一定是解决所有问题的方法。有时,一种更直接(即简单)的方法也可以。
回复

使用道具 举报

107

主题

615

帖子

575

银币

中流砥柱

Rank: 25

铜币
521
发表于 2022-7-5 17:21:53 | 显示全部楼层
是的,但如果ic hangr手动调整线型比例,则属性和全局比例仍为1,如果更改注释比例,则仍具有相同的线型比例。我不会看到任何改变!!!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 17:25:57 | 显示全部楼层
我看到了变化,所以我不知道你指的是什么。
 
您是否使用布局并对视口应用比例?
 
如模型空间所示。顶部的黄线绘制在名为Test的图层上,该图层被指定为隐藏线型。LTSCALE为1。下面的白线是在0层上绘制的,通常使用连续线型,但我使用了最近创建的HiddenLine工具,正如其属性中所述,该工具的线型更改为隐藏,比例更改为5。LTSCALE保持在1。
 
173723qht9os82svcdvd11.jpg
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-5 17:32:16 | 显示全部楼层
与视口(洋红色)比例为1:2的布局中看到的两条线相同。LTSCALE尚未更改。仍然是1。
 
173725itatnafnehyrfeyf.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:11 , Processed in 0.592779 second(s), 74 queries .

© 2020-2025 乐筑天下

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