Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LSIP. Замена 11 dxf пары в тексте.

LSIP. Замена 11 dxf пары в тексте.

Ответ
Поиск в этой теме
Непрочитано 20.10.2016, 18:09 #1
LSIP. Замена 11 dxf пары в тексте.
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

Добрый день . Дело в том что нам надо переводить чертежи в pdf , чтобы весь текст читался. Опытным путем выявлено, что если тект не лежит z=0 то он не читается. Аналог flatten с форума прекрасно с этим справляется. Тут я выяслнил что что если 11 пара отличается от (11 1.0 0.0 0.0) то текст тоже читаться не будет . Решил это дело поправить с помощью лиспа, через entmod почему то не получается заменить 11 пару. решил сделать по другому, но я не могу сделать нормальный variant . подскажите что не так?
Код:
[Выделить все]
 (defun zd145 (  /  ss1 ss3 )
(setq ss1 (ssget "_X" '((0 . "TEXT,MTEXT,MULTILEADER"))))
(setq ss3 '(11 1.0 0.0 0.0))
(setq ss3
	(vlax-make-variant
		(vlax-safearray-fill
			(vlax-make-safearray
				vlax-vbdouble
					(cons 0 (- (length ss3) 1))
			) ;_ end of vlax-Make-SafeArray
		ss3
		) ;_ end of vlax-SafeArray-Fill
	)
)
(mapcar
	'(lambda (xx)
			(vla-put-normal (vlax-ename->vla-object xx) ss3)
	)
	(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
)
(princ)
)
(defun C:zd145()(zd145))
Просмотров: 2046
 
Непрочитано 20.10.2016, 19:44
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Ну, для точек вообще есть функция vlax-3d-point. Я не очень понимаю глубинного смысла смешения DXF и ActiveX, ну да ладно. Почему ты путаешь 11 группу и 210 - вообще тайна.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.10.2016, 10:46
#3
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


спасибо за подсказку. я путал потому что при замене свойства нормал (которое соответвует 210 группе) меняется также 11 группа. я не умышленно смешал dxf , просто вначале попробовал менять свойства через entmod - не меняется, потом через свойста, а то что 11 уже не присутвует в свойстве не углядел.
сделал следующим образом, мож кому нибудь пригодиться
Код:
[Выделить все]
 (defun zd145 (  /  ss1  ss4)
(setq ss1 (ssget "_X" '((0 . "TEXT,MTEXT,MULTILEADER"))))
(setq ss4 (vlax-3d-point '(0.0 0.0 1.0)))
(mapcar
	'(lambda (xx)
			(vla-put-normal (vlax-ename->vla-object xx) ss4)
	)
	(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
)
(princ)
)
(defun C:zd145()(zd145))
Composter вне форума  
 
Непрочитано 21.10.2016, 11:39
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Может, окажется небесполезным: http://autolisp.ru/2010/04/06/text-and-attrib-entities/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.10.2016, 17:07
#5
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


спасибо почитал .еще немного переделал
Код:
[Выделить все]
 (defun zd145 (  /  ss1  ss210 ss50)
(setq ss1 (ssget "_X" '((0 . "TEXT,MTEXT,MULTILEADER,ATTRIB"))))
(setq ss210 '(210 0.0 0.0 1.0))
(mapcar
	'(lambda (xx)
			(setq ss50 (assoc 50 (entget xx)))
			(entmod		
				(subst 	(list 10 (cadr(assoc 10 (entget xx))) (caddr(assoc 10 (entget xx))) 0.0)
						(assoc 10 (entget xx))
						(entget xx)
				)
			)
			(entmod		
				(subst 	ss210
						(assoc 210 (entget xx))
						(entget xx)
				)
			)
			(entmod		
				(subst 	ss50
						(assoc 50 (entget xx))
						(entget xx)
				)
			)
	)
	(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss1)))
)
(command "_.UCS" "")
(command "_.move" ss1 "" '(0 0 1e99) ""       "_.move" "_p" "" '(0 0 -1e99) "")
(princ)
)
(defun C:zd145()(zd145))
вопрос почему что через entmod не получается , поэтоу добавил конструкцию из flatten с сайта. можно ли этой конструкции избежать и все таки через лисп поставить z=0 для точки вставки текста?

может кто подскажет почему желтый текст в фале так отказыватся читаться как тескст после печати в PDF ?
Вложения
Тип файла: dwg
DWG 2004
111.dwg (925.9 Кб, 13 просмотров)
Composter вне форума  
 
Непрочитано 21.10.2016, 21:02
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


704 прокси, 150 приложений... В желтых текстах (помимо того, что стиль там с применением ttf-шрифта) еще и РД лежат:
Код:
[Выделить все]
(entget (car (entsel)) '("*"))

'((-1 . <entity name: 7ffffb3f2b0>)
  (0 . "TEXT")
  (330 . <entity name: 7ffffb069f0>)
  (5 . "144F3")
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "Text-Highlight(E)")
  (100 . "AcDbText")
  (10 1.88041e+009 1.01674e+010 0.0)
  (40 . 175.0)
  (1 . "22-AHU-351003-22")
  (50 . 6.08447)
  (41 . 1.0)
  (51 . 6.28318)
  (7 . "A35X35")
  (71 . 0)
  (72 . 4)
  (11 1.88041e+009 1.01674e+010 0.0)
  (210 0.0 0.0 1.0)
  (100 . "AcDbText")
  (73 . 0)
  (-3
   ("ACAD"
    (1000 . "ACAD_MTEXT_COLUMN_INFO_BEGIN")
    (1070 . 75)
    (1070 . 2)
    (1070 . 79)
    (1070 . 0)
    (1070 . 76)
    (1070 . 1)
    (1070 . 78)
    (1070 . 0)
    (1070 . 48)
    (1040 . 8730.0)
    (1070 . 49)
    (1040 . 12.5)
    (1070 . 50)
    (1070 . 1)
    (1040 . 0.0)
    (1000 . "ACAD_MTEXT_COLUMN_INFO_END")
    )
   )
  )
А по z там и так все тексты в 0. Некоторые полилинии и штриховки - да, смещены.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.10.2016, 12:32
#7
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


почему 704 ? у меня removeallproxy показало толко 388 .
чо такое 150 приложений?
что такое РД?
а еще скажите почему при применении
Код:
[Выделить все]
 
 (command "_.UCS" "")
 (command "_.move" "_all" "" '(0 0 1e99) ""
      "_.move" "_p" "" '(0 0 -1e99) "")
пол чертежа улетает кудато?
Composter вне форума  
 
Непрочитано 23.10.2016, 15:36
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


ACAD2016x64Eng:
Код:
[Выделить все]
[ AutoCAD - Sun Oct 23 15:32:52 2016  ]----------------------------------------

Opening an AutoCAD 2004/LT 2004 format file.
Regenerating layout.
Regenerating model.
Press ENTER to continue: 

AutoCAD menu utilities loaded.
Command: 

Autodesk DWG.  This file is a TrustedDWG last saved by an Autodesk application or Autodesk licensed application.

Command: 

Command: 
Command: EXPLODEALLPROXY

Удалено Proxy: 0 Новых объектов: 0
Command: REMOVEALLPROXY

Первая метка объекта: <1>, последняя метка объекта: <1AB44>
Всего найдено proxy-объектов: 704. Из них proxy-примитивов: 0.
Очистить список масштабов? [Да/Нет] <Да>: _n

Всего удалено proxy-объектов: 704. Из них proxy-примитивов: 0.
Для проверки ошибок выполните команду _AUDIT
Command: AUDIT 
Fix any errors detected? [Yes/No] <N>: _y 


Auditing Header
                                       

Auditing Tables
                                       

Auditing Entities Pass 1
                              
Pass 1 17100   objects audited
Auditing Entities Pass 2
                              
Pass 2 17100   objects audited
Auditing Blocks 
                                      
 315     Blocks audited



Auditing AcDsRecords
                                  

Total errors found 0 fixed 0

Erased 0 objects


Command: _-PURGE 
Enter type of unused objects to purge [Blocks/DEtailviewstyles/Dimstyles/Groups/LAyers/LTypes/MAterials/MUltileaderstyles/Plotstyles/SHapes/textSTyles/Mlinestyles/SEctionviewstyles/Tablestyles/Visualstyles/Regapps/Zero-length geometry/Empty text objects/Orphaned data/All]: _a
Enter name(s) to purge <*>: 
Verify each name to be purged? [Yes/No] <Y>: _n
Deleting block "7622_LEGEND_ROOM_NAMES".
1 block deleted.
Deleting layer "7622_LEGEND_ROOM_NAMES$0$P_RoofLight".
Deleting layer "7622_LEGEND_ROOM_NAMES$0$Text-Highlight(E)".
Deleting layer "7622_LEGEND_ROOM_NAMES$0$Text-Standard(E)".
3 layers deleted.
Deleting linetype "050-7600-RRR-GAD-IKB-000-00210-01_U01$0$7622_LEGEND_ROOM_NAMES$0$Dash".
Deleting linetype "DASHED2".
2 linetypes deleted.
Deleting text style "050-7600-RRR-GAD-IKB-000-00210-01_U01$0$7622_LEGEND_ROOM_NAMES$0$A25X25T".
Deleting text style "050-7600-RRR-GAD-IKB-000-00210-01_U01$0$7622_LEGEND_ROOM_NAMES$0$A35X35".
2 text styles deleted.

No unreferenced shape files found.
Deleting dimension style "Standard".
1 dimension style deleted.

No unreferenced mlinestyles found.

No unreferenced plotstyles found.

No unreferenced table styles found.

No unreferenced materials found.

No unreferenced visual styles found.

No unreferenced multileader styles found.

No unreferenced groups found.

No unreferenced Detail view styles found.

No unreferenced Section view styles found.

Command: -PURGE

Enter type of unused objects to purge [Blocks/DEtailviewstyles/Dimstyles/Groups/LAyers/LTypes/MAterials/MUltileaderstyles/Plotstyles/SHapes/textSTyles/Mlinestyles/SEctionviewstyles/Tablestyles/Visualstyles/Regapps/Zero-length geometry/Empty text objects/Orphaned data/All]: _a
Enter name(s) to purge <*>: 
Verify each name to be purged? [Yes/No] <Y>: _n

No unreferenced blocks found.

No unreferenced layers found.

No unreferenced linetypes found.

No unreferenced text styles found.

No unreferenced shape files found.

No unreferenced dimension styles found.

No unreferenced mlinestyles found.

No unreferenced plotstyles found.

No unreferenced table styles found.

No unreferenced materials found.

No unreferenced visual styles found.

No unreferenced multileader styles found.

No unreferenced groups found.

No unreferenced Detail view styles found.

No unreferenced Section view styles found.

Command: _-PURGE 
Enter type of unused objects to purge [Blocks/DEtailviewstyles/Dimstyles/Groups/LAyers/LTypes/MAterials/MUltileaderstyles/Plotstyles/SHapes/textSTyles/Mlinestyles/SEctionviewstyles/Tablestyles/Visualstyles/Regapps/Zero-length geometry/Empty text objects/Orphaned data/All]: _r
Enter name(s) to purge <*>: 
Verify each name to be purged? [Yes/No] <Y>: _n
Deleting registered application "_TCH".
Deleting registered application "ABNSLEADERTOOLS".
Deleting registered application "AC_900".
Deleting registered application "ACAD_ASSOCPERSSUBENTMANAGER".
Deleting registered application "ACAD_BCONSTRUCTION".
Deleting registered application "ACAD_DIMASSOC_CALC_DIMLFAC".
Deleting registered application "ACAD_DIMASSOC_DIMLFAC".
Deleting registered application "ACAD_DIMASSOC_OVERRIDDEN_DIMLFAC".
Deleting registered application "ACAD_DSTYLE_DIM_EXT1_LINETYPE".
Deleting registered application "ACAD_DSTYLE_DIM_EXT2_LINETYPE".
Deleting registered application "ACAD_DSTYLE_DIM_LINETYPE".
Deleting registered application "ACAD_DSTYLE_DIMARC_LENGTH_".
Deleting registered application "ACAD_DSTYLE_DIMARC_LENGTH_SYMBOL".
Deleting registered application "ACAD_DSTYLE_DIMEXT_ENABLED".
Deleting registered application "ACAD_DSTYLE_DIMEXT_LENGTH".
Deleting registered application "ACAD_DSTYLE_DIMINSPECT".
Deleting registered application "ACAD_DSTYLE_DIMJAG_POSITION".
Deleting registered application "ACAD_DSTYLE_DIMJOGGED_JOGA".
Deleting registered application "ACAD_DSTYLE_DIMJOGGED_JOGANGLE_SYMBOL".
Deleting registered application "ACAD_DSTYLE_DIMRADIAL_EXTENSION".
Deleting registered application "ACAD_DSTYLE_DIMTEXT_FILL".
Deleting registered application "ACAD_EXEMPT_FROM_CAD_STANDARDS".
Deleting registered application "ACAD_MATERIAL_MAPPER".
Deleting registered application "ACAD_MATERIAL_MAPPER_2".
Deleting registered application "ACAD_MLEADERVER".
Deleting registered application "ACAD_OBJECT_CHANGE_GUID".
Deleting registered application "ACAD_OBJECT_NAME".
Deleting registered application "ACAD_SKPOLY".
Deleting registered application "ACAD_SPLINE_DATA".
Deleting registered application "ACAD_SPLINE_DATA2".
Deleting registered application "ACAD_STEPID".
Deleting registered application "ACADANNOAV".
Deleting registered application "ACADANNOMONITORALERTICONDI".
Deleting registered application "AcadAnnoMonitorAlertIconDisabled".
Deleting registered application "AcadAnnoPO".
Deleting registered application "AcadAnnotative".
Deleting registered application "AcadAnnotativeAttributeDecomposition".
Deleting registered application "ACADANNOTATIVEDECOMPOSITION".
Deleting registered application "AcadBPTGraphNodeId".
Deleting registered application "AcadInvisibleAttribDecomposition".
Deleting registered application "AcadMAttdefInAnnoBlockDecomposition".
Deleting registered application "ACADSTRINGINFO".
Deleting registered application "ACAUTHENVIRON".
Deleting registered application "AcDbAppSyncWithXref_AssocManager".
Deleting registered application "ACDBATTR".
Deleting registered application "AcDbBlockArrayActionTag".
Deleting registered application "AcDbBlockRepBTag".
Deleting registered application "AcDbDynamicBlockTrueName".
Deleting registered application "AcDbDynamicBlockTrueName2".
Deleting registered application "ACET-TEXTMASK".
Deleting registered application "AcLayerTools".
Deleting registered application "ACLAYTRANS".
Deleting registered application "AcMap_E615D161-C9D7-11d3-839F-0060B0FB6B57".
Deleting registered application "AcMapDMDisplayStyleRegapp".
Deleting registered application "ADCADD_ZZ".
Deleting registered application "ADE".
Deleting registered application "ADE_PROJECTION".
Deleting registered application "AdeskUnderlayLayerOverrideData".
Deleting registered application "AEC_APER".
Deleting registered application "AEC_MATERIAL".
Deleting registered application "AECBASE".
Deleting registered application "AECBLK".
Deleting registered application "AeccLand100".
Deleting registered application "AeccUiDataExchange".
Deleting registered application "AeccUiMgr".
Deleting registered application "AeccUiModel".
Deleting registered application "AeccUiQTO".
Deleting registered application "AeccUiQTOEntityPayItemData".
Deleting registered application "AeccUiQTOFreqUsedPayItemsList".
Deleting registered application "AeccUiQTOPayItemCategoryFilePath".
Deleting registered application "AeccUiQTOPayItemFilePath".
Deleting registered application "AeccUiQTOPayItemFormulaExpression".
Deleting registered application "AeccUiQTOPayItemFormulaFilePath".
Deleting registered application "AeccUiQTOPayItemFormulaParameters".
Deleting registered application "AeccUiQTOPayItemSpecBookVersionFloridaDOT".
Deleting registered application "AeccUiQTOTransportDesignerFileFloridaDOT".
Deleting registered application "AECGUIBASE".
Deleting registered application "ALIGNMENT_DB_APP".
Deleting registered application "AME_SOL".
Deleting registered application "AME_SOLVIEW".
Deleting registered application "ANONYM".
Deleting registered application "ARKO".
Deleting registered application "ARWALL".
Deleting registered application "AUTOGRPH05".
Deleting registered application "AVE_ENTITY_MATERIAL".
Deleting registered application "AVE_FINISH".
Deleting registered application "AVE_GLOBAL".
Deleting registered application "AVE_INVOKE".
Deleting registered application "AVE_MATERIAL".
Deleting registered application "AVE_RENDER".
Deleting registered application "CADS-SW-603031".
Deleting registered application "CIVIL_DRAFT".
Deleting registered application "CONTENTBLOCKDESCRIPTION".
Deleting registered application "CONTENTBLOCKICON".
Deleting registered application "CONTENTCURRENTTAB".
Deleting registered application "CONTENTTABDATA".
Deleting registered application "CTS_FLM".
Deleting registered application "DCA_FIGURE_XENT".
Deleting registered application "DCO15".
Deleting registered application "DGN_XDATUM".
Deleting registered application "DRAWINGVARIABLESXDATA".
Deleting registered application "DWG_XDATUM".
Deleting registered application "ESAPRO_X1".
Deleting registered application "GENIUS_GENFIL_13".
Deleting registered application "GENIUS_GENHATCH_13".
Deleting registered application "GENIUS_GENOBJ-N-CEN_13".
Deleting registered application "GENIUS_GENOBJ-N-CHA_13".
Deleting registered application "GENIUS_GENOBJ-N-FIL_13".
Deleting registered application "GENIUS_GENOBJ-N-HTC_13".
Deleting registered application "GENIUS_GENOBJ-N-REC_13".
Deleting registered application "GENIUS_GENODEF_13".
Deleting registered application "GENIUS_GENREC_14".
Deleting registered application "HATCHBACKGROUNDCOLOR".
Deleting registered application "IC_ARCH".
Deleting registered application "ICAD".
Deleting registered application "ICAD3D".
Deleting registered application "ICADCANA".
Deleting registered application "ICADCAVI".
Deleting registered application "ICADZONA".
Deleting registered application "IdsDescr".
Deleting registered application "IRD".
Deleting registered application "KCAD".
Deleting registered application "KCADLNK".
Deleting registered application "koordsim".
Deleting registered application "koordsim_id".
Deleting registered application "kx_koordprec_id".
Deleting registered application "kx_koordscalf_id".
Deleting registered application "kx_koordscalfout_id".
Deleting registered application "LINEAR".
Deleting registered application "LINEAR_LUFTKANAL_V2".
Deleting registered application "MAGI".
Deleting registered application "MANULPOINTSASSOCIATIVE".
Deleting registered application "MapGWS".
Deleting registered application "MapManagementAppName".
Deleting registered application "MCS_DIM1".
Deleting registered application "MCS_DOCUMENT_ID".
Deleting registered application "MCS_PARAMS_DATA".
Deleting registered application "MCS_PARAMS_HIDDEN_DATA".
Deleting registered application "McsXdata5".
Deleting registered application "MStation".
Deleting registered application "MXAC_APPN".
Deleting registered application "PE_URL".
Deleting registered application "RAK".
Deleting registered application "SDSK_CVP_1301".
Deleting registered application "SDSK_PMN".
Deleting registered application "SDSK_POINT".
Deleting registered application "TMP".
Deleting registered application "TOPOPLAN".
Deleting registered application "WALLW".
Deleting registered application "ZTOSECTION".
150 registered applications deleted.

Command: AUDIT 
Fix any errors detected? [Yes/No] <N>: _y 


Auditing Header
                                       

Auditing Tables
                                       

Auditing Entities Pass 1
                              
Pass 1 16900   objects audited
Auditing Entities Pass 2
                              
Pass 2 16900   objects audited
Auditing Blocks 
                                      
 314     Blocks audited



Auditing AcDsRecords
                                  

Total errors found 0 fixed 0

Erased 0 objects
Цитата:
Сообщение от Composter Посмотреть сообщение
почему при применении
Код:
[Выделить все]
 	(command "_.UCS" "")
	(command "_.move" "_all" "" '(0 0 1e99) ""
	     "_.move" "_p" "" '(0 0 -1e99) "")
пол чертежа улетает кудато?
Возможно, потому, что у объектов 210 группа "ненормальная". Или еще что... Смотри объекты, их дампы / характеристики и вычисляй причину. Учитывая, что я подобный код не использую от слова никогда, помочь не смогу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.10.2016, 11:09
#9
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


ясно , спасибо. про Regapps не знал. а какой аналог flatten вы используете?
Composter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > LSIP. Замена 11 dxf пары в тексте.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Замена текстового стиля VVA Готовые программы 305 26.03.2024 12:03
Замена текста в многострочном тексте копатыч AutoCAD 2 19.09.2013 16:49
Поиск и замена в дробном тексте alevtina07 AutoCAD 7 18.10.2011 09:54
Поиск и замена спец символов в многострочном тексте Psyakrev AutoCAD 5 25.01.2011 12:49