乐筑天下

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

[编程交流] 将lsp转换为vlx时出错

[复制链接]

32

主题

87

帖子

52

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
164
发表于 2022-7-6 09:28:43 | 显示全部楼层 |阅读模式
为什么我不能将LEEMAC的LISP LAYERMAKER转换为VLX!
代码:
  1. (defun c:1000 nil (vl-load-com)  
  2. ;; © Lee Mac 2010
  3. ;;----------------------------------------------------------------------------------------------;;
  4. ;; Specifications:                                                                              ;;
  5. ;;----------------------------------------------------------------------------------------------;;
  6. ;; Description         Data Type       Remarks                                                  ;;
  7. ;;----------------------------------------------------------------------------------------------;;
  8. ;; Layer Name          STRING          Only standard chars allowed.                             ;;
  9. ;; Layer Colour        INTEGER         may be nil, -ve for Layer Off, Colour < 256              ;;
  10. ;; Layer Linetype      STRING          may be nil, If not loaded, CONTINUOUS.                   ;;
  11. ;; Layer Lineweight    REAL            may be nil, negative=Default, otherwise 0 <= x <= 2.11   ;;
  12. ;; Plot?               BOOLEAN         T = Plot Layer, nil otherwise                            ;;
  13. ;; Bit Flag            INTEGER         0=None, 1=Frozen, 2=Frozen in VP, 4=Locked               ;;
  14. ;; Description         STRING          may be nil for no description                            ;;
  15. ;;----------------------------------------------------------------------------------------------;;
  16. ;; Function will print list detailing any unsuccesful layers                                    ;;
  17. ;;----------------------------------------------------------------------------------------------;;
  18. (
  19.    (lambda ( lst )
  20.      (mapcar 'print
  21.        (vl-remove-if 'cdr
  22.          (mapcar
  23.            (function
  24.              (lambda ( x )
  25.                (and (caddr x) (LM:LoadLinetype (caddr x))) (cons (car x) (apply 'MakeLayer x))
  26.              )
  27.            )
  28.            lst
  29.          )
  30.        )
  31.      )
  32.    )
  33.   '(
  34.    ;  Name                 Colour   Linetype    Lineweight Plot? Bitflag  Description
  35.    ( "COT"                      2  "CONTINUOUS"     0.4       T      0      nil  )
  36.    ( "CUA"                     151  "CONTINUOUS"    0.13       T      0      nil  )
  37.    ( "CUA2"                    157  "CONTINUOUS"    0.13       T      0      nil  )
  38.    ( "DIEN"                    30  "CONTINUOUS"     0.3       T      0      nil  )
  39.    ( "DUONGDIEN"               227  "ÑIEÄN"         0.13       T      0      nil  )
  40.    ( "DUONGNUOC"               38  "NÖÔÙC"          0.13       T      0      nil  )
  41.    ( "DUONGRANHGIOI"           16  "NÖÔÙC"          0.13       T      0      nil  )
  42.    ( "DUONGNUOC"               227  "NÖÔÙC"         0.13       T      0      nil  )
  43.    ( "GACH"                    69  "CONTINUOUS"     0.09       T      0      nil  )
  44.    ( "GACH2"                   73  "CONTINUOUS"     0.09       T      0      nil  )
  45.    ( "GHICHU"                  16  "CONTINUOUS"     0.13       T      0      nil  )
  46.    ( "HATCH"                   177 "CONTINUOUS"     0.09       T      0      nil  )
  47.    ( "HTUONG"                  26  "CONTINUOUS"     0.09       T      0      nil  )
  48.    ( "KHONGIN"                 2  "CONTINUOUS"      0.13       nil      0      nil  )
  49.    ( "KICHTHUOC"               206  "CONTINUOUS"    0.09       T      0      nil  )
  50.    ( "KYHIEU"                  146  "CONTINUOUS"    0.13       T      0      nil  )
  51.    ( "KYHIEU2"                 145  "CONTINUOUS"    0.13       T      0      nil  )
  52.    ( "MAI"                     45  "CONTINUOUS"     0.13       T      0      nil  )
  53.    ( "NETCAT"                  7  "CONTINUOUS"      0.4       T      0      nil  )
  54.    ( "NETCAT2"                 253  "CONTINUOUS"    0.3       T      0      nil  )
  55.    ( "NETKHUAT"                252  "HIDDEN"        0.09       T      0      nil  )
  56.    ( "NETTHAY"                 67  "CONTINUOUS"     0.18       T      0      nil  )
  57.    ( "NETVIEN"                 44  "CONTINUOUS"     0.3       T      0      nil  )
  58.    ( "NUOC"                    150  "CONTINUOUS"    0.13       T      0      nil  )
  59.    ( "NUOCMUA"                 53  "NUOCMUA2"       0.13       T      0      nil  )
  60.    ( "NUOCTHAI"                35  "NUOCTHAI3"      0.13       T      0      nil  )
  61.    ( "SOTRUC"                  9  "CONTINUOUS"      0.13       T      0      nil  )
  62.    ( "TBWC"                    23  "CONTINUOUS"     0.13       T      0      nil  )
  63.    ( "TRUC"                    251  "DASHDOT"       0.09       T      0      nil  )
  64.    ( "VATDUNG"                 25  "CONTINUOUS"     0.09       T      0      nil  )
  65.    ( "VATDUNG2"                21  "CONTINUOUS"     0.09       T      0      nil  )
  66.    ( "VUWIP"                   210  "."             0.09       T      0      nil  )
  67.    ( "XREF"                    137  "CONTINUOUS"    0.09       T      0      nil  )
  68.    )
  69. )
  70. (princ)
  71. )
  72. (defun MakeLayer ( name colour linetype lineweight willplot bitflag description )
  73. ;; © Lee Mac 2010
  74. (or (tblsearch "LAYER" name)
  75.    (entmake
  76.      (append
  77.        (list
  78.          (cons 0 "LAYER")
  79.          (cons 100 "AcDbSymbolTableRecord")
  80.          (cons 100 "AcDbLayerTableRecord")
  81.          (cons 2  name)
  82.          (cons 70 bitflag)
  83.          (cons 290 (if willplot 1 0))
  84.          (cons 6
  85.            (if (and linetype (tblsearch "LTYPE" linetype))
  86.              linetype "CONTINUOUS"
  87.            )
  88.          )
  89.          (cons 62 (if (and colour (< 0 (abs colour) 256)) colour 7))
  90.          (cons 370
  91.            (if (minusp lineweight) -3
  92.              (fix
  93.                (* 100
  94.                  (if (and lineweight (<= 0.0 lineweight 2.11)) lineweight 0.0)
  95.                )
  96.              )
  97.            )
  98.          )
  99.        )
  100.        (if description
  101.          (list
  102.            (list -3
  103.              (list "AcAecLayerStandard" (cons 1000 "") (cons 1000 description))
  104.            )
  105.          )
  106.        )
  107.      )
  108.    )
  109. )
  110. )
  111. ;;--------------------=={ Load Linetype }==-------------------;;
  112. ;;                                                            ;;
  113. ;;  Attempts to load a specified linetype from any linetype   ;;
  114. ;;  definition files (.lin) found in the ACAD Support Path    ;;
  115. ;;------------------------------------------------------------;;
  116. ;;  Author: Lee Mac, Copyright © 2011 - [url]www.lee-mac.com[/url]       ;;
  117. ;;------------------------------------------------------------;;
  118. ;;  Arguments:                                                ;;
  119. ;;  lt - name of linetype to load                             ;;
  120. ;;------------------------------------------------------------;;
  121. ;;  Returns:  T if linetype loaded successfully, else nil     ;;
  122. ;;------------------------------------------------------------;;
  123. (defun LM:LoadLinetype ( lt ) (vl-load-com)
  124. ;; © Lee Mac 2010
  125. (cond
  126.    ( (tblsearch "LTYPE" lt) )
  127.    ( (progn
  128.        (or acdoc (setq acdoc (vla-get-ActiveDocument (setq acapp (vlax-get-acad-object)))))
  129.        (or aclts (setq aclts (vla-get-Linetypes acdoc)))
  130.        (vl-some
  131.          (function
  132.            (lambda ( file )
  133.              (vl-catch-all-apply 'vla-load (list aclts lt file))
  134.              (and (tblsearch "LTYPE" lt))
  135.            )
  136.          )
  137.          (setq *LineTypeDefs*
  138.            (cond
  139.              ( *LineTypeDefs* )
  140.              (
  141.                (apply 'append
  142.                  (mapcar '(lambda ( directory ) (vl-directory-files directory "*.lin" 1))
  143.                    (LM:str->lst
  144.                      (vla-get-SupportPath (vla-get-Files (vla-get-Preferences acapp))) ";"
  145.                    )
  146.                  )
  147.                )
  148.              )
  149.            )
  150.          )
  151.        )
  152.      )
  153.    )
  154. )  
  155. )
  156. ;;-------------------=={ String to List }==-------------------;;
  157. ;;                                                            ;;
  158. ;;  Separates a string into a list of strings using a         ;;
  159. ;;  specified delimiter string                                ;;
  160. ;;------------------------------------------------------------;;
  161. ;;  Author: Lee Mac, Copyright © 2011 - [url]www.lee-mac.com[/url]       ;;
  162. ;;------------------------------------------------------------;;
  163. ;;  Arguments:                                                ;;
  164. ;;  str - string to process                                   ;;
  165. ;;  del - delimiter by which to separate the string           ;;
  166. ;;------------------------------------------------------------;;
  167. ;;  Returns:  A list of strings                               ;;
  168. ;;------------------------------------------------------------;;
  169. (defun LM:str->lst ( str del / pos )
  170. ;; © Lee Mac 2010
  171. (if (setq pos (vl-string-search del str))
  172.    (vl-remove "" (cons (substr str 1 pos) (LM:str->lst (substr str (+ pos 1 (strlen del))) del)))
  173.    (list str)
  174. )
  175. )
  176. (
  177.    (lambda ( lst / lts ) (setq lts (vla-get-Linetypes (vla-get-ActiveDocument (vlax-get-acad-object))))
  178.      (mapcar 'cons (mapcar 'car lst)
  179.        (mapcar
  180.          (function
  181.            (lambda ( x )
  182.              (and (caddr x)
  183.                (or (tblsearch "LTYPE" (caddr x))
  184.                  (vl-catch-all-apply 'vla-load (list lts (caddr x) "acadiso.lin"))
  185.                )
  186.              )
  187.              (apply 'MakeLayer x)
  188.            )
  189.          )
  190.          lst
  191.        )
  192.      )
  193.    )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:36:51 | 显示全部楼层
代码末尾缺少右括号。 
 
我认为他的许可是可以的。请参阅:http://lee-mac.com/terms.html
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:39:41 | 显示全部楼层
感谢rkmcswain的澄清。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
362
发表于 2022-7-6 09:43:22 | 显示全部楼层
vnanhvu,
 
您为什么复制此部分:
 
到代码末尾?
 
此外,我很好奇为什么您希望将此代码编译为VLX?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 09:46:08 | 显示全部楼层
:吃爆米花::注意:
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:52:25 | 显示全部楼层
 
既然!这就是问题所在。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:57:37 | 显示全部楼层
 
 
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 09:59:16 | 显示全部楼层
 
宝贝,你害怕吗?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 10:04:57 | 显示全部楼层
有什么大不了的?
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 10:08:25 | 显示全部楼层
 
我原本想跳到礼来池并发布那个片段,但我不想假设我得到了允许。
 
另外,我问马克是否有一个小的用户文件夹,但没有回应(或文件夹)。
 
 
没什么大不了的。。。我只是怀疑你前面的两个问题会引起一些有趣的反应(就像过去一样)。
 
我不想出轨,李~房间里全是男孩子。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-7 03:18 , Processed in 0.990829 second(s), 72 queries .

© 2020-2025 乐筑天下

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